PYTHIA  8.303
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
DireMergingHooks Class Reference

DireMergingHooks is base class for user input to the merging procedure. More...

#include <DireMergingHooks.h>

Inheritance diagram for DireMergingHooks:
MergingHooks PhysicsBase

Public Member Functions

virtual int getNumberOfClusteringSteps (const Event &event, bool resetNjetMax=false)
 Function to return the number of clustering steps for the current event. More...
 
bool checkAgainstCut (const Particle &particle)
 Functions used as default merging scales. More...
 
double tmsNow (const Event &event)
 
double scalems (const Event &event)
 
void doIgnoreEmissions (bool doIgnoreIn)
 Functions to steer shower evolution (public to allow for PS plugin). More...
 
bool canVetoEmission ()
 Function to allow not counting a trial emission.
 
bool doVetoEmission (const Event &)
 Function to check if emission should be rejected. More...
 
void init ()
 The DireMergingHooks class. More...
 
virtual bool doVetoStep (const Event &process, const Event &event, bool doResonance=false)
 Function to check event veto. More...
 
virtual bool setShowerStartingScales (bool isTrial, bool doMergeFirstEmm, double &pTscaleIn, const Event &event, double &pTmaxFSRIn, bool &limitPTmaxFSRin, double &pTmaxISRIn, bool &limitPTmaxISRin, double &pTmaxMPIIn, bool &limitPTmaxMPIin)
 Set starting scales. More...
 
bool doMOPS ()
 
bool doMEM ()
 
vector< double > stoppingScales ()
 
- Public Member Functions inherited from MergingHooks
 MergingHooks ()
 Constructor.
 
virtual ~MergingHooks ()
 Functions that allow user interference. More...
 
virtual double tmsDefinition (const Event &event)
 Function encoding the functional definition of the merging scale.
 
virtual double dampenIfFailCuts (const Event &inEvent)
 
virtual bool canCutOnRecState ()
 
virtual bool doCutOnRecState (const Event &event)
 
virtual bool canVetoTrialEmission ()
 Function to allow not counting a trial emission.
 
virtual bool doVetoTrialEmission (const Event &, const Event &)
 Function to check if trial emission should be rejected.
 
virtual double hardProcessME (const Event &inEvent)
 Function to calculate the hard process matrix element. More...
 
double tms ()
 Simple output functions. More...
 
double tmsCut ()
 
void tms (double tmsIn)
 
double dRijMS ()
 
double pTiMS ()
 
double QijMS ()
 
int nMaxJets ()
 Function returning the value of the maximal number of merged jets.
 
int nMaxJetsNLO ()
 
string getProcessString ()
 Function to return hard process string.
 
int nHardOutPartons ()
 Function to return the number of outgoing partons in the core process.
 
int nHardOutLeptons ()
 Function to return the number of outgoing leptons in the core process.
 
int nHardOutBosons ()
 
int nHardInPartons ()
 
int nHardInLeptons ()
 Function to return the number of incoming leptons in the core process.
 
int nResInCurrent ()
 
bool doUserMerging ()
 Function to determine if user defined merging should be applied.
 
bool doMGMerging ()
 Function to determine if automated MG/ME merging should be applied.
 
bool doKTMerging ()
 Function to determine if KT merging should be applied.
 
bool doPTLundMerging ()
 Function to determine if PTLund merging should be applied.
 
bool doCutBasedMerging ()
 Function to determine if cut based merging should be applied.
 
bool doCKKWLMerging ()
 
bool doUMEPSTree ()
 
bool doUMEPSSubt ()
 
bool doUMEPSMerging ()
 
bool doNL3Tree ()
 
bool doNL3Loop ()
 
bool doNL3Subt ()
 
bool doNL3Merging ()
 
bool doUNLOPSTree ()
 
bool doUNLOPSLoop ()
 
bool doUNLOPSSubt ()
 
bool doUNLOPSSubtNLO ()
 
bool doUNLOPSMerging ()
 
