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

The MEBase class is the base class of all objects representing hard matrix elements in ThePEG. More...

#include <MEBase.h>

Inheritance diagram for ThePEG::MEBase:

Public Types

typedef vector< DiagPtr > DiagramVector
 A vector of pointers to DiagramBase objects.
 
typedef DiagramVector::size_type DiagramIndex
 The size_type used in the DiagramVector.
 
typedef vector< ReweightPtrReweightVector
 A vector of pointers to ReweightBase objects.
 
- 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< StandardXComb >
typedef ThePEG::Ptr< StandardXComb >::pointer XCPtr
 Alias for a reference counted pointer to XC .
 
typedef ThePEG::Ptr< StandardXComb >::const_pointer cXCPtr
 Alias for a reference counted pointer to a const XC .
 
typedef ThePEG::Ptr< StandardXComb >::transient_pointer tXCPtr
 Alias for a transient pointer to XC .
 
typedef ThePEG::Ptr< StandardXComb >::transient_const_pointer tcXCPtr
 Alias for a transient pointer to a const XC .
 

Public Member Functions

Standard constructors and destructors.
 MEBase ()
 Default constructor.
 
virtual ~MEBase ()
 Destructor.
 
Virtual functions to be overridden by sub-classes..
virtual unsigned int orderInAlphaS () const =0
 Return the order in \(\alpha_S\) in which this matrix element is given.
 
virtual unsigned int orderInAlphaEW () const =0
 Return the order in \(\alpha_{EM}\) in which this matrix element is given.
 
virtual double me2 () const =0
 Return the matrix element for the kinematical configuation previously provided by the last call to setKinematics(), suitably scaled by sHat() to give a dimension-less number.
 
virtual Energy2 scale () const =0
 Return the scale associated with the phase space point provided by the last call to setKinematics().
 
virtual double alphaS () const
 Return the value of \(\alpha_S\) associated with the phase space point provided by the last call to setKinematics().
 
virtual double alphaEM () const
 Return the value of \(\alpha_EM\) associated with the phase space point provided by the last call to setKinematics().
 
void setKinematics (tPPair in, const PVector &out)
 Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me() and colourGeometries().
 
virtual void setKinematics ()
 Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me() and colourGeometries() according to the associated XComb object.
 
virtual void constructVertex (tSubProPtr sub)
 construct the spin information for the interaction
 
virtual void constructVertex (tSubProPtr sub, const ColourLines *cl)
 construct the spin information for the interaction
 
virtual int nDim () const
 The number of internal degreed of freedom used in the matrix element.
 
