PYTHIA
8.312
|
#include <VinciaAntennaFunctions.h>
Public Member Functions | |
MECs () | |
Constructor. | |
virtual | ~MECs () |
Destructor. | |
void | initPtr (Info *infoPtrIn, ExternalMEsPtr mg5mesPtrIn, VinciaCommon *vinComPtrIn, Resolution *resPtrIn) |
Initialize pointers. More... | |
void | initAntPtr (AntennaSetFSR *antFSRusr, AntennaSetISR *antISRusr) |
Initialize pointers to antenna sets. | |
void | init () |
Initialize. More... | |
bool | prepare (const int iSys, Event &event) |
Function to return ME class (Born type) for a parton configuration. More... | |
bool | polarise (const int iSys, Event &event, const bool force=false) |
Function to assign helicities to particles (using MEs). More... | |
bool | polarise (vector< Particle > &state, const bool force=false) |
bool | isPolarised (int iSys, Event &event, bool checkAll=true) |
AntennaFunction * | getAntFunPtrFSR (const enum AntFunType antFunType) |
Wrapper function to return a specific antenna function. | |
AntennaFunctionIX * | getAntFunPtrISR (const enum AntFunType antFunType) |
bool | doMEC (const int iSys, const int nBranch) |
Function to determine if MECs are requested at this order for this system. More... | |
bool | meAvailable (int iSys, const Event &event) |
Check whether we have a matrix element for this configuration. More... | |
bool | meAvailable (const vector< Particle > &state) |
double | getME2 (const vector< Particle > &state, int nIn) |
Get squared matrix element. | |
double | getME2 (int iSys, const Event &event) |
double | getMECSector (int iSys, const vector< Particle > &stateNow, const vector< Particle > &statePost, VinciaClustering &clus) |
Get matrix element correction factor for sector shower. More... | |
void | hasBranched (int iSys) |
Communicate that the trial was accepted and we branched. More... | |
void | needsNewME2 (int iSys, bool needsNewIn) |
int | sizeOutBorn (const int iSys) |
Return number of partons added since Born (as defined by prepare). | |
void | setVerbose (const int verboseIn) |
Function to set level of verbose output. | |
void | header () |
Header. More... | |
bool | isInitialised () |
Is initalised? | |
Class MECs, for computing matrix-element corrections to antenna functions.
bool doMEC | ( | const int | iSys, |
const int | nBranch | ||
) |
double getMECSector | ( | int | iSys, |
const vector< Particle > & | stateNow, | ||
const vector< Particle > & | statePost, | ||
VinciaClustering & | clus | ||
) |
Get matrix element correction factor for sector shower.
Get matrix element correction factor.
VinciaConstants::DEBUG output.
Check whether we have matrix elements for the two states.
Check whether we are below IR cutoff.
If regularising this order, get matching weight.
Sanity checks.
Check whether we want to calculate a MEC.
Get number of incoming particles.
Get matrix element for post-branching state.
Sanity check.
Get matrix element for current state (only if state has changed since last matching).
Sanity check.
Calculate antenna function.
Sanity check.
Calculate colour weight. Just 1, when not matching at full colour.
Sanity check.
Calculate shower-subtracted matrix element correction. Note: just a simple ratio for the sector shower.
Calculate correction factor including matching weight.
void hasBranched | ( | int | iSys | ) |
Communicate that the trial was accepted and we branched.
Upon branching, save last post-branching ME2.
TODO: Matrix element corrections for global shower? double getMECGlobal(const vector<Particle>& statePost, const VinciaClustering& clus, int nIn);
VinciaConstants::DEBUG print out.
The last post-branching ME2 is now the current ME2.
void header | ( | ) |
Header.
Print header information.
Front matter.
Setings.
Print MG5MEs reference.
void init | ( | ) |
Initialize.
MEC settings.
Some settings hardcoded for now.
Sanity checks. MECs currently not supported.
Initialise MG5 interface
TODO fix colour depth in MG5 interface.
Check if we wanted to do matching.
Abort. We should not try to do anything.
Set everything explicitly to negative values, but continue.
Pass MG5 and random number pointer to helicity sampler.
void initPtr | ( | Info * | infoPtrIn, |
ExternalMEsPtr | mg5mesPtrIn, | ||
VinciaCommon * | vinComPtrIn, | ||
Resolution * | resPtrIn | ||
) |
Initialize pointers.
Class MECs, for computing matrix-element corrections to antenna functions.
bool isPolarised | ( | int | iSys, |
Event & | event, | ||
bool | checkAll = true |
||
) |
Check if state already has helicities. checkAll = true : only return true if all particles have helicities. checkAll = false : return true if any particle is polarised.
Check if all partons in state have helicities. Optionally check if any particle has helicity (checkAll = false).
bool meAvailable | ( | int | iSys, |
const Event & | event | ||
) |
Check whether we have a matrix element for this configuration.
Check whether we have a matrix element for a given configuration.
Make vectors of ID codes.
bool meAvailable | ( | const vector< Particle > & | state | ) |
Make vectors of ID codes.
|
inline |
Set whether we need to calculate a new matrix element for current configuration (e.g. due to an EW decay).
bool polarise | ( | const int | iSys, |
Event & | event, | ||
const bool | force = false |
||
) |
Function to assign helicities to particles (using MEs).
First check if we should be doing anything at all.
Hard System.
Hardest MPI system
Further MPI systems just use unpolarised showers.
Resonance-Decay systems
Check if all particles in state already have assigned helicities. Else see if we can assign helicities.
Extract particles to use for ME evaluations (incoming first)
Check if we can polarise this state.
Update particles in event record: incoming.
Update particles in event record: outgoing.
Verbose output (showing polarisations).
All is well.
bool polarise | ( | vector< Particle > & | state, |
const bool | force = false |
||
) |
Check if helicity sampler can do this.
bool prepare | ( | const int | iSys, |
Event & | event | ||
) |
Function to return ME class (Born type) for a parton configuration.
Function to return ME class (Born type) for a parton configuration. Can be called from either of the ISR::prepare() or FSR::prepare() functions, or from the ISR::branch() or FSR::branch() functions. Returns >= 0 if there an ME for this configuration, associated with the (arbitrary) integer code label denoted by the return value. If return < 0 we don't have an ME / no ME should be used for this system.
If we switched off MECs completely, return here.
Initialise for no MECs, then check if MECs should be applied.
Check if MECs are switched on for this type of Born system.
Save Born multiplicity and number of QCD particles in Born.
When using relative matching scale, save hard scale.
Save that we do not yet have calculated any matrix elements.
Check whether MG5MEs interface has the process.