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:

ThePEG::HandlerBase ThePEG::LastXCombInfo< XC > ThePEG::HandlerBaseT< T > ThePEG::Interfaced ThePEG::InterfacedBase ThePEG::Base ThePEG::Named ThePEG::Pointer::ReferenceCounted ThePEG::ME2to2Base ThePEG::ME2to2QCD ThePEG::MEee2gZ2qq ThePEG::MEGG2GG ThePEG::MEGG2QQ ThePEG::MENCDIS ThePEG::MEQG2QG ThePEG::MEQQ2GG ThePEG::MEQQ2qq ThePEG::MEQQ2QQ ThePEG::MEqq2qq ThePEG::MEQq2Qq

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 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 CrossSection dSigHatDR () const =0
 Return the matrix element squared differential in the variables given by the last call to generateKinematics().
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.
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(.
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(.
double preWeight () const
 With the information previously supplied with the setKinematics(.
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.
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 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.
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 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().
double jacobian () const
 Get the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
void jacobian (double j)
 Set the last jacobian obtained when generating the kinematics for the call to dSigHatDR.

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.
double theLastJacobian
 Save the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
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.


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

A vector of pointers to DiagramBase objects.

Definition at line 72 of file MEBase.h.

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

Definition at line 76 of file MEBase.h.


Member Function Documentation

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

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

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

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

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.

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.

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.

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

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

..).

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

virtual Selector<DiagramIndex> ThePEG::MEBase::diagrams ( const DiagramVector  )  const [inline, virtual]

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::MEee2gZ2qq, ThePEG::MEGG2GG, ThePEG::MEGG2QQ, ThePEG::MENCDIS, ThePEG::MEQG2QG, ThePEG::MEQQ2GG, ThePEG::MEqq2qq, ThePEG::MEQQ2qq, ThePEG::MEQQ2QQ, and ThePEG::MEQq2Qq.

Definition at line 227 of file MEBase.h.

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.

double ThePEG::MEBase::reWeight (  )  const

With the information previously supplied with the setKinematics(.

..) methods, return the combined effects of the reweighters.

double ThePEG::MEBase::preWeight (  )  const

With the information previously supplied with the setKinematics(.

..) methods, return the comined effects of the peweighters.

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

References theAmplitude.

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

Function used to write out object persistently.

Parameters:
os the persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

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

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

Function used to read in object persistently.

Parameters:
is the persistent input stream read from.
version the version number of the object when written.

Reimplemented from ThePEG::Interfaced.

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


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

Generated on Thu Apr 29 12:43:11 2010 for ThePEG by  doxygen 1.5.5