9 #ifndef ThePEG_MEBase_H 10 #define ThePEG_MEBase_H 13 #include "ThePEG/Handlers/HandlerBase.h" 14 #include "ThePEG/EventRecord/SubProcess.h" 15 #include "ThePEG/MatrixElement/DiagramBase.h" 16 #include "ThePEG/MatrixElement/ColourLines.h" 17 #include "ThePEG/MatrixElement/Amplitude.h" 18 #include "ThePEG/Handlers/LastXCombInfo.h" 19 #include "ThePEG/Handlers/StandardXComb.fh" 20 #include "ReweightBase.h" 114 virtual double me2()
const = 0;
120 virtual Energy2
scale()
const = 0;
127 virtual double alphaS()
const;
134 virtual double alphaEM()
const;
160 virtual int nDim()
const;
196 virtual bool apply()
const {
return true; }
302 virtual DiagramIndex
diagram(
const DiagramVector &)
const;
375 virtual void setXComb(tStdXCombPtr);
488 void use(tcMEPtr other);
581 static string className() {
return "ThePEG::MEBase"; }
588 #include "ThePEG/Handlers/StandardXComb.h" bool reweighted() const
Return true if this matrix element has associated (p)reWeight objects assigned.
MEBase & operator=(const MEBase &)
Private and non-existent assignment operator.
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
virtual bool headCuts() const
If this is a dependent matrix element in a ME group, return true, if cuts should be inherited from th...
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual void constructVertex(tSubProPtr sub)
construct the spin information for the interaction
const DiagramVector & diagrams() const
Return all possible diagrams.
double preweight() const
Return the factor with which this matrix element was last pre-weighted.
static void Init()
Standard Init function used to initialize the interfaces.
Energy2 sHat() const
Return the last set invariant mass squared.
virtual Selector< DiagramIndex > diagrams(const DiagramVector &) const
With the information previously supplied with the setKinematics(...) method, a derived class may opti...
void addPreweighter(tReweightPtr rw)
Add objects to the list of preweighters.
ClassTraitsType is an empty, non-polymorphic, base class.
virtual Energy2 scale() const =0
Return the scale associated with the phase space point provided by the last call to setKinematics()...
ReweightVector preweights
The preweight objects modifying this matrix element.
virtual void clearKinematics()
Clear the information previously provided by a call to setKinematics(...).
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...
LastXCombInfo is a templated class giving easy access to the information in an XComb object...
double lastME2() const
Return the matrix element squared as calculated for the last phase space point.
virtual bool generateKinematics(const double *r)=0
Generate internal degrees of freedom given nDim() uniform random numbers in the interval ]0...
virtual void flushCaches()
Inform this matrix element that a new phase space point is about to be generated, so all caches shoul...
void amplitude(Ptr< Amplitude >::pointer amp)
Set the amplitude associated with this matrix element.
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const =0
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
virtual bool wantCMS() const
Return true, if this matrix element expects the incoming partons in their center-of-mass system...
virtual unsigned int orderInAlphaEW() const =0
Return the order in in which this matrix element is given.
void addReweighter(tReweightPtr rw)
Add objects to the list of reweighters.
virtual bool ignoreCuts() const
If this is a dependent matrix element in a ME group, return true, if cuts should be ignored...
void use(tcMEPtr other)
Initialize all member variables from another MEBase object.
This is the main namespace within which all identifiers in ThePEG are declared.
Ptr< Amplitude >::pointer amplitude() const
Return the amplitude associated with this matrix element.
void add(DiagPtr dp) const
To be used by sub classes in the getDiagrams() method to add included diagrams.
vector< double > DVector
A vector of doubles.
virtual void setVetoScales(tSubProPtr) const
Set veto scales on the particles at the given SubProcess which has been generated using this matrix e...
pair< tPPtr, tPPtr > tPPair
A pair of transient pointers to const Particle objects.
virtual double alphaEM() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
virtual bool keepRandomNumbers() const
Return true, if the XComb steering this matrix element should keep track of the random numbers used t...
const DVector & meInfo() const
Retrieve information obtained in the calculation of the cross section to be used later when selecting...
virtual double alphaS() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
void useDiagrams(tcMEPtr other) const
Initialize the diagrams from another MEBase object.
double preWeight() const
With the information previously supplied with the setKinematics(...) methods, return the comined effe...
A SubProcess object represents a hard sub-process in a collision.
int minMultCKKW() const
If this matrix element is to be used together with others for CKKW reweighting and veto...
vector< ReweightPtr > ReweightVector
A vector of pointers to ReweightBase objects.
ReweightVector reweights
The reweight objects modifying this matrix element.
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...
double jacobian() const
Get the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
virtual void setXComb(tStdXCombPtr)
Set the XComb object to be used in the next call to generateKinematics() and dSigHatDR().
virtual unsigned int orderInAlphaS() const =0
Return the order in in which this matrix element is given.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual ~MEBase()
Destructor.
RCPtr is a reference counted (smart) pointer.
static AbstractClassDescription< MEBase > initMEBase
Describe an abstract base class with persistent data.
virtual bool havePDFWeight2() const
Return true, if this matrix element provides the PDF weight for the second incoming parton itself...
virtual void getDiagrams() const =0
Add all possible diagrams with the add() function.
int theMinMultCKKW
If this matrix element is to be used together with others for CKKW reweighting and veto...
virtual bool noMirror() const
Return true, if this matrix element does not want to make use of mirroring processes; in this case al...
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Ptr< Amplitude >::pointer theAmplitude
The amplitude associated with this matrix element.
Selector is a templated class for storing objects associated with probabilities in a way such that...
vector< Lorentz5Momentum > & meMomenta()
Access the momenta set by the last call to generateKinematics().
double lastPreweight
The factor with which this matrix element was last pre-weighted.
virtual const ColourLines & selectColourGeometry(tcDiagPtr diag) const
Select a ColpurLines geometry.
vector< DiagPtr > DiagramVector
A vector of pointers to DiagramBase objects.
int maxMultCKKW() const
If this matrix element is to be used together with others for CKKW reweighting and veto...
The default concrete implementation of ClassTraitsBase.
double reWeight() const
With the information previously supplied with the setKinematics(...) methods, return the combined eff...
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...
virtual CrossSection dSigHatDR() const =0
Return the matrix element squared differential in the variables given by the last call to generateKin...
The ColourLines class defines the colour flow in a SubProcess.
DiagramVector::size_type DiagramIndex
The size_type used in the DiagramVector.
MEBase()
Default constructor.
DiagramVector theDiagrams
The diagrams included for this matrix element.
double lastMEPDFWeight() const
Return the PDF weight as calculated for the last phase space point, if the matrix element does supply...
vector< PPtr > PVector
A vector of pointers to Particle objects.
virtual DiagramIndex diagram(const DiagramVector &) const
Select a diagram.
BaseClassTraits describes the base classes of the templated class.
int theMaxMultCKKW
If this matrix element is to be used together with others for CKKW reweighting and veto...
virtual double me2() const =0
Return the matrix element for the kinematical configuation previously provided by the last call to se...
Energy2 theLastSHat
The last set invariant mass squared.
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...
CrossSection lastMECrossSection() const
Return the partonic cross section as calculated for the last phase space point.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
virtual void generateSubCollision(SubProcess &)
Comlete a SubProcess object using the internal degrees of freedom generated in the last generateKinem...