virtual bool generateKinematics (const double *r)=0
 Generate internal degrees of freedom given nDim() uniform random numbers in the interval ]0,1[.
 
virtual bool wantCMS () const
 Return true, if this matrix element expects the incoming partons in their center-of-mass system.
 
virtual bool headCuts () const
 If this is a dependent matrix element in a ME group, return true, if cuts should be inherited from the head matrix element, i.e.
 
virtual bool ignoreCuts () const
 If this is a dependent matrix element in a ME group, return true, if cuts should be ignored.
 
virtual bool apply () const
 If this is a dependent matrix element in a ME group, return true, if it applies to the process set in lastXComb()
 
virtual CrossSection dSigHatDR () const =0
 Return the matrix element squared differential in the variables given by the last call to generateKinematics().
 
virtual map< string, double > generateOptionalWeights ()
 If variations are available for the subprocess handled, generate and return a map of optional weights to be included for the event.
 
virtual bool haveX1X2 () const
 Return true, if this matrix element will generate momenta for the incoming partons itself.
 
virtual bool havePDFWeight1 () const
 Return true, if this matrix element provides the PDF weight for the first incoming parton itself.
 
virtual bool havePDFWeight2 () const
 Return true, if this matrix element provides the PDF weight for the second incoming parton itself.
 
virtual bool keepRandomNumbers () const
 Return true, if the XComb steering this matrix element should keep track of the random numbers used to generate the last phase space point.
 
virtual void generateSubCollision (SubProcess &)
 Comlete a SubProcess object using the internal degrees of freedom generated in the last generateKinematics() (and possible other degrees of freedom which was intergated over in dSigHatDR().
 
virtual void clearKinematics ()
 Clear the information previously provided by a call to setKinematics(...).
 
virtual void getDiagrams () const =0
 Add all possible diagrams with the add() function.
 
virtual bool noMirror () const
 Return true, if this matrix element does not want to make use of mirroring processes; in this case all possible partonic subprocesses with a fixed assignment of incoming particles need to be provided through the diagrams added with the add(...) method.
 
const DiagramVectordiagrams () const
 Return all possible diagrams.
 
virtual Selector< const ColourLines * > colourGeometries (tcDiagPtr diag) const =0
 Return a Selector with possible colour geometries for the selected diagram weighted by their relative probabilities.
 
virtual const ColourLinesselectColourGeometry (tcDiagPtr diag) const
 Select a ColpurLines geometry.
 
virtual Selector< DiagramIndexdiagrams (const DiagramVector &) const
 With the information previously supplied with the setKinematics(...) method, a derived class may optionally override this method to weight the given diagrams with their (although certainly not physical) relative probabilities.
 
virtual DiagramIndex diagram (const DiagramVector &) const
 Select a diagram.
 
bool reweighted () const
 Return true if this matrix element has associated (p)reWeight objects assigned.
 
double reWeight () const
 With the information previously supplied with the setKinematics(...) methods, return the combined effects of the reweighters.
 
double preWeight () const
 With the information previously supplied with the setKinematics(...) methods, return the comined effects of the peweighters.
 
void addReweighter (tReweightPtr rw)
 Add objects to the list of reweighters.
 
void addPreweighter (tReweightPtr rw)
 Add objects to the list of preweighters.
 
Ptr< Amplitude >::pointer amplitude () const
 Return the amplitude associated with this matrix element.
 
void amplitude (Ptr< Amplitude >::pointer amp)
 Set the amplitude associated with this matrix element.
 
Acces information about the last generated phase space point.
Energy2 sHat () const
 Return the last set invariant mass squared.
 
double preweight () const
 Return the factor with which this matrix element was last pre-weighted.
 
virtual void flushCaches ()
 Inform this matrix element that a new phase space point is about to be generated, so all caches should be flushed.
 
virtual StdXCombPtr makeXComb (Energy newMaxEnergy, const cPDPair &inc, tEHPtr newEventHandler, tSubHdlPtr newSubProcessHandler, tPExtrPtr newExtractor, tCascHdlPtr newCKKW, const PBPair &newPartonBins, tCutsPtr newCuts, const DiagramVector &newDiagrams, bool mir, const PartonPairVec &allPBins, tStdXCombPtr newHead=tStdXCombPtr(), tMEPtr newME=tMEPtr())
 For the given event generation setup return a xcomb object appropriate to this matrix element.
 
virtual StdXCombPtr makeXComb (tStdXCombPtr newHead, const PBPair &newPartonBins, const DiagramVector &newDiagrams, tMEPtr newME=tMEPtr())
 For the given event generation setup return a dependent xcomb object appropriate to this matrix element.
 
virtual void fillProjectors ()
 Fill the projectors object of xcombs to choose subprocesses different than the one currently integrated.
 
virtual void setXComb (tStdXCombPtr)
 Set the XComb object to be used in the next call to generateKinematics() and dSigHatDR().
 
const DVectormeInfo () const
 Retrieve information obtained in the calculation of the cross section to be used later when selecting diagrams and colour flow.
 
void meInfo (const DVector &info) const
 Save information obtained in the calculation of the cross section to be used later when selecting diagrams and colour flow.
 
virtual int maxMultCKKW () const
 If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.
 
virtual int minMultCKKW () const
 If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.
 
virtual void maxMultCKKW (int mult)
 If this matrix element is to be used together with others for CKKW reweighting and veto, this will set the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.
 
virtual void minMultCKKW (int mult)
 If this matrix element is to be used together with others for CKKW reweighting and veto, this will set the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.
 
virtual void setVetoScales (tSubProPtr) const
 Set veto scales on the particles at the given SubProcess which has been generated using this matrix element.
 
- 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< StandardXComb >
const StandardXComblastXComb () const
 Return a reference to the last selected XComb.
 
tXCPtr lastXCombPtr () const
 Return a pointer to the last selected XComb.
 
const StandardXComblastHeadXComb () 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.
 
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.
 

Standard Interfaced functions.

DiagramVector theDiagrams
 The diagrams included for this matrix element.
 
ReweightVector reweights
 The reweight objects modifying this matrix element.
 
ReweightVector preweights
 The preweight objects modifying this matrix element.
 
Ptr< Amplitude >::pointer theAmplitude
 The amplitude associated with this matrix element.
 
int theMaxMultCKKW
 If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.
 
int theMinMultCKKW
 If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.
 
static AbstractClassDescription< MEBaseinitMEBase
 Describe an abstract base class with persistent data.
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk.
 
virtual void doinitrun ()
 Initialize this object.
 
MEBaseoperator= (const MEBase &)=delete
 Private and non-existent assignment operator.
 

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.
 
static void Init ()
 Standard Init function used to initialize the interfaces.
 
void add (DiagPtr dp) const
 To be used by sub classes in the getDiagrams() method to add included diagrams.
 
vector< Lorentz5Momentum > & meMomenta ()
 Access the momenta set by the last call to generateKinematics().
 
void lastME2 (double v) const
 Set the matrix element squared as calculated for the last phase space point.
 
void lastPreweight (double w) const
 Set the last preweight factor.
 
void lastMECrossSection (CrossSection v) const
 Set the partonic cross section as calculated for the last phase space point.
 
void lastMEPDFWeight (double v) const
 Set the PDF weight as calculated for the last phase space point, if the matrix element does supply PDF weights.
 
void lastMECouplings (double v) const
 Set the coupling weight as calculated for the last phase space point.
 
void jacobian (double j)
 Set the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
 
void use (tcMEPtr other)
 Initialize all member variables from another MEBase object.
 
void useDiagrams (tcMEPtr other) const
 Initialize the diagrams from another MEBase object.
 

Additional Inherited Members

- 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::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 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< StandardXComb >
XCPtr theLastXComb
 The pointer to the last selected XComb.
 

Detailed Description

The MEBase class is the base class of all objects representing hard matrix elements in ThePEG.

There are three methods which must be overridden by a concrete subclass:

includedDiagrams(tcPDPair) should return a vector of DiagramBase objects describing the diagrams used for this matrix element for the given pair of incoming parton types. These DiagramBases are used to identify the incoming and outgoing partons which can be handled by the process generation scheme, and is also used to cnstruct a corresponding SubProcess object.

scale() should return the scale associated with the phase space point set with the last call to setKinematics(...) or generateKinematics(...).

me() should return the the matrix element squared using the the type and momentum of the incoming and outgoing partons, previously set by the setKinematics(...) or generateKinematics(...) member functions, accessible through the methods meMomenta() and mePartonData() inherited from LastXCombInfo, and/or from information stored by sub classes. The returned value should be dimensionless suitable scaled by the total invariant mass squared (accessible through the sHat() member function). Any user of this method must make sure that the setKinematics(...) member function has been appropriately called before.

colourGeometries() should return a Selector with the possible ColourLines objects weighted by their relative probabilities given the information set by the last call to setKinematics(...) or generateKinematics(...).

There are other virtula functions which may be overridden as listed below.

See also
The interfaces defined for MEBase.
DiagramBase
ColourLines

Definition at line 72 of file MEBase.h.

Member Typedef Documentation

◆ DiagramIndex

typedef DiagramVector::size_type ThePEG::MEBase::DiagramIndex

The size_type used in the DiagramVector.

Definition at line 79 of file MEBase.h.

◆ DiagramVector

typedef vector<DiagPtr> ThePEG::MEBase::DiagramVector

A vector of pointers to DiagramBase objects.

Definition at line 77 of file MEBase.h.

◆ ReweightVector

A vector of pointers to ReweightBase objects.

Definition at line 81 of file MEBase.h.

Member Function Documentation

◆ add()

void ThePEG::MEBase::add ( DiagPtr  dp) const
inlineprotected

To be used by sub classes in the getDiagrams() method to add included diagrams.

Definition at line 505 of file MEBase.h.

References theDiagrams.

◆ alphaEM()

virtual double ThePEG::MEBase::alphaEM ( ) const
virtual

Return the value of \(\alpha_EM\) associated with the phase space point provided by the last call to setKinematics().

This versions returns SM().alphaEM(scale()).

Reimplemented in ThePEG::MEGroup.

◆ alphaS()

virtual double ThePEG::MEBase::alphaS ( ) const
virtual

Return the value of \(\alpha_S\) associated with the phase space point provided by the last call to setKinematics().

This versions returns SM().alphaS(scale()).

Reimplemented in ThePEG::MEGroup.

◆ amplitude() [1/2]

Ptr< Amplitude >::pointer ThePEG::MEBase::amplitude ( ) const
inline

Return the amplitude associated with this matrix element.

This function is allowed to return the null pointer if the amplitude is not available.

Definition at line 360 of file MEBase.h.

References theAmplitude.

◆ amplitude() [2/2]

void ThePEG::MEBase::amplitude ( Ptr< Amplitude >::pointer  amp)
inline

Set the amplitude associated with this matrix element.

Definition at line 365 of file MEBase.h.

References theAmplitude.

◆ apply()

virtual bool ThePEG::MEBase::apply ( ) const
inlinevirtual

If this is a dependent matrix element in a ME group, return true, if it applies to the process set in lastXComb()

Definition at line 206 of file MEBase.h.

◆ clearKinematics()

virtual void ThePEG::MEBase::clearKinematics ( )
virtual

Clear the information previously provided by a call to setKinematics(...).

Reimplemented in ThePEG::MEGroup.

◆ colourGeometries()

virtual Selector< const ColourLines * > ThePEG::MEBase::colourGeometries ( tcDiagPtr  diag) const
pure virtual

Return a Selector with possible colour geometries for the selected diagram weighted by their relative probabilities.

Implemented in ThePEG::BlobMEBase, ThePEG::MEee2gZ2qq, ThePEG::MEGG2GG, ThePEG::MEGG2QQ, ThePEG::MEGroup, ThePEG::MENCDIS, ThePEG::MEQG2QG, ThePEG::MEQQ2GG, ThePEG::MEqq2qq, ThePEG::MEQQ2qq, ThePEG::MEQQ2QQ, and ThePEG::MEQq2Qq.

◆ constructVertex() [1/2]

virtual void ThePEG::MEBase::constructVertex ( tSubProPtr  sub)
virtual

construct the spin information for the interaction

Reimplemented in ThePEG::MEGroup.

◆ constructVertex() [2/2]

virtual void ThePEG::MEBase::constructVertex ( tSubProPtr  sub,
const ColourLines cl 
)
virtual

construct the spin information for the interaction

Reimplemented in ThePEG::MEGroup.

◆ diagram()

virtual DiagramIndex ThePEG::MEBase::diagram ( const DiagramVector ) const
virtual

Select a diagram.

Default version uses diagrams(const DiagramVector &) to select a diagram according to the weights. This is the only method used that should be outside of MEBase.

Reimplemented in ThePEG::MEGroup.

◆ diagrams() [1/2]

const DiagramVector & ThePEG::MEBase::diagrams ( ) const
inline

Return all possible diagrams.

Definition at line 284 of file MEBase.h.

References getDiagrams(), and theDiagrams.

◆ diagrams() [2/2]

virtual Selector< DiagramIndex > ThePEG::MEBase::diagrams ( const DiagramVector ) const
inlinevirtual

With the information previously supplied with the setKinematics(...) method, a derived class may optionally override this method to weight the given diagrams with their (although certainly not physical) relative probabilities.

Reimplemented in ThePEG::BlobMEBase, ThePEG::MEee2gZ2qq, ThePEG::MEGG2GG, ThePEG::MEGG2QQ, ThePEG::MEGroup, ThePEG::MENCDIS, ThePEG::MEQG2QG, ThePEG::MEQQ2GG, ThePEG::MEqq2qq, ThePEG::MEQQ2qq, ThePEG::MEQQ2QQ, and ThePEG::MEQq2Qq.

Definition at line 310 of file MEBase.h.

◆ doinit()

virtual void ThePEG::MEBase::doinit ( )
protectedvirtual

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::MEee2gZ2qq, ThePEG::MEGroup, and ThePEG::MENCDIS.

◆ doinitrun()

virtual void ThePEG::MEBase::doinitrun ( )
protectedvirtual

Initialize this object.

Called in the run phase just before a run begins.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::MEGroup.

◆ dSigHatDR()

virtual CrossSection ThePEG::MEBase::dSigHatDR ( ) const
pure virtual

Return the matrix element squared differential in the variables given by the last call to generateKinematics().

Implemented in ThePEG::BlobMEBase, ThePEG::ME2to2Base, and ThePEG::MEGroup.

◆ fillProjectors()

virtual void ThePEG::MEBase::fillProjectors ( )
inlinevirtual

Fill the projectors object of xcombs to choose subprocesses different than the one currently integrated.

Reimplemented in ThePEG::MEGroup.

Definition at line 416 of file MEBase.h.

◆ flushCaches()

virtual void ThePEG::MEBase::flushCaches ( )
inlinevirtual

Inform this matrix element that a new phase space point is about to be generated, so all caches should be flushed.

Reimplemented in ThePEG::MEGroup.

Definition at line 388 of file MEBase.h.

◆ generateKinematics()

virtual bool ThePEG::MEBase::generateKinematics ( const double *  r)
pure virtual

Generate internal degrees of freedom given nDim() uniform random numbers in the interval ]0,1[.

To help the phase space generator, the 'dSigHatDR' should be a smooth function of these numbers, although this is not strictly necessary. The return value should be true of the generation succeeded. If so the generated momenta should be stored in the meMomenta() vector.

Implemented in ThePEG::ME2to2Base, and ThePEG::MEGroup.

◆ generateOptionalWeights()

virtual map< string, double > ThePEG::MEBase::generateOptionalWeights ( )
inlinevirtual

If variations are available for the subprocess handled, generate and return a map of optional weights to be included for the event.

Definition at line 219 of file MEBase.h.

◆ generateSubCollision()

virtual void ThePEG::MEBase::generateSubCollision ( SubProcess )
virtual

Comlete a SubProcess object using the internal degrees of freedom generated in the last generateKinematics() (and possible other degrees of freedom which was intergated over in dSigHatDR().

This default version does nothing. Will be made purely virtual in the future.

Reimplemented in ThePEG::MEGroup.

◆ getDiagrams()

virtual void ThePEG::MEBase::getDiagrams ( ) const
pure virtual

◆ havePDFWeight1()

virtual bool ThePEG::MEBase::havePDFWeight1 ( ) const
inlinevirtual

Return true, if this matrix element provides the PDF weight for the first incoming parton itself.

Reimplemented in ThePEG::MEGroup.

Definition at line 237 of file MEBase.h.

◆ havePDFWeight2()

virtual bool ThePEG::MEBase::havePDFWeight2 ( ) const
inlinevirtual

Return true, if this matrix element provides the PDF weight for the second incoming parton itself.

Reimplemented in ThePEG::MEGroup.

Definition at line 243 of file MEBase.h.

◆ haveX1X2()

virtual bool ThePEG::MEBase::haveX1X2 ( ) const
inlinevirtual

Return true, if this matrix element will generate momenta for the incoming partons itself.

The matrix element is required to store the incoming parton momenta in meMomenta()[0,1]. No mapping in tau and y is performed by the PartonExtractor object, if a derived class returns true here. The phase space jacobian is to include a factor 1/(x1 x2).

Reimplemented in ThePEG::MEGroup.

Definition at line 231 of file MEBase.h.

◆ headCuts()

virtual bool ThePEG::MEBase::headCuts ( ) const
inlinevirtual

If this is a dependent matrix element in a ME group, return true, if cuts should be inherited from the head matrix element, i.e.

no cut is being applied to the dependent matrix element if the head configuration has passed the cuts.

Definition at line 194 of file MEBase.h.

◆ ignoreCuts()

virtual bool ThePEG::MEBase::ignoreCuts ( ) const
inlinevirtual

If this is a dependent matrix element in a ME group, return true, if cuts should be ignored.

Definition at line 200 of file MEBase.h.

◆ keepRandomNumbers()

virtual bool ThePEG::MEBase::keepRandomNumbers ( ) const
inlinevirtual

Return true, if the XComb steering this matrix element should keep track of the random numbers used to generate the last phase space point.

Reimplemented in ThePEG::MEGroup.

Definition at line 250 of file MEBase.h.

◆ lastME2()

void ThePEG::MEBase::lastME2 ( double  v) const
protected

Set the matrix element squared as calculated for the last phase space point.

This may optionally be used by a matrix element for caching.

◆ lastMECrossSection()

void ThePEG::MEBase::lastMECrossSection ( CrossSection  v) const
protected

Set the partonic cross section as calculated for the last phase space point.

This may optionally be used by a matrix element for caching.

◆ lastMEPDFWeight()

void ThePEG::MEBase::lastMEPDFWeight ( double  v) const
protected

Set the PDF weight as calculated for the last phase space point, if the matrix element does supply PDF weights.

This may optionally be used by a matrix element for caching.

◆ makeXComb()

virtual StdXCombPtr ThePEG::MEBase::makeXComb ( Energy  newMaxEnergy,
const cPDPair inc,
tEHPtr  newEventHandler,
tSubHdlPtr  newSubProcessHandler,
tPExtrPtr  newExtractor,
tCascHdlPtr  newCKKW,
const PBPair &  newPartonBins,
tCutsPtr  newCuts,
const DiagramVector newDiagrams,
bool  mir,
const PartonPairVec &  allPBins,
tStdXCombPtr  newHead = tStdXCombPtr(),
tMEPtr  newME = tMEPtr() 
)
virtual

For the given event generation setup return a xcomb object appropriate to this matrix element.

Reimplemented in ThePEG::MEGroup.

◆ maxMultCKKW() [1/2]

virtual int ThePEG::MEBase::maxMultCKKW ( ) const
inlinevirtual

If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.

Reimplemented in ThePEG::MEGroup.

Definition at line 442 of file MEBase.h.

References theMaxMultCKKW.

◆ maxMultCKKW() [2/2]

virtual void ThePEG::MEBase::maxMultCKKW ( int  mult)
inlinevirtual

If this matrix element is to be used together with others for CKKW reweighting and veto, this will set the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.

Reimplemented in ThePEG::MEGroup.

Definition at line 458 of file MEBase.h.

References theMaxMultCKKW.

◆ me2()

virtual double ThePEG::MEBase::me2 ( ) const
pure virtual

Return the matrix element for the kinematical configuation previously provided by the last call to setKinematics(), suitably scaled by sHat() to give a dimension-less number.

Implemented in ThePEG::MEee2gZ2qq, ThePEG::MEGG2GG, ThePEG::MEGG2QQ, ThePEG::MEGroup, ThePEG::MENCDIS, ThePEG::MEQG2QG, ThePEG::MEQQ2GG, ThePEG::MEqq2qq, ThePEG::MEQQ2qq, ThePEG::MEQQ2QQ, and ThePEG::MEQq2Qq.

◆ minMultCKKW() [1/2]

virtual int ThePEG::MEBase::minMultCKKW ( ) const
inlinevirtual

If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.

Reimplemented in ThePEG::MEGroup.

Definition at line 450 of file MEBase.h.

References theMinMultCKKW.

◆ minMultCKKW() [2/2]

virtual void ThePEG::MEBase::minMultCKKW ( int  mult)
inlinevirtual

If this matrix element is to be used together with others for CKKW reweighting and veto, this will set the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.

Reimplemented in ThePEG::MEGroup.

Definition at line 466 of file MEBase.h.

References theMinMultCKKW.

◆ nDim()

virtual int ThePEG::MEBase::nDim ( ) const
virtual

The number of internal degreed of freedom used in the matrix element.

This default version returns 0;

Reimplemented in ThePEG::ME2to2Base, and ThePEG::MEGroup.

◆ noMirror()

virtual bool ThePEG::MEBase::noMirror ( ) const
inlinevirtual

Return true, if this matrix element does not want to make use of mirroring processes; in this case all possible partonic subprocesses with a fixed assignment of incoming particles need to be provided through the diagrams added with the add(...) method.

Reimplemented in ThePEG::MEGroup.

Definition at line 279 of file MEBase.h.

◆ orderInAlphaEW()

virtual unsigned int ThePEG::MEBase::orderInAlphaEW ( ) const
pure virtual

Return the order in \(\alpha_{EM}\) in which this matrix element is given.

Returns 0.

Implemented in ThePEG::ME2to2QCD, ThePEG::MEee2gZ2qq, ThePEG::MEGroup, and ThePEG::MENCDIS.

◆ orderInAlphaS()

virtual unsigned int ThePEG::MEBase::orderInAlphaS ( ) const
pure virtual

Return the order in \(\alpha_S\) in which this matrix element is given.

Implemented in ThePEG::ME2to2QCD, ThePEG::MEee2gZ2qq, ThePEG::MEGroup, and ThePEG::MENCDIS.

◆ persistentInput()

void ThePEG::MEBase::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.

◆ persistentOutput()

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

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ preweight()

double ThePEG::MEBase::preweight ( ) const
inline

Return the factor with which this matrix element was last pre-weighted.

Definition at line 381 of file MEBase.h.

References ThePEG::LastXCombInfo< StandardXComb >::lastPreweight().

◆ reweighted()

bool ThePEG::MEBase::reweighted ( ) const
inline

Return true if this matrix element has associated (p)reWeight objects assigned.

Definition at line 327 of file MEBase.h.

References preweights, and reweights.

◆ scale()

virtual Energy2 ThePEG::MEBase::scale ( ) const
pure virtual

Return the scale associated with the phase space point provided by the last call to setKinematics().

Implemented in ThePEG::ME2to2Base, ThePEG::MEee2gZ2qq, ThePEG::MEGroup, and ThePEG::MENCDIS.

◆ selectColourGeometry()

virtual const ColourLines & ThePEG::MEBase::selectColourGeometry ( tcDiagPtr  diag) const
virtual

Select a ColpurLines geometry.

The default version returns a colour geometry selected among the ones returned from colourGeometries(tcDiagPtr).

Reimplemented in ThePEG::MEGroup.

◆ setKinematics()

virtual void ThePEG::MEBase::setKinematics ( )
inlinevirtual

Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me() and colourGeometries() according to the associated XComb object.

If the function is overridden in a sub class the new function must call the base class one first.

Reimplemented in ThePEG::ME2to2Base, and ThePEG::MEGroup.

Definition at line 154 of file MEBase.h.

Referenced by ThePEG::MEGroup::setKinematics().

◆ setVetoScales()

virtual void ThePEG::MEBase::setVetoScales ( tSubProPtr  ) const
inlinevirtual

Set veto scales on the particles at the given SubProcess which has been generated using this matrix element.

Definition at line 473 of file MEBase.h.

◆ setXComb()

virtual void ThePEG::MEBase::setXComb ( tStdXCombPtr  )
virtual

Set the XComb object to be used in the next call to generateKinematics() and dSigHatDR().

Reimplemented in ThePEG::MEGroup.

Referenced by ThePEG::MEGroup::setXComb().

◆ sHat()

◆ use()

void ThePEG::MEBase::use ( tcMEPtr  other)
protected

Initialize all member variables from another MEBase object.

@TODO remove?

◆ wantCMS()

virtual bool ThePEG::MEBase::wantCMS ( ) const
inlinevirtual

Return true, if this matrix element expects the incoming partons in their center-of-mass system.

Reimplemented in ThePEG::MEGroup.

Definition at line 186 of file MEBase.h.

Member Data Documentation

◆ initMEBase

AbstractClassDescription<MEBase> ThePEG::MEBase::initMEBase
staticprivate

Describe an abstract base class with persistent data.

Definition at line 633 of file MEBase.h.

◆ preweights

ReweightVector ThePEG::MEBase::preweights
private

The preweight objects modifying this matrix element.

Definition at line 605 of file MEBase.h.

Referenced by reweighted().

◆ reweights

ReweightVector ThePEG::MEBase::reweights
private

The reweight objects modifying this matrix element.

Definition at line 600 of file MEBase.h.

Referenced by reweighted().

◆ theAmplitude

Ptr<Amplitude>::pointer ThePEG::MEBase::theAmplitude
private

The amplitude associated with this matrix element.

Definition at line 610 of file MEBase.h.

Referenced by amplitude().

◆ theDiagrams

DiagramVector ThePEG::MEBase::theDiagrams
mutableprivate

The diagrams included for this matrix element.

Definition at line 595 of file MEBase.h.

Referenced by add(), and diagrams().

◆ theMaxMultCKKW

int ThePEG::MEBase::theMaxMultCKKW
private

If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the highest multiplicity matrix element in the group.

Definition at line 618 of file MEBase.h.

Referenced by maxMultCKKW().

◆ theMinMultCKKW

int ThePEG::MEBase::theMinMultCKKW
private

If this matrix element is to be used together with others for CKKW reweighting and veto, this should give the multiplicity of outgoing particles in the lowest multiplicity matrix element in the group.

Definition at line 626 of file MEBase.h.

Referenced by minMultCKKW().


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