ThePEG  1.8.0
Public Types | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
ThePEG::MEBase Class Reference

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:
Inheritance graph
[legend]

List of all members.

Public Types

typedef vector< DiagPtrDiagramVector
 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::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 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 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 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.
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.
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 setVetoScales (tSubProPtr) const
 Set veto scales on the particles at the given SubProcess which has been generated using this matrix element.
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.
- 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 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 cPDVectormePartonData () const
 Return the incoming and outgoing parton types to be used by the matrix element object, in the order specified by the TreeDiagram objects given by the matrix element.

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interfaces.

Protected Member Functions

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 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 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.

Private Member Functions

MEBaseoperator= (const MEBase &)
 Private and non-existent assignment operator.

Private Attributes

DiagramVector theDiagrams
 The diagrams included for this matrix element.
Energy2 theLastSHat
 The last set invariant mass squared.
ReweightVector reweights
 The reweight objects modifying this matrix element.
ReweightVector preweights
 The preweight objects modifying this matrix element.
double lastPreweight
 The factor with which this matrix element was last pre-weighted.
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 Private Attributes

static
AbstractClassDescription
< MEBase
initMEBase
 Describe an abstract base class with persistent data.

Additional Inherited Members

- 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 67 of file MEBase.h.


Member Typedef Documentation

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

The size_type used in the DiagramVector.

Definition at line 74 of file MEBase.h.

A vector of pointers to DiagramBase objects.

Definition at line 72 of file MEBase.h.

A vector of pointers to ReweightBase objects.

Definition at line 76 of file MEBase.h.


Member Function Documentation

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.

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.

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 341 of file MEBase.h.

References theAmplitude.

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.

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::MEGroup, and ThePEG::ME2to2Base.

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.

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 212 of file MEBase.h.

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 184 of file MEBase.h.

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.

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.

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.

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::MEGroup, and ThePEG::ME2to2Base.

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::MENCDIS, ThePEG::MEGroup, ThePEG::ME2to2QCD, and ThePEG::MEee2gZ2qq.

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.

Reimplemented from ThePEG::Interfaced.

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

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

Function used to write out object persistently.

Parameters:
osthe persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

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

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.

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

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::MEGroup, and ThePEG::ME2to2Base.

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

Initialize all member variables from another MEBase object.

remove?


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