int nRecluster ()
 Return the number clustering steps that have actually been done.
 
int nRequested ()
 Return number of requested additional jets on top of the Born process.
 
bool isFirstEmission (const Event &event)
 Output functions to analyse/prepare event for merging. More...
 
bool hasEffectiveG2EW ()
 Function to allow effective gg -> EW boson couplings.
 
bool allowEffectiveVertex (vector< int > in, vector< int > out)
 Function to allow effective gg -> EW boson couplings.
 
Event bareEvent (const Event &inputEventIn, bool storeInputEvent)
 Return event stripped from decay products. More...
 
bool reattachResonanceDecays (Event &process)
 Write event with decay products attached to argument. More...
 
bool isInHard (int iPos, const Event &event)
 Check if particle at position iPos is part of the hard sub-system. More...
 
void orderHistories (bool doOrderHistoriesIn)
 Functions to steer construction of histories. More...
 
void allowCutOnRecState (bool doCutOnRecStateIn)
 
void doWeakClustering (bool doWeakClusteringIn)
 Function to allow final state clusterings of weak bosons.
 
bool checkAgainstCut (const Particle &particle)
 Functions used as default merging scales. More...
 
double rhoms (const Event &event, bool withColour)
 Find the minimal Lund pT between coloured partons in the event. More...
 
double kTms (const Event &event)
 Function to calculate the minimal kT in the event. More...
 
double cutbasedms (const Event &event)
 
void doIgnoreEmissions (bool doIgnoreIn)
 Functions to steer shower evolution (public to allow for PS plugin) More...
 
virtual bool useShowerPlugin ()
 
bool includeWGTinXSEC ()
 
int nHardNow ()
 Functions to retrieve event veto information.
 
double tmsHardNow ()
 
int nJetsNow ()
 
double tmsNow ()
 
void setHardProcessPtr (HardProcess *hardProcIn)
 
int nMuRVar ()
 Functions related to renormalization scale variations.
 
void printIndividualWeights ()
 Function to print individual merging weight components, for debugging.
 
void setShowerPointer (PartonLevel *psIn)
 
void storeHardProcessCandidates (const Event &event)
 Generic setup functions. More...
 
void setLHEInputFile (string lheFile)
 
AlphaStrongAlphaS_FSR ()
 Functions for output of class members. More...
 
AlphaStrongAlphaS_ISR ()
 
AlphaEMAlphaEM_FSR ()
 
AlphaEMAlphaEM_ISR ()
 
bool includeMassive ()
 
bool enforceStrongOrdering ()
 Prefer strongly ordered histories.
 
bool orderInRapidity ()
 Prefer histories ordered in rapidity and evolution pT.
 
bool pickByFull ()
 Pick history probabilistically by full (correct) splitting probabilities.
 
bool pickByPoPT2 ()
 Pick history probabilistically, with easier form of probabilities.
 
bool includeRedundant ()
 Include redundant terms (e.g. PDF ratios) in the splitting probabilities.
 
bool pickBySumPT ()
 Pick by winner-takes-it-all, with minimum sum of scalar evolution pT.
 
int unorderedScalePrescip ()
 
int unorderedASscalePrescip ()
 
int unorderedPDFscalePrescip ()
 
int incompleteScalePrescip ()
 
bool allowColourShuffling ()
 Allow swapping one colour index while reclustering.
 
bool resetHardQRen ()
 Allow use of dynamical renormalisation scale of the core 2-> 2 process.
 
bool resetHardQFac ()
 Allow use of dynamical factorisation scale of the core 2-> 2 process.
 
double scaleSeparationFactor ()
 
double nonJoinedNorm ()
 
double fsrInRecNorm ()
 
double herwigAcollFSR ()
 
double herwigAcollISR ()
 
double pT0ISR ()
 ISR regularisation scale.
 
double pTcut ()
 Shower cut-off scale.
 
void muMI (double mu)
 MI starting scale.
 
double muMI ()
 
double kFactor (int njet=0)
 Full k-Factor for current event.
 
