10 #ifndef ThePEG_MEGroup_H 11 #define ThePEG_MEGroup_H 14 #include "ThePEG/MatrixElement/MEBase.h" 15 #include "ThePEG/Handlers/StdDependentXComb.fh" 16 #include "ThePEG/Cuts/Cuts.fh" 70 virtual double me2()
const {
return head()->me2(); }
76 virtual Energy2
scale()
const {
return head()->scale(); }
83 virtual double alphaS()
const {
return head()->alphaS(); }
217 return head()->diagrams(dv);
235 virtual void setXComb(tStdXCombPtr);
290 const PartonPairVec& allPBins)
const;
335 tMEPtr depME)
const = 0;
457 static string className() {
return "ThePEG::MEGroup"; }
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
map< tMEPtr, int > theNDimMap
Offsets to access additional random numbers required by the dependent matrix elements.
virtual DiagramIndex diagram(const DiagramVector &dv) const
Select a diagram.
virtual void clearKinematics()
Clear the information previously provided by a call to setKinematics(...).
virtual const ColourLines & selectColourGeometry(tcDiagPtr diag) const
Select a ColpurLines geometry.
virtual Energy2 scale() const
Return the scale associated with the phase space point provided by the last call to setKinematics()...
virtual void setXComb(tStdXCombPtr)
Set the XComb object to be used in the next call to generateKinematics() and dSigHatDR().
virtual bool havePDFWeight2() const
Return true, if this matrix element provides the PDF weight for the second incoming parton itself...
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
virtual bool mcSumDependent() const
Return true for MC summation of dependent matrix elements, if feasible.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
A concreate implementation of ClassDescriptionBase describing an abstract class with persistent data...
virtual MEBase::DiagramVector dependentDiagrams(const cPDVector &proc, tMEPtr depME) const =0
Given a process from the head matrix element, return a list of diagrams which should be considered fo...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
tMEPtr head() const
Return the head matrix element.
Rebinder is a class associating pairs of pointers to objects.
virtual void lastEventStatistics()
Collect information on the last evaluated phasespace point for verification or debugging purposes...
virtual bool wantCMS() const
Return true, if this matrix element expects the incoming partons in their center-of-mass system...
tStdDependentXCombPtr theLastDependentXComb
A pointer to the dependent xcomb object selected if mcSumDependent returned true. ...
This is the main namespace within which all identifiers in ThePEG are declared.
static void Init()
Standard Init function used to initialize the interfaces.
virtual bool haveX1X2() const
Return true, if this matrix element will generate momenta for the incoming partons itself...
void useDiagrams(tcMEPtr other) const
Initialize the diagrams from another MEBase object.
A SubProcess object represents a hard sub-process in a collision.
void head(tMEPtr me)
Set the head matrix element.
MEPtr theHead
The head matrix element.
MEVector & dependent()
Access the dependent matrix elements.
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
virtual bool subProcessGroups() const
Return true, if SubProcessGroups should be setup from this MEGroup.
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
void lastDependentXComb(tStdDependentXCombPtr xc)
Set a pointer to the dependent xcomb object selected if mcSumDependent returned true.
virtual void generateSubCollision(SubProcess &sub)
Comlete a SubProcess object using the internal degrees of freedom generated in the last generateKinem...
virtual double alphaEM() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval ]0...
const MEVector & dependent() const
Visit the dependent matrix elements.
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
virtual bool uniformAdditional() const =0
Return true, if the same additional random numbers should be presented to any of the dependent matrix...
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
int theNDim
The total number of random numbers required.
MEVector theDependent
The dependent matrix elements.
virtual ~MEGroup()
Destructor.
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
Selector is a templated class for storing objects associated with probabilities in a way such that...
virtual bool havePDFWeight1() const
Return true, if this matrix element provides the PDF weight for the first incoming parton itself...
vector< DiagPtr > DiagramVector
A vector of pointers to DiagramBase objects.
The default concrete implementation of ClassTraitsBase.
MEGroup()
Default constructor.
static AbstractClassDescription< MEGroup > initMEGroup
Describe a class with persistent data.
This template class allows the compiler to check calculations with physical quantities for dimensiona...
The MEBase class is the base class of all objects representing hard matrix elements in ThePEG...
The MEGroup class represents a 'head' matrix element in association with a group of dependent matrix ...
tStdDependentXCombPtr lastDependentXComb() const
Return a pointer to the dependent xcomb object selected if mcSumDependent returned true...
The ColourLines class defines the colour flow in a SubProcess.
DiagramVector::size_type DiagramIndex
The size_type used in the DiagramVector.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual double me2() const
Return the matrix element for the kinematical configuation previously provided by the last call to se...
vector< IBPtr > IVector
A vector of pointers to InterfacedBase objects.
virtual double alphaS() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
virtual void flushCaches()
Inform this matrix element that a new phase space point is about to be generated, so all caches shoul...
virtual bool noMirror() const
Return true, if this matrix element does not want to make use of mirroring processes; in this case al...
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
BaseClassTraits describes the base classes of the templated class.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
With the information previously supplied with the setKinematics(...) method, a derived class may opti...
virtual void constructVertex(tSubProPtr sub)
construct the spin information for the interaction
StdDependentXCombPtr makeDependentXComb(tStdXCombPtr xcHead, const cPDVector &proc, tMEPtr depME, const PartonPairVec &allPBins) const
Create an StdDependentXComb object to be used for the given process steered bythe head object and dep...
MEGroup & operator=(const MEGroup &)
Private and non-existent assignment operator.
virtual bool keepRandomNumbers() const
Return true, if the XComb steering this matrix element should keep track of the random numbers used t...
int dependentOffset(tMEPtr dep) const
Return the random number offset to access the random numbers provided for the given matrix element to...
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...