PYTHIA
8.312
|
Container for the hard process used in Vincia merging. More...
#include <VinciaMergingHooks.h>
Public Member Functions | |
VinciaHardProcess (Logger *loggerPtrIn, int verboseIn, bool resolveDecaysIn, bool doHEFTIn, bool doVBFIn) | |
Constructor. | |
void | initOnProcess (string process, ParticleData *particleData) override |
Initialise process. More... | |
void | storeCandidates (const Event &, string) override |
Redundant inherited methods - only dummy versions here. | |
bool | matchesAnyOutgoing (int, const Event &) override |
bool | findOtherCandidates (int, const Event &, bool) override |
void | list () const |
Print functions. | |
void | listLookup () const |
Hard process lookup. | |
void | setVerbose (int verboseIn) |
Set verbosity. | |
bool | initSuccess () |
Check if initialised. | |
void | getColourStructure (ColourStructure &colStructNow) |
Return the colour structure of the hard process. More... | |
Public Member Functions inherited from HardProcess | |
HardProcess () | |
Default constructor. | |
virtual | ~HardProcess () |
Default destructor. | |
HardProcess (const HardProcess &hardProcessIn) | |
Copy constructor. | |
HardProcess (string LHEfile, ParticleData *particleData) | |
Constructor with path to LHE file. | |
void | initOnLHEF (string LHEfile, ParticleData *particleData) |
Constructor with path to LHE file input. More... | |
void | translateLHEFString (string LHEpath) |
Function to access the LHE file and read relevant information. More... | |
virtual void | translateProcessString (string process) |
Function to translate the process string (in MG/ME notation) More... | |
void | clear () |
Function to clear hard process information. More... | |
virtual bool | allowCandidates (int iPos, vector< int > Pos1, vector< int > Pos2, const Event &event) |
virtual bool | exchangeCandidates (vector< int > candidates1, vector< int > candidates2, unordered_map< int, int > further1, unordered_map< int, int > further2) |
Function to exchange a stored hard process candidate with another choice. More... | |
int | nQuarksOut () |
int | nLeptonOut () |
int | nBosonsOut () |
int | nQuarksIn () |
int | nLeptonIn () |
int | hasResInCurrent () |
int | nResInCurrent () |
bool | hasResInProc () |
Function to report if a resonace decay was found in the 2->2 hard process. More... | |
void | list () const |
Function to print the hard process (for debug) | |
void | listCandidates () const |
Additional Inherited Members | |
Public Attributes inherited from HardProcess | |
int | hardIncoming1 |
Flavour of the first incoming particle. | |
int | hardIncoming2 |
Flavour of the second incoming particle. | |
vector< int > | hardOutgoing1 |
Flavours of the outgoing particles. | |
vector< int > | hardOutgoing2 |
vector< int > | hardIntermediate |
Flavour of intermediate bosons in the hard 2->2. | |
Event | state |
Current reference event. | |
vector< int > | PosOutgoing1 |
Potential positions of outgoing particles in reference event. | |
vector< int > | PosOutgoing2 |
vector< int > | PosIntermediate |
Potential positions of intermediate bosons in reference event. | |
double | tms |
Information on merging scale read from LHE file. | |
Container for the hard process used in Vincia merging.
|
inlineoverridevirtual |
Function to check if instead of the particle event[iCandidate], another particle could serve as part of the hard process. Assumes that iCandidate is already stored as part of the hard process.
Return value
Save stored candidates' properties.
If the particle's mother is an identified intermediate resonance, then do not attempt any replacement.
Compare particle properties
Find candidate amongst the already stored ME process candidates.
Check outgoing candidates
Compare particle properties
Check outgoing candidates
Compare particle properties
If more / less than one stored candidate for iPos has been found, exit.
Now check for other allowed candidates.
Do nothing if this particle has already be found, or if this particle is a jet, lepton container or lepton
Declare vector of already existing candiates.
If allowed, remember replacment parton.
Now check for other allowed candidates.
Do nothing if this particle has already be found, or if this particle is a jet, lepton container or lepton
Declare vector of already existing candidates.
If allowed, remember replacment parton.
Remove all hard process particles that would be counted twice.
Decide of a replacment candidate has been found.
Done
Reimplemented from HardProcess.
void getColourStructure | ( | ColourStructure & | colStructNow | ) |
Return the colour structure of the hard process.
Obtain the colour structure of the hard process.
Set beams.
Loop over level one particles and save.
Is this a resonance? (or e.g. a photon with specified decay).
Is it coloured or not?
Fetch ID.
Just get representative id.
Is it a lepton?
Is it a parton?
Recursively replace coloured resonances until empty.
Copy next element from back.
Delete from back.
Get decay products. Did we specify the decay?
Is this a resonance?
Is it coloured or not?
Fetch ID.
Just get representative id.
Is it a lepton?
Is it a parton?
Just print a warning.
Just pretend it is stable.
Loop over colour-singlet resonances, and save those which decay hadronically.
Did we specify the decay?
Is it coloured or not?
Is this another uncoloured resonance?
Fetch ID.
Just get representative id.
Is it a lepton?
Neutral.
Flavour-changing.
Flavour-neutral.
Positive.
Negative.
Done with leptonically and hadronically decays.
Positive.
Negative.
Neutral.
Check beams and coloured particles: how many explicit qqbar pairs, how many coloured?
Set minimum number of quark pairs.
If lepton-lepton > jets, need at least 1 qqbar pair (even if user did not specify).
If lepton-quark scattering, need at least 1 qqbar pair.
If p p > colour singlet, need at least 1 qqbar pair (except for HEFT).
If HEFT turned on, no minimum number of quark pairs required.
If p p > colour singlet + 2 jets, check for VBF and HEFT.
If VBF process, need two quark pairs.
If HEFT turned on, no minimum number of quark pairs required.
What are the max and minimum number of chains associated with the "beam" scattering (i.e. not from singlet decays)?
|
overridevirtual |
Initialise process.
The VinciaHardProcess class methods.
Initialise process.
1) Preprocessing. Remove leading "{".
Remove trailing "}".
2) Split into incoming and outgoing.
Reimplemented from HardProcess.
|
inlineoverridevirtual |
Function to check if the particle event[iPos] matches any of the stored outgoing particles of the hard subprocess
Match quantum numbers of any first outgoing candidate
Match quantum numbers of any second outgoing candidate
Match parton in the hard process, or parton from decay of electroweak boson in hard process, or parton from decay of electroweak boson from decay of top
Check outgoing candidates
Compare particle properties
Check outgoing candidates
Compare particle properties
Check if maps to hard process: Check that particle is in hard process
Or particle has taken recoil from first splitting
Or particle has on-shell resonace as mother
Or particle has on-shell resonace as mother, which again has and on-shell resonance as mother
Done
Reimplemented from HardProcess.