double k1Factor (int njet=0)
 O()-term of the k-Factor for current event.
 
bool orderHistories ()
 
bool allowCutOnRecState ()
 
bool doWeakClustering ()
 INTERNAL Hooks to allow clustering W bosons.
 
bool doSQCDClustering ()
 INTERNAL Hooks to allow clustering clustering of gluons to squarks.
 
double muF ()
 Store / get first scale in PDF's that Pythia should have used.
 
double muR ()
 
double muFinME ()
 Store / get factorisation scale used in matrix element calculation. More...
 
double muRinME ()
 
void doIgnoreStep (bool doIgnoreIn)
 Functions to steer merging code. More...
 
void storeWeights (vector< double > weight)
 Stored weights in case veto needs to be revoked.
 
void setShowerStoppingScale (double scale=0.)
 
double getShowerStoppingScale ()
 
void nMinMPI (int nMinMPIIn)
 
int nMinMPI ()
 
double kTdurham (const Particle &RadAfterBranch, const Particle &EmtAfterBranch, int Type, double D)
 Functions for internal merging scale definions. More...
 
double rhoPythia (const Event &event, int rad, int emt, int rec, int ShowerType)
 Function to compute "pythia pT separation" from Particle input. More...
 
int findColour (int col, int iExclude1, int iExclude2, const Event &event, int type, bool isHardIn)
 
double deltaRij (Vec4 jet1, Vec4 jet2)
 Function to compute Delta R separation from 4-vector input. More...
 
double getWeightNLO (int i=0)
 Functions for weight management. More...
 
vector< double > getWeightCKKWL ()
 Return CKKW-L weight.
 
vector< double > getWeightFIRST ()
 Return O() weight.
 
void setWeightCKKWL (vector< double > weightIn)
 Set CKKW-L weight.
 
void setWeightFIRST (vector< double > weightIn)
 Set O() weight.
 
vector< double > getSudakovWeight ()
 
vector< double > getCouplingWeight ()
 Function to return coupling weight.
 
void setEventVetoInfo (int nJetNowIn, double tmsNowIn)
 Functions and members to store the event veto information. More...
 
void setHardProcessInfo (int nHardNowIn, double tmsHardNowIn)
 Set the hard process information.
 
- 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
 

Public Attributes

bool doMOPSSave
 
bool doMEMSave
 
- Public Attributes inherited from MergingHooks
bool useShowerPluginSave
 Functions used as clusterings / probabilities.
 
bool useOwnHardProcess
 The members, switches etc. More...
 
HardProcesshardProcess
 
PartonLevelshowers
 
AlphaStrong AlphaS_FSRSave
 AlphaS objects for alphaS reweighting use.
 
AlphaStrong AlphaS_ISRSave
 
AlphaEM AlphaEM_FSRSave
 
AlphaEM AlphaEM_ISRSave
 
string lheInputFile
 Saved path to LHE file for more automated merging.
 
bool doUserMergingSave
 Flags for merging procedure definition.
 
bool doMGMergingSave
 
bool doKTMergingSave
 
bool doPTLundMergingSave
 
bool doCutBasedMergingSave
 
bool includeMassiveSave
 
bool enforceStrongOrderingSave
 
bool orderInRapiditySave
 
bool pickByFullPSave
 
bool pickByPoPT2Save
 
bool includeRedundantSave
 
bool pickBySumPTSave
 
bool allowColourShufflingSave
 
bool resetHardQRenSave
 
bool resetHardQFacSave
 
int unorderedScalePrescipSave
 
int unorderedASscalePrescipSave
 
int unorderedPDFscalePrescipSave
 
int incompleteScalePrescipSave
 
int ktTypeSave
 
int nReclusterSave
 
int nQuarksMergeSave
 
int nRequestedSave
 
double scaleSeparationFactorSave
 
double nonJoinedNormSave
 
double fsrInRecNormSave
 
double herwigAcollFSRSave
 
double herwigAcollISRSave
 
double pT0ISRSave
 
