PYTHIA  8.303
Public Member Functions | Protected Types | Protected Attributes | Static Protected Attributes | List of all members
JetMatching Class Referenceabstract

#include <JetMatching.h>

Inheritance diagram for JetMatching:
UserHooks PhysicsBase JetMatchingAlpgen JetMatchingMadgraph JetMatchingAlpgenInputAlpgen JetMatchingMadgraphInputAlpgen

Public Member Functions

 JetMatching ()
 Constructor and destructor.
 ~JetMatching ()
virtual bool initAfterBeams ()=0
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 ()
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 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 canEnhanceEmission ()
 Enhance emission rates (sec. 4 in EPJC (2013) 73).
virtual double enhanceFactor (string)
virtual double vetoProbability (string)
void setEnhancedEventWeight (double wt)
double getEnhancedEventWeight ()
virtual bool canEnhanceTrial ()
void setEnhancedTrial (double pTIn, double wtIn)
double getEnhancedTrialPT ()
double getEnhancedTrialWeight ()
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 canSetImpactParameter () const
 Can set the overall impact parameter for the MPI treatment.
virtual double doSetImpactParameter ()
 Set the overall impact parameter for the MPI treatment.
- 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

Protected Types

enum  vetoStatus {
enum  partonTypes {
  ID_CHARM =4, ID_BOT =5, ID_TOP =6, ID_LEPMIN =11,

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
 Internal jet algorithms.
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< Vec4jetMomenta
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
InfoinfoPtr = {}
SettingssettingsPtr = {}
 Pointer to the settings database.
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
RndmrndmPtr = {}
 Pointer to the random number generator.
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
CoupSUSYcoupSUSYPtr = {}
BeamParticlebeamAPtr = {}
BeamParticlebeamBPtr = {}
BeamParticlebeamPomAPtr = {}
BeamParticlebeamPomBPtr = {}
BeamParticlebeamGamAPtr = {}
BeamParticlebeamGamBPtr = {}
BeamParticlebeamVMDAPtr = {}
BeamParticlebeamVMDBPtr = {}
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
SigmaTotalsigmaTotPtr = {}
 Pointer to the total/elastic/diffractive cross sections.
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 {
 Enumerate the different status codes the event generation can have.
- Protected Member Functions inherited from UserHooks
 UserHooks ()
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.

Detailed Description

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.

Constructor & Destructor Documentation

~JetMatching ( )

Print error statistics before exiting. Printing code basically copied from Info class. Header.

Loop over all messages

Message printout.


Member Function Documentation

bool canVetoStep ( )

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.

bool doVetoPartonLevelEarly ( const Event event)

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.


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.

bool doVetoProcessLevel ( Event )

Decide whether to veto current process or not, based on process record. Usage: doVetoProcessLevel( process).

Reimplemented from UserHooks.

Reimplemented in JetMatchingMadgraph.

bool doVetoStep ( int  ,
int  ,
int  ,
const Event  

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.

void errorMsg ( string  messageIn)

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.

virtual void sortIncomingProcess ( const Event )
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.

Member Data Documentation

bool doShowerKt

Switch for merging in the shower-kT scheme. Needed here because the scheme uses different UserHooks functionality.

Event eventProcessOrig

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.

vector<Vec4> jetMomenta

Momenta output of jet algorithm (to provide same output regardless of the selected jet algorithm)

const bool MATCHINGDEBUG = false

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.

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