ThePEG is hosted by Hepforge, IPPP Durham
ThePEG  2.1.0
ThePEG::EventHandler Class Reference

The EventHandler is the base class used to implement event handlers in ThePEG. More...

#include <EventHandler.h>

Inheritance diagram for ThePEG::EventHandler:

Public Types

enum  ConsistencyLevel {
  clNoCheck, clCollision, clStep, clPrintCollision,
  clPrintStep
}
 Enumerate the different levels of consistency checking. More...
 
typedef vector< HandlerGroupBase * > GroupVector
 A vector of HandlerGroups. More...
 
- Public Types inherited from ThePEG::InterfacedBase
enum  InitState { initializing = -1, uninitialized = 0, initialized = 1, runready = 2 }
 Enumeration reflecting the state of an InterfacedBase object. More...
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 The integer type used for counting.
 
- Public Types inherited from ThePEG::LastXCombInfo<>
typedef ThePEG::Ptr< XComb >::pointer XCPtr
 Alias for a reference counted pointer to XC . More...
 
typedef ThePEG::Ptr< XComb >::const_pointer cXCPtr
 Alias for a reference counted pointer to a const XC . More...
 
typedef ThePEG::Ptr< XComb >::transient_pointer tXCPtr
 Alias for a transient pointer to XC . More...
 
typedef ThePEG::Ptr< XComb >::transient_const_pointer tcXCPtr
 Alias for a transient pointer to a const XC . More...
 

Public Member Functions

Standard constructors and destructors.
 EventHandler (bool warnincomplete=true)
 Default constructor.
 
 EventHandler (const EventHandler &)
 Copy-constructor.
 
virtual ~EventHandler ()
 Destructor.
 
Main functions, some of which may be overridden by subclasses.
virtual void initialize ()
 Initialize this event handler and all related objects needed to generate events.
 
virtual EventPtr generateEvent ()
 Generate an event. More...
 
tEventPtr generateEvent (tEventPtr e)
 Generate an Event, where the initial state is supplied from the outside. More...
 
tEventPtr generateEvent (tStepPtr s)
 Generate an Event, where the initial state is supplied as a single step from the outside. More...
 
virtual EventPtr continueEvent ()
 Continue generating an event if the generation has been stopped before finishing.
 
tCollPtr continueCollision ()
 Continue the generation of a Collision. More...
 
void clearEvent ()
 Clear all step handlers, making the handler ready for a new event.
 
virtual void select (tXCombPtr newXComb)
 Change the XComb object.
 
virtual bool empty () const
 Returns true if there are no step handlers left to apply to the current event;.
 
virtual void statistics (ostream &) const
 Write out accumulated statistics about intergrated cross sections and stuff.
 
virtual CrossSection histogramScale () const
 Histogram scale. More...
 
virtual CrossSection integratedXSec () const
 The total integrated cross section of the processes generated in this run. More...
 
virtual CrossSection integratedXSecErr () const
 The estimated error in the total integrated cross section of the processes generated in this run. More...
 
Simple access functions.
long maxLoop () const
 Return the maximum number attemts allowed to select a sub-process for each event.
 
const cPDPairincoming () const
 The pair of incoming particle types. More...
 
const LuminosityFunctionlumiFn () const
 Access the luminosity function.
 
tcLumiFnPtr lumiFnPtr () const
 Access the luminosity function.
 
tLumiFnPtr lumiFnPtr ()
 Access to the luminosity function.
 
tCutsPtr cuts () const
 The kinematical cuts to used by subclasses which do not provide their own.
 
tPExtrPtr partonExtractor () const
 A PartonExtractor object to be used by sub classes which do not provide their own.
 
tCascHdlPtr cascadeHandler () const
 Return a pointer (possibly null) to the assigned main CascadeHandler.
 
tCascHdlPtr CKKWHandler () const
 Return a pointer (possibly null) to the assigned main CascadeHandler to be used as CKKW-reweighter.
 
tEventPtr currentEvent () const
 Gget current event.
 
tCollPtr currentCollision () const
 Get current collision.
 
tStepPtr currentStep () const
 Get current step.
 
bool weighted () const
 Return true if this event handler should produce weightes events.
 
int statLevel () const
 The level of statistics. More...
 
ConsistencyLevel consistencyLevel () const
 Determines how often the event handler should check for charge and energy-momentum conservation.
 
double consistencyEpsilon () const
 The maximum fraction of the total invariant mass of a collision that any of the components of the summed momentum is allowed to change during the generation.
 
Internal functions used by main functions and possibly

from the outside.

void performStep (tStepHdlPtr handler, tHintPtr hint)
 Perform a given step using a handler and a hint.
 
void addStep (Group::Level, Group::Handler, tStepHdlPtr=tStepHdlPtr(), tHintPtr=tHintPtr())
 In the curresnt list of step handlers to go through, add another step handler and/or hint.
 
tStepPtr newStep (tcStepHdlPtr sh)
 Create a new step and make it current. More...
 
void popStep ()
 Remove the last step.
 
virtual void initGroups ()
 Initialize the groups of step handlers.
 
void currentEvent (tEventPtr e)
 Set current event.
 
void currentCollision (tCollPtr c)
 Set current collision.
 
void currentStep (tStepPtr s)
 Set current step.
 
tStepHdlPtr currentStepHandler () const
 Get current StepHandler.
 
void currentStepHandler (tStepHdlPtr sh)
 Set current StepHandler.
 
void throwCurrent ()
 Throw away the current event/collision.
 
virtual void clean ()
 Throw away the last generated event before generating a new one.
 
virtual void checkConsistency () const
 Check that the charge and energy-momentum in the last step of the current collision is consistent with the incoming particles. More...
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom >
double rnd () const
 Return a simple flat random number in the range ]0,1[.
 
double rnd (double xu) const
 Return a simple flat random number in the range ]0,xu[.
 
double rnd (double xl, double xu) const
 Return a simple flat random number in the range ]xl,xu[.
 
bool rndbool () const
 Return true with 50% probability.
 
bool rndbool (double p) const
 Return a true with probability p.
 
bool rndbool (double p1, double p2) const
 Return a true with probability p1/(p1+p2).
 
int rndsign (double p1, double p2, double p3) const
 Return -1, 0, or 1 with relative probabilities p1, p2, p3.
 
int rnd2 (double p0, double p1) const
 Return an integer $i$ with probability p $i$/(p0+p1).
 
int rnd3 (double p0, double p1, double p2) const
 Return an integer $i$ with probability p $i$/(p0+p1+p2).
 
int rnd4 (double p0, double p1, double p2, double p3) const
 Return an integer/ $i$ with probability p $i$(p0+p1+p2+p3).
 
long irnd (long xu=2) const
 Return a simple flat random integrer number in the range [0,xu[.
 
long irnd (long xl, long xu) const
 Return a simple flat random integrer number in the range [xl,xu[.
 
const StandardModelBaseSM () const
 Return a reference to the object containing the standard model parameters for this run.
 
tSMPtr standardModel () const
 Return a pointer to the object containing the standard model parameters for this run.
 
virtual ~HandlerBaseT ()
 Destructor.
 
- Public Member Functions inherited from ThePEG::Interfaced
virtual ~Interfaced ()
 Empty virtual destructor.
 
virtual bool defaultInit ()
 Functions which are to be used during the actual event generation, after the setup is complete. More...
 
PPtr getParticle (PID) const
 Create a new Particle instance given a id number.
 
PDPtr getParticleData (PID) const
 Return a pointer to the ParticleData object corresponding to the given id number.
 
bool used () const
 Returns true if this object has actally been used.
 
void useMe () const
 Should be called to indicate that this object has actually been used.
 
tEGPtr generator () const
 Return a pointer to the EventGenerator controlling the run. More...
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::InterfacedBase
virtual ~InterfacedBase ()
 The virtual (empty) destructor;.
 
string fullName () const
 Returns the full name of this object including its path, e.g. More...
 
string name () const
 Returns the name of this object, without the path.
 
string path () const
 Returns the path to this object including the trailing '/'. More...
 
string comment () const
 Returns a comment assigned to this object.
 
void setup (istream &is)
 Read setup info from a standard istream is. More...
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr. More...
 
void update ()
 Calls the doupdate() function with recursion prevention.
 
void init ()
 Calls the doinit() function with recursion prevention.
 
virtual bool preInitialize () const
 Return true if this object needs to be initialized before all other objects (except those for which this function also returns true). More...
 
void initrun ()
 Calls the doinitrun() function with recursion prevention.
 
void finish ()
 Calls the dofinish() function with recursion prevention.
 
void touch ()
 This function should be called every time something in this object has changed in a way that a sanity check with update() is needed.
 
void reset ()
 Set the state of this object to uninitialized.
 
void clear ()
 Calls reset() and unTouch().
 
InitState state () const
 Return the state of initialization of this object.
 
bool locked () const
 Return true if the BaseRepository is not allowed to change the state of this object.
 
bool touched () const
 Return true if the state of this object has been changed since the last call to update().
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::Base
virtual ~Base ()
 The virtual destructor.
 
void debug () const
 Print out debugging information for this object on std::cerr. More...
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 Return the reference count.
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 Constructor with name.
 
const string & name () const
 Return name.
 
bool operator== (const Named &other) const
 Test for equality.
 
bool operator< (const Named &other) const
 Lexicographical comparison.
 
- Public Member Functions inherited from ThePEG::LastXCombInfo<>
const XComblastXComb () const
 Return a reference to the last selected XComb.
 
tXCPtr lastXCombPtr () const
 Return a pointer to the last selected XComb.
 
const XComblastHeadXComb () const
 If the last selected XComb object belongs to a group of XComb's return a reference to the head XComb object for this group.
 
tXCPtr lastHeadXCombPtr () const
 If the last selected XComb object belongs to a group of XComb's return a pointer to the head XComb object for this group.
 
const EventHandlerlastEventHandler () const
 Return a reference to the currently used EventHandler.
 
tPExtrPtr lastExtractor () const
 A pointer to the currently used parton extractor.
 
PDFT pdf (tcPPtr parton) const
 Return the parton density used to extract the given parton. More...
 
const CutslastCuts () const
 A reference to the currently used kinematical cuts.
 
tCutsPtr lastCutsPtr () const
 A pointer to the currently used kinematical cuts.
 
const PPairlastParticles () const
 Return the pair of incoming parton instances.
 
Energy2 lastS () const
 The last generated total energy squared of the incoming particles.
 
const PPairlastPartons () const
 Return the pair of incoming parton instances.
 
Energy2 lastSHat () const
 The last used interval in total parton-parton energy squared.
 
double lastTau () const
 Return lastSHat()/lastS().
 
double lastY () const
 The generated rapidity of the hard scattering sub-system.
 
double lastP1 () const
 Log of one over the momentum fraction of the first incoming particle w.r.t. More...
 
double lastP2 () const
 Log of one over the momentum fraction of the second incoming particle w.r.t. More...
 
double lastL1 () const
 Log of one over the first incoming parton momentum fraction w.r.t. More...
 
double lastL2 () const
 Log of one over the second incoming parton momentum fraction w.r.t. More...
 
double lastX1 () const
 The first incoming parton momentum fraction w.r.t. More...
 
double lastX2 () const
 The second incoming parton momentum fraction w.r.t. More...
 
double lastE1 () const
 Return 1-lastX1() to highest possible precision for x $\rightarrow$ 1.
 
double lastE2 () const
 Return 1-lastX2() to highest possible precision for x $\rightarrow$ 1.
 
double lastFL1L2 () const
 The product of the parton density functions at the last generated phase-space point.
 
Energy2 lastScale () const
 The chosen scale of the hard scattering.
 
double lastAlphaS () const
 Get the $\alpha_S$ used in the hard scattering. More...
 
double lastAlphaEM () const
 Get the $\alpha_{EM}$ used in the hard scattering. More...
 
const vector< Lorentz5Momentum > & meMomenta () const
 Return the momenta of the incoming and outgoing partons to be used by the matrix element object, in the order specified by the TreeDiagram objects given by the matrix element.
 
double lastME2 () const
 Return the matrix element squared as calculated for the last phase space point. More...
 
double lastPreweight () const
 Return the last preweight factor.
 
double jacobian () const
 Get the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
 
CrossSection lastMECrossSection () const
 Return the partonic cross section as calculated for the last phase space point. More...
 
double lastMEPDFWeight () const
 Return the PDF weight as calculated for the last phase space point, if the matrix element does supply PDF weights. More...
 
double lastMECouplings () const
 Return the coupling weight as calculated for the last phase space point.
 
tSubProPtr subProcess () const
 Return the SubProcess object corresponding to the last generated sub-process.
 
const cPDVectormePartonData () const
 Return the incoming and outgoing parton types to be used by the matrix element object, in the order specified by the TreeDiagram objects given by the matrix element.
 

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interface.
 
- Static Public Member Functions inherited from ThePEG::HandlerBase
static void Init ()
 Standard Init function used to initialize the interface.
 
- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 Standard Init function.
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
static void Init ()
 Standard Init function.
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 The standard Init function used to initialize the interfaces. More...
 

Protected Member Functions

LuminosityFunctionlumiFn ()
 Access to the luminosity function.
 
void setupGroups ()
 Setup the step handler groups.
 
GroupVectorgroups ()
 Access the step handler groups.
 
const GroupVectorgroups () const
 Access the step handler groups.
 
void lumiFn (LumiFnPtr)
 Set the luminosity function.
 
Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
Standard Interfaced functions.
virtual void dofinish ()
 Finalize this object. More...
 
virtual void rebind (const TranslationMap &trans)
 Rebind pointer to other Interfaced objects. More...
 
virtual IVector getReferences ()
 Return a vector of all pointers to Interfaced objects used in this object. More...
 
- Protected Member Functions inherited from ThePEG::Interfaced
void reporeg (IBPtr object, string name) const
 Register the given object in the Repository with the given name in a subdirectory with the same name as this object. More...
 
template<typename PtrT >
bool setDefaultReference (PtrT &ptr, string classname, string objectname)
 If the pointer, ptr, to an object is not set, create an object of class classname and register it with the Repository with the given objectname in a sib-directory with the same name as this object.
 
 Interfaced ()
 Protected default constructor.
 
 Interfaced (const string &newName)
 Protected constructor taking a name as argument.
 
 Interfaced (const Interfaced &i)
 Protected copy-constructor.
 
void setGenerator (tEGPtr generator)
 Protected function to reset the generator pointer, required for automatic decayer generation in Herwig++ BSM models.
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
 InterfacedBase ()
 Protected default constructor.
 
 InterfacedBase (string newName)
 Protected constructor with the name given as argument.
 
 InterfacedBase (const InterfacedBase &i)
 Protected copy-constructor.
 
virtual void readSetup (istream &is)
 Read setup info from a standard istream is. More...
 
virtual void doupdate ()
 Check sanity of the object during the setup phase. More...
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk. More...
 
virtual void doinitrun ()
 Initialize this object. More...
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 Assignment.
 
const string & name (const string &newName)
 Set new name.
 

Protected Attributes

HandlerGroup< SubProcessHandleroptSubprocessGroup
 Utility object to facilitate default selection of step handlers.
 
HandlerGroup< CascadeHandleroptCascadeGroup
 Utility object to facilitate default selection of step handlers.
 
HandlerGroup< MultipleInteractionHandleroptMultiGroup
 Utility object to facilitate default selection of step handlers.
 
HandlerGroup< HadronizationHandleroptHadronizationGroup
 Utility object to facilitate default selection of step handlers.
 
HandlerGroup< DecayHandleroptDecayGroup
 Utility object to facilitate default selection of step handlers.
 
GroupVector optGroups
 Utility object to facilitate default selection of step handlers.
 
bool warnIncomplete
 Emit warning that this EventHandler is incomplete.
 
cPDPair theIncoming
 The pair of incoming particle types. More...
 
- Protected Attributes inherited from ThePEG::LastXCombInfo<>
XCPtr theLastXComb
 The pointer to the last selected XComb.
 

Private Member Functions

void interfaceSetPostSubProcessHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPostSubProcessHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePostSubProcessHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPostSubProcessHandler () const
 Utility function for the interface. More...
 
void interfaceSetPreCascadeHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPreCascadeHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePreCascadeHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPreCascadeHandler () const
 Utility function for the interface. More...
 
void interfaceSetCascadeHandler (CascHdlPtr)
 Utility function for the interface. More...
 
CascHdlPtr interfaceGetCascadeHandler () const
 Utility function for the interface. More...
 
void interfaceSetPostCascadeHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPostCascadeHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePostCascadeHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPostCascadeHandler () const
 Utility function for the interface. More...
 
void interfaceSetPreMultipleInteractionHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPreMultipleInteractionHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePreMultipleInteractionHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPreMultipleInteractionHandler () const
 Utility function for the interface. More...
 
void interfaceSetMultipleInteractionHandler (MIHdlPtr)
 Utility function for the interface. More...
 
MIHdlPtr interfaceGetMultipleInteractionHandler () const
 Utility function for the interface. More...
 
void interfaceSetPostMultipleInteractionHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPostMultipleInteractionHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePostMultipleInteractionHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPostMultipleInteractionHandler () const
 Utility function for the interface. More...
 
void interfaceSetPreHadronizationHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPreHadronizationHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePreHadronizationHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPreHadronizationHandler () const
 Utility function for the interface. More...
 
void interfaceSetHadronizationHandler (HadrHdlPtr)
 Utility function for the interface. More...
 
HadrHdlPtr interfaceGetHadronizationHandler () const
 Utility function for the interface. More...
 
void interfaceSetPostHadronizationHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPostHadronizationHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePostHadronizationHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPostHadronizationHandler () const
 Utility function for the interface. More...
 
void interfaceSetPreDecayHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPreDecayHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePreDecayHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPreDecayHandler () const
 Utility function for the interface. More...
 
void interfaceSetDecayHandler (DecayHdlPtr)
 Utility function for the interface. More...
 
DecayHdlPtr interfaceGetDecayHandler () const
 Utility function for the interface. More...
 
void interfaceSetPostDecayHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceInsertPostDecayHandler (StepHdlPtr, int)
 Utility function for the interface. More...
 
void interfaceErasePostDecayHandler (int)
 Utility function for the interface. More...
 
vector< StepHdlPtrinterfaceGetPostDecayHandler () const
 Utility function for the interface. More...
 
EventHandleroperator= (const EventHandler &)
 Private and non-existent assignment operator.
 

Private Attributes

long theMaxLoop
 The maximum number of attempts to select a sub-process allowed per event.
 
bool weightedEvents
 True if this event handler should produce weightes events.
 
int theStatLevel
 Controlls the amount of statistics written out after each run to the EventGenerators .out file.
 
ConsistencyLevel theConsistencyLevel
 Determines how often the event handler should check for charge and energy-momentum conservation.
 
double theConsistencyEpsilon
 The maximum fraction of the total invariant mass of a collision that any of the components of the summed momentum is allowed to change during the generation.
 
LumiFnPtr theLumiFn
 Pointer to a luminosity function tobe used by subclasses.
 
CutsPtr theCuts
 The kinematical cuts to used by subclasses which do not provide their own.
 
PExtrPtr thePartonExtractor
 A PartonExtractor object to be used by sub classes which do not provide their own.
 
HandlerGroup< SubProcessHandlertheSubprocessGroup
 The SubProcessHandler group.
 
HandlerGroup< CascadeHandlertheCascadeGroup
 The CascadeHandler group.
 
HandlerGroup< MultipleInteractionHandlertheMultiGroup
 The MultipleInteractionHandler group.
 
HandlerGroup< HadronizationHandlertheHadronizationGroup
 The HadronizationHandler group.
 
HandlerGroup< DecayHandlertheDecayGroup
 The DecayHandler group.
 
GroupVector theGroups
 The step handler groups.
 
EventPtr theCurrentEvent
 The current Event.
 
CollPtr theCurrentCollision
 The current Collision.
 
StepPtr theCurrentStep
 The current Step.
 
StepHdlPtr theCurrentStepHandler
 The current StepHandler.
 

Static Private Attributes

static ClassDescription< EventHandlerinitEventHandler
 Describe a concrete class with persistent data. More...
 

Additional Inherited Members

- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 The unique ID. More...
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 Register an Interfaced object with the Repository.
 
static void registerRepository (IBPtr, string newName)
 Register an Interfaced object with the Repository, giving it a name.
 

Detailed Description

The EventHandler is the base class used to implement event handlers in ThePEG.

Objects of this class is assigned to an EventGenerator object which supervises a run. This base class is not able to generate complete events, although it does have a virtual generateEvent(). If the EventGenerator to which an EventGenerator is assinged is asked to generate a full event, it will call the generateEvent() function which will write an error message and abort the run.

Objects of this base class can, however, be used to administer the evolution of a partially generated event supplied from the outside. To specify this event evolution the EventHandler maintains five groups of so-called StepHandlers implemented as HandlerGroups. Each group have a main step handler: SubProcessHandler, CascadeHandler, MultipleInteractionHandler, HadronizationHandler and DecayHandler respectively, whereof the first group only uses the post-handler part of the group.

The EventHandler class inherits from the LastXCombInfo class to have easy interface to the information in the last selected XComb which carries information about the hard sub-process in the event.

If a sub-class implements the generation of sub-processes and thus becomes a full event handler it should implement the generateEvent() function appropriately. It should also set the flag warnIncomplete to false, to avoid warnings when initialized as the main EventHandler of an Eventgenerator.

See also
The interfaces defined for EventHandler.
Collision
StepHandler
HandlerGroup
SubProcessHandler
CascadeHandler
MultipleInteractionHandler
HadronizationHandler
DecayHandler

Definition at line 63 of file EventHandler.h.

Member Typedef Documentation

◆ GroupVector

A vector of HandlerGroups.

Definition at line 77 of file EventHandler.h.

Member Enumeration Documentation

◆ ConsistencyLevel

Enumerate the different levels of consistency checking.

Enumerator
clNoCheck 

Do not perform consistency checks.

clCollision 

Check every Collision.

clStep 

Check every Step.

clPrintCollision 

Check every Collision.

Print event if inconsistent.

clPrintStep 

Check every Step.

Print event if inconsistent.

Definition at line 68 of file EventHandler.h.

Member Function Documentation

◆ checkConsistency()

virtual void ThePEG::EventHandler::checkConsistency ( ) const
virtual

Check that the charge and energy-momentum in the last step of the current collision is consistent with the incoming particles.

If not, a warning will be generated.

Referenced by currentStepHandler().

◆ clone()

virtual IBPtr ThePEG::EventHandler::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.

Referenced by currentStepHandler().

◆ continueCollision()

tCollPtr ThePEG::EventHandler::continueCollision ( )

Continue the generation of a Collision.

Used if the generation was previously interrupted.

◆ dofinish()

virtual void ThePEG::EventHandler::dofinish ( )
inlineprotectedvirtual

Finalize this object.

Called in the run phase just after a run has ended. Used eg. to write out statistics.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.

Definition at line 416 of file EventHandler.h.

References clean(), ThePEG::InterfacedBase::dofinish(), getReferences(), and rebind().

◆ fullclone()

virtual IBPtr ThePEG::EventHandler::fullclone ( ) const
protectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.

Referenced by currentStepHandler().

◆ generateEvent() [1/3]

virtual EventPtr ThePEG::EventHandler::generateEvent ( )
virtual

Generate an event.

This base class is not capable of generating complete events and calling this function will result in an exception. Sub-classes which are capable of generating complete events from scratch must override this function.

Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.

◆ generateEvent() [2/3]

tEventPtr ThePEG::EventHandler::generateEvent ( tEventPtr  e)

Generate an Event, where the initial state is supplied from the outside.

Returns
a pointer to the generated Event.

◆ generateEvent() [3/3]

tEventPtr ThePEG::EventHandler::generateEvent ( tStepPtr  s)

Generate an Event, where the initial state is supplied as a single step from the outside.

Returns
a pointer to the generated Event.

◆ getReferences()

virtual IVector ThePEG::EventHandler::getReferences ( )
protectedvirtual

Return a vector of all pointers to Interfaced objects used in this object.

Returns
a vector of pointers.

Reimplemented from ThePEG::InterfacedBase.

Referenced by dofinish().

◆ histogramScale()

virtual CrossSection ThePEG::EventHandler::histogramScale ( ) const
virtual

Histogram scale.

A histogram bin which has been filled with the weights associated with the Event objects should be scaled by this factor to give the correct cross section. This version of the function will produce an error message. It is up to a sub-class able to generate full events to return the correct value.

Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.

◆ incoming()

const cPDPair& ThePEG::EventHandler::incoming ( ) const
inline

The pair of incoming particle types.

These are null if not set by a subclass.

Definition at line 206 of file EventHandler.h.

References theIncoming.

◆ integratedXSec()

virtual CrossSection ThePEG::EventHandler::integratedXSec ( ) const
virtual

The total integrated cross section of the processes generated in this run.

This version of the function will produce an error message. It is up to a sub-class able to generate full events to return the correct value.

Returns
0 if no integrated cross section could be estimated.

Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.

◆ integratedXSecErr()

virtual CrossSection ThePEG::EventHandler::integratedXSecErr ( ) const
virtual

The estimated error in the total integrated cross section of the processes generated in this run.

This version of the function will produce an error message. It is up to a sub-class able to generate full events to return the correct value.

Returns
0 if no integrated cross section error could be estimated.

Reimplemented in ThePEG::LesHouchesEventHandler, and ThePEG::StandardEventHandler.

◆ interfaceErasePostCascadeHandler()

void ThePEG::EventHandler::interfaceErasePostCascadeHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePostDecayHandler()

void ThePEG::EventHandler::interfaceErasePostDecayHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePostHadronizationHandler()

void ThePEG::EventHandler::interfaceErasePostHadronizationHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePostMultipleInteractionHandler()

void ThePEG::EventHandler::interfaceErasePostMultipleInteractionHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePostSubProcessHandler()

void ThePEG::EventHandler::interfaceErasePostSubProcessHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePreCascadeHandler()

void ThePEG::EventHandler::interfaceErasePreCascadeHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePreDecayHandler()

void ThePEG::EventHandler::interfaceErasePreDecayHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePreHadronizationHandler()

void ThePEG::EventHandler::interfaceErasePreHadronizationHandler ( int  )
private

Utility function for the interface.

◆ interfaceErasePreMultipleInteractionHandler()

void ThePEG::EventHandler::interfaceErasePreMultipleInteractionHandler ( int  )
private

Utility function for the interface.

◆ interfaceGetCascadeHandler()

CascHdlPtr ThePEG::EventHandler::interfaceGetCascadeHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetDecayHandler()

DecayHdlPtr ThePEG::EventHandler::interfaceGetDecayHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetHadronizationHandler()

HadrHdlPtr ThePEG::EventHandler::interfaceGetHadronizationHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetMultipleInteractionHandler()

MIHdlPtr ThePEG::EventHandler::interfaceGetMultipleInteractionHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPostCascadeHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPostCascadeHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPostDecayHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPostDecayHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPostHadronizationHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPostHadronizationHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPostMultipleInteractionHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPostMultipleInteractionHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPostSubProcessHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPostSubProcessHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPreCascadeHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPreCascadeHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPreDecayHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPreDecayHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPreHadronizationHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPreHadronizationHandler ( ) const
private

Utility function for the interface.

◆ interfaceGetPreMultipleInteractionHandler()

vector<StepHdlPtr> ThePEG::EventHandler::interfaceGetPreMultipleInteractionHandler ( ) const
private

Utility function for the interface.

◆ interfaceInsertPostCascadeHandler()

void ThePEG::EventHandler::interfaceInsertPostCascadeHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPostDecayHandler()

void ThePEG::EventHandler::interfaceInsertPostDecayHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPostHadronizationHandler()

void ThePEG::EventHandler::interfaceInsertPostHadronizationHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPostMultipleInteractionHandler()

void ThePEG::EventHandler::interfaceInsertPostMultipleInteractionHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPostSubProcessHandler()

void ThePEG::EventHandler::interfaceInsertPostSubProcessHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPreCascadeHandler()

void ThePEG::EventHandler::interfaceInsertPreCascadeHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPreDecayHandler()

void ThePEG::EventHandler::interfaceInsertPreDecayHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPreHadronizationHandler()

void ThePEG::EventHandler::interfaceInsertPreHadronizationHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceInsertPreMultipleInteractionHandler()

void ThePEG::EventHandler::interfaceInsertPreMultipleInteractionHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetCascadeHandler()

void ThePEG::EventHandler::interfaceSetCascadeHandler ( CascHdlPtr  )
private

Utility function for the interface.

◆ interfaceSetDecayHandler()

void ThePEG::EventHandler::interfaceSetDecayHandler ( DecayHdlPtr  )
private

Utility function for the interface.

◆ interfaceSetHadronizationHandler()

void ThePEG::EventHandler::interfaceSetHadronizationHandler ( HadrHdlPtr  )
private

Utility function for the interface.

◆ interfaceSetMultipleInteractionHandler()

void ThePEG::EventHandler::interfaceSetMultipleInteractionHandler ( MIHdlPtr  )
private

Utility function for the interface.

◆ interfaceSetPostCascadeHandler()

void ThePEG::EventHandler::interfaceSetPostCascadeHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPostDecayHandler()

void ThePEG::EventHandler::interfaceSetPostDecayHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPostHadronizationHandler()

void ThePEG::EventHandler::interfaceSetPostHadronizationHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPostMultipleInteractionHandler()

void ThePEG::EventHandler::interfaceSetPostMultipleInteractionHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPostSubProcessHandler()

void ThePEG::EventHandler::interfaceSetPostSubProcessHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPreCascadeHandler()

void ThePEG::EventHandler::interfaceSetPreCascadeHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPreDecayHandler()

void ThePEG::EventHandler::interfaceSetPreDecayHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPreHadronizationHandler()

void ThePEG::EventHandler::interfaceSetPreHadronizationHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ interfaceSetPreMultipleInteractionHandler()

void ThePEG::EventHandler::interfaceSetPreMultipleInteractionHandler ( StepHdlPtr  ,
int   
)
private

Utility function for the interface.

◆ newStep()

tStepPtr ThePEG::EventHandler::newStep ( tcStepHdlPtr  sh)
inline

Create a new step and make it current.

A StepHandler should be supplied which will be set as the handler for the created Step.

Definition at line 308 of file EventHandler.h.

References currentCollision(), and currentStep().

◆ persistentInput()

void ThePEG::EventHandler::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

Referenced by currentStepHandler().

◆ persistentOutput()

void ThePEG::EventHandler::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

Referenced by currentStepHandler().

◆ rebind()

virtual void ThePEG::EventHandler::rebind ( const TranslationMap trans)
protectedvirtual

Rebind pointer to other Interfaced objects.

Called in the setup phase after all objects used in an EventGenerator has been cloned so that the pointers will refer to the cloned objects afterwards.

Parameters
transa TranslationMap relating the original objects to their respective clones.
Exceptions
RebindExceptionif no cloned object was found for a given pointer.

Reimplemented from ThePEG::InterfacedBase.

Referenced by dofinish().

◆ statLevel()

int ThePEG::EventHandler::statLevel ( ) const
inline

The level of statistics.

Controlls the amount of statistics written out after each run to the EventGenerators .out file.

Definition at line 271 of file EventHandler.h.

References theStatLevel.

Member Data Documentation

◆ initEventHandler

ClassDescription< EventHandler > ThePEG::EventHandler::initEventHandler
staticprivate

Describe a concrete class with persistent data.

Definition at line 666 of file EventHandler.h.

◆ theIncoming

cPDPair ThePEG::EventHandler::theIncoming
protected

The pair of incoming particle types.

Should be set by a subclass which implements a complete EventHandler.

Definition at line 615 of file EventHandler.h.

Referenced by incoming().


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