Weights

Care has been taken to ensure that all events generated by VINCIA by default have weights which are positive and equal to unity. Indeed, this property is central both to the shower and to the matching scheme. Ordinary runs should therefore produce a simple set of unweighted events, equivalent to normal PYTHIA 8 output.

However, Vincia does allow for weighted events to be generated, in some circumstances. The simplest case is when it is used to shower a set of externally generated weighted events, in which case VINCIA normally just passes the weights through, without modification. However, in a few cases VINCIA may actively modify the input event weight, as, e.g., in the automatic evaluation of uncertainty bands.

In some cases, VINCIA's shower or matching scheme may cause violations of the Monte Carlo overestimates used to drive the evolution. In such cases, warnings are normally printed to the output, giving the magnitude of the violation as well as some minimal information about what caused the violation. VINCIA automatically adjust the overestimates on the fly, i.e. in case of a violation the overestimate will be increased slightly. The overestimates will also be optimised (i.e. if the overestimate is too large VINCIA will slowly decrease it), depending on the following flag:

flag  Vincia:MCoptimization   (default = on)

option on : The overestimates will be decreased slowly if the physical branching probabilies are much smaller than the overestimate.
option off : No optimisation. The overestimates will only be increased, never decreased.

Note that switching Vincia:MCoptimization off generally leads to fewer violations; however, it also decreases the speed slightly.

In addition, you can force VINCIA to change the weight of the generated event in cases of violations of the Monte Carlo overestimates, using the following flag:

flag  Vincia:allowReweighting   (default = off)
Flag to allow VINCIA to modify initial event weights in case violations of the Monte Carlo overestimates occur during the event evolution. Weighting algorithm taken from JHEP 1209 (2012) 049.

If changes to the event weight are made, these are bookkept and the final weight is accessible through the weight() method in the Vincia plugin. For instance, if the VinciaPlugin object is called vincia the generated event weight can be accessed by

vincia.weight();

A convenient yes/no shorthand for checking whether any event weights were modified during the current run is provided by the method

bool vincia.reweightingOccurred();

Again, note that VINCIA's weights fully include any non-unity input weights associated with the event from PYTHIA (normally, PYTHIA's weights are unity, but, as mentioned, when using external events, e.g., from LHEF files, these can in principle come with non-unity and/or even negative weights). The weight VINCIA started from is not modified and remains accessible through PYTHIA's own info.weight() method.