double pTcutSave
 
bool doNL3TreeSave
 
bool doNL3LoopSave
 
bool doNL3SubtSave
 
bool doUNLOPSTreeSave
 
bool doUNLOPSLoopSave
 
bool doUNLOPSSubtSave
 
bool doUNLOPSSubtNLOSave
 
bool doUMEPSTreeSave
 
bool doUMEPSSubtSave
 
bool doEstimateXSection
 Flag to only do phase space cut, rejecting events below the tms cut.
 
bool applyVeto
 
Event inputEvent
 Save input event in case decay products need to be detached.
 
vector< pair< int, int > > resonances
 
bool doRemoveDecayProducts
 
double muMISave
 Starting scale for attaching MPI.
 
double kFactor0jSave
 Precalculated K-factors.
 
double kFactor1jSave
 
double kFactor2jSave
 
double tmsValueSave
 Saved members.
 
double tmsValueNow
 
double DparameterSave
 
int nJetMaxSave
 
int nJetMaxNLOSave
 
string processSave
 
string processNow
 
vector< double > tmsListSave
 
bool doOrderHistoriesSave
 
bool doCutOnRecStateSave
 
bool doWeakClusteringSave
 INTERNAL Hooks to allow clustering W bosons.
 
bool doSQCDClusteringSave
 
double muFSave
 Store / get first scale in PDF's that Pythia should have used.
 
double muRSave
 
double muFinMESave
 Store / get factorisation scale used in matrix element calculation.
 
double muRinMESave
 
bool doIgnoreEmissionsSave
 Flag to indicate trial shower usage.
 
bool doIgnoreStepSave
 Flag to indicate if events should be vetoed.
 
double pTsave
 Stored weights in case veot needs to be revoked.
 
vector< double > weightCKKWL1Save
 
vector< double > weightCKKWL2Save
 
int nMinMPISave
 
vector< double > weightCKKWLSave
 Save CKKW-L weight / O() weight.
 
vector< double > weightFIRSTSave
 
IndividualWeights individualWeights
 
bool doVariations
 Flag to indicate whether renormalization scale variations are performed.
 
vector< double > muRVarFactors
 Vector of variation factors applied to renormalization scale.
 
int nWgts
 Number of weights, nominal + variations.
 
int nJetMaxLocal
 Local copies of nJetMax inputs, if recalculation is necessary.
 
int nJetMaxNLOLocal
 
bool hasJetMaxLocal
 
bool includeWGTinXSECSave
 
int nHardNowSave
 
int nJetNowSave
 
double tmsHardNowSave
 
double tmsNowSave
 
double stopScaleSave
 

Protected Member Functions

void doIgnoreStep (bool doIgnoreIn)
 Functions to steer merging code. More...
 
bool canVetoStep ()
 Function to allow event veto.
 
double rhoPythia (const Event &event, int rad, int emt, int rec, int ShowerType)
 Functions for internal merging scale definions. More...
 
int findColour (int col, int iExclude1, int iExclude2, const Event &event, int type, bool isHardIn)
 
void store ()
 
void restore ()
 
- Protected Member Functions inherited from PhysicsBase
 PhysicsBase ()
 Default constructor.
 
virtual void onInitInfoPtr ()
 
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.
 

Protected Attributes

bool isInit
 
bool isStored
 
int nReclusterStore
 Member variables to store and restore to.
 
int nRequestedStore
 
int nJetMaxStore
 
int nJetMaxNLOStore
 
int nMinMPIStore
 
int nJetMaxLocalStore
 
int nJetMaxNLOLocalStore
 
int nHardNowStore
 
int nJetNowStore
 
double pT0ISRStore
 
double pTcutStore
 
double muMIStore
 
double tmsValueStore
 
double tmsValueNowStore
 
double DparameterStore
 
double muFStore
 
double muRStore
 
double muFinMEStore
 
double muRinMEStore
 
double pTstore
 
double tmsHardNowStore
 
double tmsNowStore
 
