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 = off
)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
)
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.