thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
ThePEG::CascadeHandler Class Referenceabstract

The CascadeHandler is the base class of all handlers implementing perturbative partonic cascade models. More...

#include <CascadeHandler.h>

Inheritance diagram for ThePEG::CascadeHandler:

Public Member Functions

Standard constructors and destructors.
virtual ~CascadeHandler ()
 The destructor.
 
Virtual functions required by the StepHandler class.
virtual void handle (EventHandler &eh, const tPVector &tagged, const Hint &hint)
 The main function called by the EventHandler class to perform a step.
 
virtual void cascade ()=0
 The main function to be overwritten by sub-classes.
 
virtual double reweightCKKW (int minMult, int maxMult)
 The CascadeHandler can be used inside the process generation to do so-called CKKW reweighting of the hard sub-process.
 
- Public Member Functions inherited from ThePEG::StepHandler
virtual ~StepHandler ()
 The destructor.
 
tEHPtr eventHandler () const
 Get a pointer to the EventHandler which made the last call to handle().
 
void eventHandler (tEHPtr)
 Set a pointer to the EventHandler which made the last call to handle().
 
tStepPtr newStep ()
 Return a pointer to a new step.
 
tStepPtr currentStep ()
 If a new step has been created, return it, otherwise return the current step from the eventHandler().
 
- Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom >
virtual ~HandlerBaseT ()
 Destructor.
 
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.
 
- 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.
 
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.
 
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.
 
- 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.
 
string name () const
 Returns the name of this object, without the path.
 
string path () const
 Returns the path to this object including the trailing '/'.
 
string comment () const
 Returns a comment assigned to this object.
 
void setup (istream &is)
 Read setup info from a standard istream is.
 
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).
 
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().
 
virtual IBPtr fullclone () const
 Return a full clone of this object possibly doing things to the clone to make it sane.
 
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.
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr.
 
- 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.
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr.
 
- 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.
 
 Named (const Named &)=default
 Explicit default copy-constructor (too avoid compiler warnings)
 
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< XC >
const XC & lastXComb () const
 Return a reference to the last selected XComb.
 
tXCPtr lastXCombPtr () const
 Return a pointer to the last selected XComb.
 
const XC & 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 EventHandlerlastEventHandler () const
 Return a reference to the currently used EventHandler.
 
tPExtrPtr lastExtractor () const
 A pointer to the currently used parton extractor.
 