bool doOrderHistoriesStore
 
bool doIgnoreEmissionsStore
 
bool doIgnoreStepStore
 
bool hasJetMaxLocalStore
 
Event inputEventStore
 
vector< pair< int, int > > resonancesStore
 
HardProcess hardProcessStore
 
vector< double > stoppingScalesSave
 
- 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
 

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
}
 Enumerate the different status codes the event generation can have.
 

Detailed Description

DireMergingHooks is base class for user input to the merging procedure.

Member Function Documentation

bool checkAgainstCut ( const Particle particle)

Functions used as default merging scales.

Function to check if the input particle is a light jet, i.e. should be checked against the merging scale defintion.

Function to check if the properties of the input particle should be checked against the cut-based merging scale defintion.

Do not check uncoloured particles.

By default, use u-, d-, c-, s- and b-quarks.

Done

void doIgnoreEmissions ( bool  doIgnoreIn)
inline

Functions to steer shower evolution (public to allow for PS plugin).

Flag to indicate trial shower usage.

void doIgnoreStep ( bool  doIgnoreIn)
inlineprotected

Functions to steer merging code.

Flag to indicate if events should be vetoed.

bool doVetoEmission ( const Event event)
virtual

Function to check if emission should be rejected.

Do nothing in trial showers, or after first step.

Do nothing in CKKW-L

For NLO merging, count and veto emissions above the merging scale

Get number of clustering steps

Get merging scale in current event

Get maximal number of additional jets

Always remove emissions above the merging scale for samples containing reclusterings!

Check veto condition

Do not veto if state already includes MPI.

When performing NL3 merging of tree-level events, reset the CKKWL weight.

If the emission is allowed, do not check any further emissions

Done

Reimplemented from MergingHooks.

bool doVetoStep ( const Event process,
const Event event,
bool  doResonance = false 
)
virtual

Function to check event veto.

Function to check if emission should be rejected.

Do nothing in trial showers, or after first step.

Do nothing in UMEPS or UNLOPS

Get number of clustering steps. If necessary, remove resonance decay products first.

Get maximal number of additional jets.

Get merging scale in current event.

Do not print zero-weight events. For non-resonant showers, simply check veto. If event should indeed be vetoed, save the current pT and weights in case the veto needs to be revoked.

Store pT to check if veto needs to be revoked later.

Store veto inputs to perform veto at a later stage. if (!applyVeto) { setEventVetoInfo(nSteps, tnow); return false; }

Check merging veto condition.

Set weight to zero if event should be vetoed.

Save weight before veto, in case veto needs to be revoked.

Reset stored weights.

Store veto inputs to perform veto at a later stage.

Done

For resonant showers, check if any previous veto should be revoked. This means we treat showers off resonance decay products identical to MPI: If a hard resonance emission has been produced, the event should have been kept. Following this reasoning, it might be necessary to revoke any previous veto.

Initialise switch to revoke vetoing.

Nothing to check if pTsave was not stored, i.e. no emission to possibly veto was recorded. Only allow revoking the veto for diboson processes, with resonant electroweak bosons

For current purpose only!!!

For hadronic resonance decays at hadron colliders, do not veto events with a hard emission of the resonance decay products, since such states are not included in the matrix element

Check how many resonance decay systems are allowed

Find systems really containing only emission off a resonance decay

Resonance decay systems are considered last, thus at the end of the list

Check the members of the resonance decay systems

Save the (three) members of the resonance decay system

Now find emitted gluon or gamma

Per system, only one emission

Revoke previous veto of last emission if a splitting of the resonance produced a harder parton, i.e. we are inside the PS region

Do nothing (i.e. allow other first emission veto) for soft splitting

Done with one system

Done with all systems

Check veto condition

Check veto condition.

Set stored weights to zero.

Now allow veto.

If the emission is allowed, do not check any further emissions

Done

Done

Reimplemented from MergingHooks.

int findColour ( int  col,
int  iExclude1,
int  iExclude2,
const Event event,
int  type,
bool  isHardIn 
)
protected

