PYTHIA  8.311
Public Member Functions | List of all members
VinciaHardProcess Class Reference

Container for the hard process used in Vincia merging. More...

#include <VinciaMergingHooks.h>

Inheritance diagram for VinciaHardProcess:
HardProcess

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.
 

Detailed Description

Container for the hard process used in Vincia merging.

Member Function Documentation

bool findOtherCandidates ( int  iPos,
const Event event,
bool  doReplace 
)
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)?

void initOnProcess ( string  process,
ParticleData particleData 
)
overridevirtual

Initialise process.

The VinciaHardProcess class methods.

Initialise process.

1) Preprocessing. Remove leading "{".

Remove trailing "}".

2) Split into incoming and outgoing.

Reimplemented from HardProcess.

bool matchesAnyOutgoing ( int  iPos,
const Event event 
)
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.


The documentation for this class was generated from the following files: