ThePEG
1.8.0
|
The EventHandler is the base class used to implement event handlers in ThePEG. More...
#include <EventHandler.h>
Public Types | |
enum | ConsistencyLevel { clNoCheck, clCollision, clStep, clPrintCollision, clPrintStep } |
Enumerate the different levels of consistency checking. More... | |
typedef vector < HandlerGroupBase * > | GroupVector |
A vector of HandlerGroup s. | |
![]() | |
typedef ThePEG::Ptr< XComb > ::pointer | XCPtr |
Alias for a reference counted pointer to XC . | |
typedef ThePEG::Ptr< XComb > ::const_pointer | cXCPtr |
Alias for a reference counted pointer to a const XC . | |
typedef ThePEG::Ptr< XComb > ::transient_pointer | tXCPtr |
Alias for a transient pointer to XC . | |
typedef ThePEG::Ptr< XComb > ::transient_const_pointer | tcXCPtr |
Alias for a transient pointer to a const XC . |
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. | |
tEventPtr | generateEvent (tEventPtr e) |
Generate an Event, where the initial state is supplied from the outside. | |
tEventPtr | generateEvent (tStepPtr s) |
Generate an Event, where the initial state is supplied as a single step from the outside. | |
virtual EventPtr | continueEvent () |
Continue generating an event if the generation has been stopped before finishing. | |
tCollPtr | continueCollision () |
Continue the generation of a Collision. | |
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. | |
virtual CrossSection | integratedXSec () const |
The total integrated cross section of the processes generated in this run. | |
virtual CrossSection | integratedXSecErr () const |
The estimated error in the total integrated cross section of the processes generated in this run. | |
Simple access functions. | |
long | maxLoop () const |
Return the maximum number attemts allowed to select a sub-process for each event. | |
const cPDPair & | incoming () const |
The pair of incoming particle types. | |
const LuminosityFunction & | lumiFn () 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 | 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. | |
int | statLevel () const |
The level of statistics. | |
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. | |
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. | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
![]() | |
const XComb & | lastXComb () const |
Return a reference to the last selected XComb. | |
tXCPtr | lastXCombPtr () const |
Return a pointer to the last selected XComb. | |
const XComb & | lastHeadXComb () 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 EventHandler & | lastEventHandler () 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. | |
const Cuts & | lastCuts () const |
A reference to the currently used kinematical cuts. | |
tCutsPtr | lastCutsPtr () const |
A pointer to the currently used kinematical cuts. | |
const PPair & | lastParticles () const |
Return the pair of incoming parton instances. | |
Energy2 | lastS () const |
The last generated total energy squared of the incoming particles. | |
const PPair & | lastPartons () 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. | |
double | lastP2 () const |
Log of one over the momentum fraction of the second incoming particle w.r.t. | |
double | lastL1 () const |
Log of one over the first incoming parton momentum fraction w.r.t. | |
double | lastL2 () const |
Log of one over the second incoming parton momentum fraction w.r.t. | |
double | lastX1 () const |
The first incoming parton momentum fraction w.r.t. | |
double | lastX2 () const |
The second incoming parton momentum fraction w.r.t. | |
double | lastE1 () const |
Return 1-lastX1() to highest possible precision for x ![]() | |
double | lastE2 () const |
Return 1-lastX2() to highest possible precision for x ![]() | |
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 ![]() | |
double | lastAlphaEM () const |
Get the ![]() | |
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. | |
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. | |
double | lastMEPDFWeight () const |
Return the PDF weight as calculated for the last phase space point, if the matrix element does supply PDF weights. | |
tSubProPtr | subProcess () const |
Return the SubProcess object corresponding to the last generated sub-process. | |
const cPDVector & | mePartonData () 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. |
Protected Member Functions | |
LuminosityFunction & | lumiFn () |
Access to the luminosity function. | |
void | setupGroups () |
Setup the step handler groups. | |
GroupVector & | groups () |
Access the step handler groups. | |
const GroupVector & | groups () 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. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
Standard Interfaced functions. | |
virtual void | dofinish () |
Finalize this object. | |
virtual void | rebind (const TranslationMap &trans) |
Rebind pointer to other Interfaced objects. | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. |
Protected Attributes | |
HandlerGroup< SubProcessHandler > | optSubprocessGroup |
Utility object to facilitate default selection of step handlers. | |
HandlerGroup< CascadeHandler > | optCascadeGroup |
Utility object to facilitate default selection of step handlers. | |
HandlerGroup < MultipleInteractionHandler > | optMultiGroup |
Utility object to facilitate default selection of step handlers. | |
HandlerGroup < HadronizationHandler > | optHadronizationGroup |
Utility object to facilitate default selection of step handlers. | |
HandlerGroup< DecayHandler > | optDecayGroup |
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. | |
![]() | |
XCPtr | theLastXComb |
The pointer to the last selected XComb. |
Private Member Functions | |
void | interfaceSetPostSubProcessHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPostSubProcessHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePostSubProcessHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPostSubProcessHandler () const |
Utility function for the interface. | |
void | interfaceSetPreCascadeHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPreCascadeHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePreCascadeHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPreCascadeHandler () const |
Utility function for the interface. | |
void | interfaceSetCascadeHandler (CascHdlPtr) |
Utility function for the interface. | |
CascHdlPtr | interfaceGetCascadeHandler () const |
Utility function for the interface. | |
void | interfaceSetPostCascadeHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPostCascadeHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePostCascadeHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPostCascadeHandler () const |
Utility function for the interface. | |
void | interfaceSetPreMultipleInteractionHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPreMultipleInteractionHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePreMultipleInteractionHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPreMultipleInteractionHandler () const |
Utility function for the interface. | |
void | interfaceSetMultipleInteractionHandler (MIHdlPtr) |
Utility function for the interface. | |
MIHdlPtr | interfaceGetMultipleInteractionHandler () const |
Utility function for the interface. | |
void | interfaceSetPostMultipleInteractionHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPostMultipleInteractionHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePostMultipleInteractionHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPostMultipleInteractionHandler () const |
Utility function for the interface. | |
void | interfaceSetPreHadronizationHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPreHadronizationHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePreHadronizationHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPreHadronizationHandler () const |
Utility function for the interface. | |
void | interfaceSetHadronizationHandler (HadrHdlPtr) |
Utility function for the interface. | |
HadrHdlPtr | interfaceGetHadronizationHandler () const |
Utility function for the interface. | |
void | interfaceSetPostHadronizationHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPostHadronizationHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePostHadronizationHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPostHadronizationHandler () const |
Utility function for the interface. | |
void | interfaceSetPreDecayHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPreDecayHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePreDecayHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPreDecayHandler () const |
Utility function for the interface. | |
void | interfaceSetDecayHandler (DecayHdlPtr) |
Utility function for the interface. | |
DecayHdlPtr | interfaceGetDecayHandler () const |
Utility function for the interface. | |
void | interfaceSetPostDecayHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceInsertPostDecayHandler (StepHdlPtr, int) |
Utility function for the interface. | |
void | interfaceErasePostDecayHandler (int) |
Utility function for the interface. | |
vector< StepHdlPtr > | interfaceGetPostDecayHandler () const |
Utility function for the interface. | |
EventHandler & | operator= (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. | |
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< SubProcessHandler > | theSubprocessGroup |
The SubProcessHandler group. | |
HandlerGroup< CascadeHandler > | theCascadeGroup |
The CascadeHandler group. | |
HandlerGroup < MultipleInteractionHandler > | theMultiGroup |
The MultipleInteractionHandler group. | |
HandlerGroup < HadronizationHandler > | theHadronizationGroup |
The HadronizationHandler group. | |
HandlerGroup< DecayHandler > | theDecayGroup |
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 < EventHandler > | initEventHandler |
Describe a concrete class with persistent data. |
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.
Definition at line 63 of file EventHandler.h.
typedef vector<HandlerGroupBase *> ThePEG::EventHandler::GroupVector |
A vector of HandlerGroup
s.
Definition at line 77 of file EventHandler.h.
Enumerate the different levels of consistency checking.
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.
|
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.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.
tCollPtr ThePEG::EventHandler::continueCollision | ( | ) |
Continue the generation of a Collision.
Used if the generation was previously interrupted.
|
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 405 of file EventHandler.h.
References currentCollision(), currentEvent(), and currentStep().
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.
|
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.
|
protectedvirtual |
Return a vector of all pointers to Interfaced objects used in this object.
Reimplemented from ThePEG::InterfacedBase.
|
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::LesHouchesEventHandler, and ThePEG::StandardEventHandler.
|
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.
|
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.
Reimplemented in ThePEG::LesHouchesEventHandler, and ThePEG::StandardEventHandler.
|
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.
Reimplemented in ThePEG::LesHouchesEventHandler, and ThePEG::StandardEventHandler.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
private |
Utility function for the interface.
|
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 297 of file EventHandler.h.
References currentCollision(), and currentStep().
void ThePEG::EventHandler::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
Reimplemented from ThePEG::Interfaced.
Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.
void ThePEG::EventHandler::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
Reimplemented from ThePEG::Interfaced.
Reimplemented in ThePEG::StandardEventHandler, and ThePEG::LesHouchesEventHandler.
|
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.
trans | a TranslationMap relating the original objects to their respective clones. |
RebindException | if no cloned object was found for a given pointer. |
Reimplemented from ThePEG::InterfacedBase.
|
inline |
The level of statistics.
Controlls the amount of statistics written out after each run to the EventGenerator
s .out
file.
Definition at line 260 of file EventHandler.h.
References theStatLevel.
|
staticprivate |
Describe a concrete class with persistent data.
Definition at line 652 of file EventHandler.h.
|
protected |
The pair of incoming particle types.
Should be set by a subclass which implements a complete EventHandler.
Definition at line 601 of file EventHandler.h.
Referenced by incoming().