Function to find a colour (anticolour) index in the input event, used to find colour-connected recoilers

Function to find a colour (anticolour) index in the input event. Helper for rhoms IN int col : Colour tag to be investigated int iExclude1 : Identifier of first particle to be excluded from search int iExclude2 : Identifier of second particle to be excluded from search Event event : event to be searched for colour tag int type : Tag to define if col should be counted as colour (type = 1) [->find anti-colour index contracted with col] anticolour (type = 2) [->find colour index contracted with col] OUT int : Position of particle in event record contraced with col [0 if col is free tag]

Search event record for matching colour & anticolour

Check outgoing

Check incoming

Search event record for matching colour & anticolour

Check outgoing from ISR

Check outgoing from FSR

Check outgoing from FSR

first initial

second initial

if no matching colour / anticolour has been found, return false

int getNumberOfClusteringSteps ( const Event event,
bool  resetNjetMax = false 
)
virtual

Function to return the number of clustering steps for the current event.

Count the number of final state partons

Count the number of final state leptons

Add neutralinos to number of leptons

Add sleptons to number of leptons

Count the number of final state electroweak bosons

Save sum of all final state particles

Return the difference to the core process outgoing particles

For inclusive handling, the number of reclustering steps can be different within a single sample.

Final particle counters

Set steps for QCD or QCD+QED events: Need at least two massless particles at lowest multiplicity.

Set steps for events containing heavy bosons. Need at least one massive particle at lowest multiplicity.

dynamical handling of steps

Return the difference to the core process outgoing particles

Reimplemented from MergingHooks.

void init ( )
virtual

The DireMergingHooks class.

Initialise DireMergingHooks class

Abuse init to store and restore state of MergingHooks.

Get core process from user input. Return if no process was selected.

Save pointers

Initialise AlphaS objects for reweighting

Initialise AlphaEM objects for reweighting

Initialise merging switches

Initialise automated MadGraph kT merging

Initialise kT merging

Initialise evolution-pT merging

Initialise {ij}, pT_i Q_{ij} merging

Initialise exact definition of kT

Initialise NL3 switches.

Initialise UNLOPS switches.

Initialise UMEPS switches

Flag to only do phase space cut.

Flag to check if merging weight should directly be included in the cross section.

Flag to check if CKKW-L event veto should be applied.

Clear hard process

Initialise input event.

Initialise the hard process

Parameters for reconstruction of evolution scales

Parameters for choosing history probabilistically

Parameters for scale choices

Parameter for allowing swapping of one colour index while reclustering

Parameters to allow setting hard process scales to default (dynamical) Pythia values.

Parameters for choosing history by sum(|pT|)

Information on the shower cut-off scale

Initialise CKKWL weight

Initialise merging scale

Save merging scale on maximal number of jets

Read merging scale (defined in kT) from input parameter.

Read merging scale (defined in kT) from LHE file.

Save list of cuts defining the merging scale.

Write tms cut values to list of cut values, ordered by DeltaR_{ij}, pT_{i}, Q_{ij}.

Read additional settingsPtr->for NLO merging methods.

Internal Pythia cross section should not include NLO merging weights.

Check if external shower plugin should be used.

Write banner.

Reimplemented from MergingHooks.

double rhoPythia ( const Event event,
int  rad,
int  emt,
int  rec,
int  ShowerType 
)
protected

Functions for internal merging scale definions.

Function to compute "pythia pT separation" from Particle input

Function to compute "pythia pT separation" from Particle input, as a helper for rhoms(...).

Use external shower for merging. Ask showers for evolution variable.

double scalems ( const Event event)

Find the minimal Lund pT between coloured partons in the event double scalems( const Event& event, bool withColour);

Find the minimal Lund pT between coloured partons in the input event. If doPTLundMerging = true, this function will be used as a merging scale definition.

Only check first emission.

Find all electroweak decayed bosons in the state.

Declare final parton vectors

Search inEvent record for final state partons. Exclude decay products of ew resonance.

Except for e+e- -> jets, do not check radiation in resonance decays.

Include photons into the tms definition for "weak+QCD merging".

Include Z-bosons into the tms definition for "weak+QCD merging".

Include W-bosons into the tms definition for "weak+QCD merging".

Get index of first incoming

Get index of second incoming

If no incoming of the cascade are found, try incoming

Find current incoming partons

For pure QCD set the cut to the pT of the dijet system.

No cut if only massive particles in final state.

Find minimal pythia pt in event

Compute II separation of i-emission and first incoming as radiator

Compute II separation of i-emission and second incoming as radiator

Compute all IF separations of i-emission and first incoming as radiator

Allow both initial partons as recoiler

Check with first initial as recoiler

Compute all IF separations of i-emission and second incoming as radiator

Allow both initial partons as recoiler

Check with first initial as recoiler

Compute all FF separations between final state partons.

Allow any parton as recoiler

Compute pythia FSR separation between two jets, with eith initial as recoiler.

Allow both initial partons as recoiler

Check with first initial as recoiler

Compute pythia FSR separation between two jets, with eith initial as recoiler.

Allow both initial partons as recoiler

Check with second initial as recoiler

Reset minimal y separation

bool setShowerStartingScales ( bool  isTrial,
bool  doMergeFirstEmm,
double &  pTscaleIn,
const Event event,
double &  pTmaxFSRIn,
bool &  limitPTmaxFSRIn,
double &  pTmaxISRIn,
bool &  limitPTmaxISRIn,
double &  pTmaxMPIIn,
bool &  limitPTmaxMPIIn 
)
virtual

Set starting scales.

Function to set the correct starting scales of the shower. Note: 2 -> 2 QCD systems can be produced by MPI. Hence, there is an overlap between MPI and "hard" 2 -> 2 QCD systems which needs to be removed by no-MPI probabilities. This means that for any "hard" 2 -> 2 QCD system, multiparton interactions should start at the maximal scale of multiple interactions. The same argument holds for any "hard" process that overlaps with MPI.

Local copies of power/wimpy shower booleans and scales.

Merging of EW+QCD showers with matrix elements: Ensure that

  1. any event with more than one final state particle will be showered from the reconstructed transverse momentum of the last emission, even if the factorisation scale is low.
  2. the shower starting scale for events with no emission is given by the (user-defined) choice.

Check if the process only contains two outgoing partons. If so, then this process could also have been produced by MPI. Thus, the MPI starting scale would need to be set accordingly to correctly attach a "no-MPI-probability" to multi-jet events. ("Hard" MPI are included by not restricting MPI when showering the lowest-multiplicity sample.)

SET THE STARTING SCALES FOR TRIAL SHOWERS.

Reset shower and MPI scales.

Reset to minimal scale for wimpy showers. Keep scales for EW+QCD merging.

For EW+QCD merging, apply wimpy shower only to 2->1 processes.

For pure QCD set the PS starting scales to the pT of the dijet system.

If necessary, set the MPI starting scale to the collider energy.

Reset phase space limitation flags

If necessary, set the MPI starting scale to the collider energy.

SET THE STARTING SCALES FOR REGULAR SHOWERS.

Remember if this is a "regular" shower off a reclustered event.

Reset shower and MPI scales.

Reset to minimal scale for wimpy showers. Keep scales for EW+QCD merging.

For EW+QCD merging, apply wimpy shower only to 2->1 processes.

For pure QCD set the PS starting scales to the pT of the dijet system.

If necessary, set the MPI starting scale to the collider energy.

For reclustered events, no-MPI-probability between "pTmaxMPI" and "scale" already included in the event weight.

Reset power/wimpy shower switches iand scales if necessary.

Done

Reimplemented from MergingHooks.

double tmsNow ( const Event event)
virtual

Function to return the value of the merging scale function in the current event.

Get merging scale in current event.

tnow = scalems(event, false);

Return merging scale value. Done

Reimplemented from MergingHooks.


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