#include <MEBase.h>
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< ReweightPtr > | ReweightVector |
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 in which this matrix element is given. | |
virtual unsigned int | orderInAlphaEW () const =0 |
Return the order in 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 associated with the phase space point provided by the last call to setKinematics(). | |
virtual double | alphaEM () const |
Return the value of 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 DiagramVector & | diagrams () 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 ColourLines & | selectColourGeometry (tcDiagPtr diag) const |
Select a ColpurLines geometry. | |
virtual Selector< DiagramIndex > | diagrams (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 DVector & | meInfo () 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 | |
MEBase & | operator= (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. |
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.
Definition at line 67 of file MEBase.h.
typedef vector<DiagPtr> ThePEG::MEBase::DiagramVector |
typedef DiagramVector::size_type ThePEG::MEBase::DiagramIndex |
typedef vector<ReweightPtr> ThePEG::MEBase::ReweightVector |
virtual unsigned int ThePEG::MEBase::orderInAlphaEW | ( | ) | const [pure virtual] |
Return the order in 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 associated with the phase space point provided by the last call to setKinematics().
virtual double ThePEG::MEBase::alphaEM | ( | ) | const [virtual] |
Return the value of associated with the phase space point provided by the last call to setKinematics().
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.
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.
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.
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.
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.