Multiweights Running
By default Rivet will run over all the available multiweights in can find in the input file,
unless they are prefixed with IRREG_, in which case they will always be deselected.
Rivet will run a heuristic to identify the nominal weight.
The heuristic is as follows: If it finds the empty string
among the weight names, it will treat it as the nominal weight.
If it doesn’t find the empty string, it will then look for weights
labelled WEIGHT, DEFAULT, NOMINAL or 0. The first match will
be treated as the nominal.
If it finds more than one, it will use the first one and print a warning
that there were potentially other candidates, thereby giving the option
to abort and re-run using a suitable --nominal-weight value. If it can’t
find one (that’s a bug in the generator HepMC interface …), it checks if
the user has supplied a custom weight name (using the --weight-nominal flag)
that ought to be treated as the nominal and uses that instead.
If the user didn’t supply one, Rivet falls back to the assumption that
the first weight is the nominal (technically a HepMC convention) but
will write out all weights streams in “variation weight” style
(i.e. with [weight_name] suffix in the path). A warning is printed.
If it can find the nominal weight stream and the user supplied a custom one that isn’t the actual nominal weight stream, Rivet will internally continue to use the actual nominal (e.g. for the cross-section scaling) but write out the user-supplied weight stream in “nominal weight” style (and the actual nominal in “variation weight” style).
It might be beneficial to only run on a subset of the available multiweights, especially when the output file would be rather large and the weights aren’t actually needed. The following flags can help:
- the
--weight-matchflag can be used to select a subset of the weights, e.g.--weight-match=WeightName1,WeightName2, or using a suitable regular expression, e.g.--weight-match=MUR.*MUF.*PDF123456. Note that the nominal weight cannot be de-selected. - the
--weight-unmatchflag can be used to de-select a subset of the weights, e.g.--weight-unmatch=WeightName1,WeightName2, or using a suitable regular expression, e.g.--weight-unmatch=MUR1_MUF1_PDF123.*. Note that the default weight cannot be de-selected.
When both flags are passed, --weight-match is evaluated first, and --weight-unmatch is applied
to the “surviving weights”.
Passing the --weight-skip flag will unmatch all weights, save the nominal weight.
Only one weight stream is written out to file (in “nominal weight” style).
If the user additionally supplied --weight-match and --weight-unmatch flags,
chances are they don’t really know what they’re doing.
Preference is given to --weight-skip in this case.
If the user also supplies the --weight-nominal flag and asks that a variation weight
be treated as the nominal, two weight streams are written out to file: the actual default
weight stream (needed for scaling) and the custom nominal weight stream. The former will
be written out in “variation weight” style, the latter in “nominal weight” style.