template<typename PDFT >
PDFT pdf (tcPPtr parton) const
 Return the parton density used to extract the given parton.
 
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.
 
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 \(\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.
 
double lastAlphaEM () const
 Get the \(\alpha_{EM}\) used in the hard scattering.
 
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 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.
 
double lastMEPDFWeight () const
 Return the PDF weight as calculated for the last phase space point, if the matrix element does supply PDF weights.
 
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.
 

Access information stored by the handle() function.

const tPVectortheTagged
 Store the tagged argument given to handle().
 
const HinttheHint
 Store the Hint arguments given to handle().
 
pair< PDF, PDFthePDFs
 The pdfs used to extract the incoming partons.
 
static bool theDidRunCascade
 If there are multiple cascade calls, this flag tells if cascade was called before.
 
static AbstractNoPIOClassDescription< CascadeHandlerinitCascadeHandler
 The static object used to initialize the description of this class.
 
const tPVectortagged () const
 Return the vector of tagged particles which should be showered.
 
const Hinthint () const
 Return the int provided in the current call to handle().
 
const PDFfirstPDF () const
 Return references to the PDF used by the first incoming particle.
 
const PDFsecondPDF () const
 Return references to the PDF used by the first incoming particle.
 
const pair< PDF, PDF > & pdfs () const
 Return references to the currently used PDF's.
 
void resetPDFs (const pair< tcPDFPtr, tcPDFPtr > &pdfpair)
 Set alternative PDFBase objects to be used for cascade.
 
void resetPDFs (const pair< tcPDFPtr, tcPDFPtr > &pdfpair, PBPair ppair)
 Set alternative PDFBase objects to be used for cascade.
 
void setXComb (tXCombPtr xc)
 Set the XComb object with information about the sub-process generation.
 
virtual bool isReshuffling () const
 Return true, if this cascade handler will perform reshuffling from hard process masses.
 
bool didRunCascade () const
 For multiple cascade calls, this flag tells if cascade was called before.
 
static void setDidRunCascade (bool c)
 Set the flag to inform if prior cascades had been called.
 
static void Init ()
 Standard Init function used to initialize the interface.
 
CascadeHandleroperator= (const CascadeHandler &)=delete
 Private and non-existent assignment operator.
 

Additional Inherited Members

- 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< XC >
typedef ThePEG::Ptr< XC >::pointer XCPtr
 Alias for a reference counted pointer to XC .
 
typedef ThePEG::Ptr< XC >::const_pointer cXCPtr
 Alias for a reference counted pointer to a const XC .
 
typedef ThePEG::Ptr< XC >::transient_pointer tXCPtr
 Alias for a transient pointer to XC .
 
typedef ThePEG::Ptr< XC >::transient_const_pointer tcXCPtr
 Alias for a transient pointer to a const XC .
 
- Static Public Member Functions inherited from ThePEG::StepHandler
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.
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 The unique ID.
 
- Protected Member Functions inherited from ThePEG::StepHandler
void createNewStep ()
 Use the collision handler to create a new step.
 
- 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.
 
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
virtual void readSetup (istream &is)
 Read setup info from a standard istream is.
 
virtual void doupdate ()
 Check sanity of the object during the setup phase.
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk.
 
virtual void doinitrun ()
 Initialize this object.
 
virtual void dofinish ()
 Finalize this object.
 
virtual IVector getReferences ()
 Return a vector of all pointers to Interfaced objects used in this object.
 
virtual void rebind (const TranslationMap &)
 Rebind pointer to other Interfaced objects.
 
virtual IBPtr clone () const =0
 Return a simple clone of this object.
 
 InterfacedBase ()
 Protected default constructor.
 
 InterfacedBase (string newName)
 Protected constructor with the name given as argument.
 
 InterfacedBase (const InterfacedBase &i)
 Protected copy-constructor.
 
- 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.
 
- 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.
 
- Protected Attributes inherited from ThePEG::LastXCombInfo< XC >
XCPtr theLastXComb
 The pointer to the last selected XComb.
 

Detailed Description

The CascadeHandler is the base class of all handlers implementing perturbative partonic cascade models.

It is derived from the more general StepHandler class, and implements the handle() function to do some standard initialization before calling the main cascade() function.

See also
The interfaces defined for CascadeHandler.
StepHandler
EventHandler
SubProcessHandler

Definition at line 33 of file CascadeHandler.h.

Member Function Documentation

◆ cascade()

virtual void ThePEG::CascadeHandler::cascade ( )
pure virtual

The main function to be overwritten by sub-classes.

It is called by handle() after storing some information which is then available through simple access functions.

◆ didRunCascade()

bool ThePEG::CascadeHandler::didRunCascade ( ) const
inline

For multiple cascade calls, this flag tells if cascade was called before.

Definition at line 150 of file CascadeHandler.h.

References theDidRunCascade.

◆ firstPDF()

const PDF & ThePEG::CascadeHandler::firstPDF ( ) const
inline

Return references to the PDF used by the first incoming particle.

Definition at line 112 of file CascadeHandler.h.

References pdfs().

◆ handle()

virtual void ThePEG::CascadeHandler::handle ( EventHandler eh,
const tPVector tagged,
const Hint hint 
)
virtual

The main function called by the EventHandler class to perform a step.

Parameters
ehthe EventHandler in charge of the Event generation.
taggedif not empty these are the only particles which should be considered by the StepHandler.
hinta Hint object with possible information from previously performed steps.
Exceptions
Vetoif the StepHandler requires the current step to be discarded.
Stopif the generation of the current Event should be stopped after this call.
Exceptionif something goes wrong.

Implements ThePEG::StepHandler.

◆ hint()

const Hint & ThePEG::CascadeHandler::hint ( ) const
inline

Return the int provided in the current call to handle().

Definition at line 107 of file CascadeHandler.h.

References theHint.

◆ isReshuffling()

virtual bool ThePEG::CascadeHandler::isReshuffling ( ) const
inlinevirtual

Return true, if this cascade handler will perform reshuffling from hard process masses.

Definition at line 144 of file CascadeHandler.h.

◆ pdfs()

const pair< PDF, PDF > & ThePEG::CascadeHandler::pdfs ( ) const
inline

Return references to the currently used PDF's.

Definition at line 122 of file CascadeHandler.h.

References thePDFs.

Referenced by firstPDF(), and secondPDF().

◆ reweightCKKW()

virtual double ThePEG::CascadeHandler::reweightCKKW ( int  minMult,
int  maxMult 
)
virtual

The CascadeHandler can be used inside the process generation to do so-called CKKW reweighting of the hard sub-process.

In this case this function is called after information about the sub-process is made available through the LastXCombInfo base class. Only the function belonging to the primary CascadeHandler for the event to be generated is called. Sub-classes may implement it to give a suitable weight in return. The CascadeHandler may store information about the generated sub-process to be used in the subsequent cascade. It is however not guaranteed that the reweightCKKW() will have been called for the subprocess handed to the handle() function. This default implementation of the function simply return one. The current sub-process is mixed together with other processes with a multiplicity of outgoing particles between minMult and maxMult.

◆ secondPDF()

const PDF & ThePEG::CascadeHandler::secondPDF ( ) const
inline

Return references to the PDF used by the first incoming particle.

Definition at line 117 of file CascadeHandler.h.

References pdfs().

◆ setDidRunCascade()

static void ThePEG::CascadeHandler::setDidRunCascade ( bool  c)
inlinestatic

Set the flag to inform if prior cascades had been called.

Definition at line 155 of file CascadeHandler.h.

References theDidRunCascade.

◆ tagged()

const tPVector & ThePEG::CascadeHandler::tagged ( ) const
inline

Return the vector of tagged particles which should be showered.

It the vector is empty, the patons from the current sub-process is supposed to be showered.

Definition at line 102 of file CascadeHandler.h.

References theTagged.

Member Data Documentation

◆ initCascadeHandler

AbstractNoPIOClassDescription<CascadeHandler> ThePEG::CascadeHandler::initCascadeHandler
staticprivate

The static object used to initialize the description of this class.

Indicates that this is an abstract class without persistent data.

Definition at line 196 of file CascadeHandler.h.

◆ theDidRunCascade

bool ThePEG::CascadeHandler::theDidRunCascade
staticprivate

If there are multiple cascade calls, this flag tells if cascade was called before.

Definition at line 187 of file CascadeHandler.h.

Referenced by didRunCascade(), and setDidRunCascade().

◆ theHint

const Hint* ThePEG::CascadeHandler::theHint
private

Store the Hint arguments given to handle().

Definition at line 176 of file CascadeHandler.h.

Referenced by hint().

◆ thePDFs

pair<PDF,PDF> ThePEG::CascadeHandler::thePDFs
private

The pdfs used to extract the incoming partons.

Definition at line 181 of file CascadeHandler.h.

Referenced by pdfs().

◆ theTagged

const tPVector* ThePEG::CascadeHandler::theTagged
private

Store the tagged argument given to handle().

Definition at line 171 of file CascadeHandler.h.

Referenced by tagged().


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