PYTHIA
8.312
|
#include <JetMatching.h>
Public Member Functions | |
JetMatching () | |
Constructor and destructor. | |
~JetMatching () | |
virtual bool | initAfterBeams ()=0 |
Initialisation. | |
bool | canVetoProcessLevel () |
Process level vetos. | |
bool | doVetoProcessLevel (Event &process) |
bool | canVetoPartonLevelEarly () |
Parton level vetos (before beam remnants and resonance decays) | |
bool | doVetoPartonLevelEarly (const Event &event) |
Early parton level veto (before beam remnants and resonance showers) More... | |
int | numberVetoStep () |
Shower step vetoes (after the first emission, for Shower-kT scheme) | |
bool | canVetoStep () |
bool | doVetoStep (int, int, int, const Event &) |
virtual void | sortIncomingProcess (const Event &)=0 |
Different steps of the matching algorithm. More... | |
virtual void | jetAlgorithmInput (const Event &, int)=0 |
virtual void | runJetAlgorithm ()=0 |
virtual bool | matchPartonsToJets (int)=0 |
virtual int | matchPartonsToJetsLight ()=0 |
virtual int | matchPartonsToJetsHeavy ()=0 |
void | errorMsg (string messageIn) |
Print a message the first few times. Insert in database. More... | |
Public Member Functions inherited from UserHooks | |
virtual | ~UserHooks () |
Destructor. | |
virtual bool | canModifySigma () |
Possibility to modify cross section of process. | |
virtual double | multiplySigmaBy (const SigmaProcess *sigmaProcessPtr, const PhaseSpace *phaseSpacePtr, bool inEvent) |
Multiplicative factor modifying the cross section of a hard process. More... | |
virtual bool | canBiasSelection () |
Possibility to bias selection of events, compensated by a weight. | |
virtual double | biasSelectionBy (const SigmaProcess *sigmaProcessPtr, const PhaseSpace *phaseSpacePtr, bool inEvent) |
Multiplicative factor in the phase space selection of a hard process. More... | |
virtual double | biasedSelectionWeight () |
Event weight to compensate for selection weight above. | |
virtual bool | canSetLowEnergySigma (int, int) const |
virtual double | doSetLowEnergySigma (int, int, double, double, double) const |
virtual bool | canVetoResonanceDecays () |
Possibility to veto resonance decay chain. | |
virtual bool | doVetoResonanceDecays (Event &) |
virtual bool | canVetoPT () |
virtual double | scaleVetoPT () |
Transverse-momentum scale for veto test. | |
virtual bool | doVetoPT (int, const Event &) |
virtual bool | canVetoMPIStep () |
virtual int | numberVetoMPIStep () |
Up to how many MPI steps should be checked. | |
virtual bool | doVetoMPIStep (int, const Event &) |
virtual bool | retryPartonLevel () |
virtual bool | canVetoPartonLevel () |
Possibility to veto event after parton-level selection. | |
virtual bool | doVetoPartonLevel (const Event &) |
virtual bool | canSetResonanceScale () |
Possibility to set initial scale in TimeShower for resonance decay. | |
virtual double | scaleResonance (int, const Event &) |
virtual bool | canVetoISREmission () |
Possibility to veto an emission in the ISR machinery. | |
virtual bool | doVetoISREmission (int, const Event &, int) |
virtual bool | canVetoFSREmission () |
Possibility to veto an emission in the FSR machinery. | |
virtual bool | doVetoFSREmission (int, const Event &, int, bool=false) |
virtual bool | canVetoMPIEmission () |
Possibility to veto an MPI. | |
virtual bool | doVetoMPIEmission (int, const Event &) |
virtual bool | canReconnectResonanceSystems () |
Possibility to reconnect colours from resonance decay systems. | |
virtual bool | doReconnectResonanceSystems (int, Event &) |
virtual bool | canChangeFragPar () |
Can change fragmentation parameters. | |
virtual void | setStringEnds (const StringEnd *, const StringEnd *, vector< int >) |
virtual bool | doChangeFragPar (StringFlav *, StringZ *, StringPT *, int, double, vector< int >, const StringEnd *) |
virtual bool | doVetoFragmentation (Particle, const StringEnd *) |
virtual bool | doVetoFragmentation (Particle, Particle, const StringEnd *, const StringEnd *) |
virtual bool | canVetoAfterHadronization () |
virtual bool | doVetoAfterHadronization (const Event &) |
Do the actual veto after hadronization. | |
virtual bool | canSetImpactParameter () const |
Can set the overall impact parameter for the MPI treatment. | |
virtual double | doSetImpactParameter () |
Set the overall impact parameter for the MPI treatment. | |
virtual bool | onEndHadronLevel (HadronLevel &, Event &) |
Custom processing at the end of HadronLevel::next. | |
Public Member Functions inherited from PhysicsBase | |
void | initInfoPtr (Info &infoPtrIn) |
This function is called from above for physics objects used in a run. More... | |
virtual | ~PhysicsBase () |
Empty virtual destructor. | |
bool | flag (string key) const |
Shorthand to read settings values. | |
int | mode (string key) const |
double | parm (string key) const |
string | word (string key) const |
vector< bool > | fvec (string key) const |
vector< int > | mvec (string key) const |
vector< double > | pvec (string key) const |
vector< string > | wvec (string key) const |
Protected Attributes | |
bool | doMerge |
Master switch for merging. | |
bool | doShowerKt |
int | nJetMax |
Maximum and current number of jets. | |
int | nJet |
int | jetAlgorithm |
Jet algorithm parameters. | |
double | eTjetMin |
double | coneRadius |
double | etaJetMax |
double | etaJetMaxAlgo |
CellJet * | cellJet |
Internal jet algorithms. | |
SlowJet * | slowJet |
SlowJet * | slowJetHard |
HJSlowJet * | hjSlowJet |
int | slowJetPower |
SlowJet specific. | |
Event | eventProcessOrig |
Event | eventProcess |
Event | workEventJet |
vector< int > | typeIdx [3] |
Sort final-state of incoming process into light/heavy jets and 'other'. | |
set< int > | typeSet [3] |
vector< Vec4 > | jetMomenta |
int | nEta |
CellJet specific. | |
int | nPhi |
double | eTseed |
double | eTthreshold |
int | jetAllow |
Merging procedure parameters. | |
int | jetMatch |
int | exclusiveMode |
double | coneMatchLight |
double | coneRadiusHeavy |
double | coneMatchHeavy |
bool | exclusive |
double | eTpTlightMin |
Store the minimum eT/pT of matched light jets. | |
map< string, int > | messages |
Map for all error messages. | |
Protected Attributes inherited from UserHooks | |
Event | workEvent = {} |
Have one event object around as work area. | |
double | selBias = 1. |
User-imposed selection bias. | |
double | enhancedEventWeight = {} |
Bookkept quantities for boosted event weights. | |
double | pTEnhanced = {} |
double | wtEnhanced = {} |
Protected Attributes inherited from PhysicsBase | |
Info * | infoPtr = {} |
Settings * | settingsPtr = {} |
Pointer to the settings database. | |
ParticleData * | particleDataPtr = {} |
Pointer to the particle data table. | |
Logger * | loggerPtr = {} |
Pointer to logger. | |
HadronWidths * | hadronWidthsPtr = {} |
Pointer to the hadron widths data table. | |
Rndm * | rndmPtr = {} |
Pointer to the random number generator. | |
CoupSM * | coupSMPtr = {} |
Pointers to SM and SUSY couplings. | |
CoupSUSY * | coupSUSYPtr = {} |
BeamSetup * | beamSetupPtr = {} |
BeamParticle * | beamAPtr = {} |
BeamParticle * | beamBPtr = {} |
BeamParticle * | beamPomAPtr = {} |
BeamParticle * | beamPomBPtr = {} |
BeamParticle * | beamGamAPtr = {} |
BeamParticle * | beamGamBPtr = {} |
BeamParticle * | beamVMDAPtr = {} |
BeamParticle * | beamVMDBPtr = {} |
PartonSystems * | partonSystemsPtr = {} |
Pointer to information on subcollision parton locations. | |
SigmaTotal * | sigmaTotPtr = {} |
Pointers to the total/elastic/diffractive cross sections. | |
SigmaCombined * | sigmaCmbPtr = {} |
set< PhysicsBase * > | subObjects |
UserHooksPtr | userHooksPtr |
Static Protected Attributes | |
static const bool | MATCHINGDEBUG = false |
Constants to be changed for debug printout or extra checks. More... | |
static const bool | MATCHINGCHECK = false |
static const int | TIMESTOPRINT = 1 |
Number of times the same error message is repeated, unless overridden. | |
Additional Inherited Members | |
Public Types inherited from PhysicsBase | |
enum | Status { INCOMPLETE = -1, COMPLETE = 0, CONSTRUCTOR_FAILED, INIT_FAILED, LHEF_END, LOWENERGY_FAILED, PROCESSLEVEL_FAILED, PROCESSLEVEL_USERVETO, MERGING_FAILED, PARTONLEVEL_FAILED, PARTONLEVEL_USERVETO, HADRONLEVEL_FAILED, CHECK_FAILED, OTHER_UNPHYSICAL, HEAVYION_FAILED, HADRONLEVEL_USERVETO } |
Enumerate the different status codes the event generation can have. | |
Protected Member Functions inherited from UserHooks | |
UserHooks () | |
Constructor. | |
virtual void | onInitInfoPtr () override |
After initInfoPtr, initialize workEvent. More... | |
void | omitResonanceDecays (const Event &process, bool finalOnly=false) |
omitResonanceDecays omits resonance decay chains from process record. More... | |
void | subEvent (const Event &event, bool isHardest=true) |
subEvent extracts currently resolved partons in the hard process. More... | |
Protected Member Functions inherited from PhysicsBase | |
PhysicsBase () | |
Default constructor. | |
virtual void | onBeginEvent () |
This function is called in the very beginning of each Pythia::next call. | |
virtual void | onEndEvent (Status) |
virtual void | onStat () |
This function is called from the Pythia::stat() call. | |
void | registerSubObject (PhysicsBase &pb) |
Register a sub object that should have its information in sync with this. | |
Declaration of main JetMatching class to perform MLM matching. Note that it is defined with virtual inheritance, so that it can be combined with other UserHooks classes, see e.g. main33.cc.
|
inline |
Print error statistics before exiting. Printing code basically copied from Info class. Header.
Loop over all messages
Message printout.
Done.
|
inlinevirtual |
Possibility to veto MPI + ISR + FSR evolution and kill event, making decision after fixed number of ISR or FSR steps.
Reimplemented from UserHooks.
Reimplemented in JetMatchingMadgraph.
|
inlinevirtual |
Early parton level veto (before beam remnants and resonance showers)
1) Sort the original incoming process. After this step is performed, the following assignments have been made: eventProcessOrig - the original incoming process eventProcess - the final-state of the incoming process with resonance decays removed (and resonances themselves now with positive status code) typeIdx[0/1/2] - Indices into 'eventProcess' of light jets/heavy jets/other typeSet[0/1/2] - Indices into 'event' of light jets/heavy jets/other workEvent - partons from the hardest subsystem + ISR + FSR only
For the shower-kT scheme, do not perform any veto here, as any vetoing will already have taken place in doVetoStep.
Debug printout.
Begin
Original incoming process
Final-state of original incoming process
List categories of sorted particles
Full event at this stage
Work event (partons from hardest subsystem + ISR + FSR)
2) Light/heavy jets: iType = 0 (light jets), 1 (heavy jets)
2a) Find particles which will be passed from the jet algorithm. Input from 'workEvent' and output in 'workEventJet'.
Debug printout.
Jet algorithm event
2b) Run jet algorithm on 'workEventJet'. Output is stored in jetMomenta.
2c) Match partons to jets and decide if veto is necessary
Debug printout.
Debug printout.
If we reached here, then no veto
Reimplemented from UserHooks.
|
inlinevirtual |
Decide whether to veto current process or not, based on process record. Usage: doVetoProcessLevel( process).
Reimplemented from UserHooks.
Reimplemented in JetMatchingMadgraph.
|
inlinevirtual |
Decide whether to veto current event or not, based on event record. Usage: doVetoStep( iPos, nISR, nFSR, event), where iPos as above, nISR and nFSR number of emissions so far for hard interaction only.
Reimplemented from UserHooks.
Reimplemented in JetMatchingMadgraph.
|
inline |
Print a message the first few times. Insert in database.
Recover number of times message occured. Also inserts new string.
Print message the first few times.
|
pure virtual |
Different steps of the matching algorithm.
Note: The functions below have been made public to ease the generation of Python bindings. protected:
Implemented in JetMatchingMadgraph.
|
protected |
Switch for merging in the shower-kT scheme. Needed here because the scheme uses different UserHooks functionality.
|
protected |
Event records to store original incoming process, final-state of the incoming process and what will be passed to the jet algorithm. Not completely necessary to store all steps, but makes tracking the steps of the algorithm a lot easier.
|
protected |
Momenta output of jet algorithm (to provide same output regardless of the selected jet algorithm)
|
staticprotected |
Constants to be changed for debug printout or extra checks.
Main implementation of JetMatching class. This may be split out to a separate C++ file if desired, but currently included here for ease of use.