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" 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()...
void add(DiagPtr dp) const
To be used by sub classes in the getDiagrams() method to add included diagrams.
double jacobian() const
Get the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
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
virtual Selector< DiagramIndex > diagrams(const DiagramVector &) const
With the information previously supplied with the setKinematics(...) method, a derived class may opti...
virtual DiagramIndex diagram(const DiagramVector &) const
Select a diagram.
int minMultCKKW() const
If this matrix element is to be used together with others for CKKW reweighting and veto...
virtual bool ignoreCuts() const
If this is a dependent matrix element in a ME group, return true, if cuts should be ignored...
static void Init()
Standard Init function used to initialize the interfaces.
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()...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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...
CrossSection lastMECrossSection() const
Return the partonic cross section as calculated for the last phase space point.
Energy2 sHat() const
Return the last set invariant mass squared.
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 useDiagrams(tcMEPtr other) const
Initialize the diagrams from another MEBase object.
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 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 const ColourLines & selectColourGeometry(tcDiagPtr diag) const
Select a ColpurLines geometry.
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.
virtual bool headCuts() const
If this is a dependent matrix element in a ME group, return true, if cuts should be inherited from th...
vector< double > DVector
A vector of doubles.
pair< tPPtr, tPPtr > tPPair
A pair of transient pointers to const Particle objects.
virtual void setVetoScales(tSubProPtr) const
Set veto scales on the particles at the given SubProcess which has been generated using this matrix e...
int maxMultCKKW() const
If this matrix element is to be used together with others for CKKW reweighting and veto...
A SubProcess object represents a hard sub-process in a collision.
double reWeight() const
With the information previously supplied with the setKinematics(...) methods, return the combined eff...
virtual bool noMirror() const
Return true, if this matrix element does not want to make use of mirroring processes; in this case al...
virtual bool wantCMS() const
Return true, if this matrix element expects the incoming partons in their center-of-mass system...
double preweight() const
Return the factor with which this matrix element was last pre-weighted.
Ptr< Amplitude >::pointer amplitude() const
Return the amplitude associated with 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< ReweightPtr > ReweightVector
A vector of pointers to ReweightBase objects.
ReweightVector reweights
The reweight objects modifying this matrix element.
virtual bool haveX1X2() const
Return true, if this matrix element will generate momenta for the incoming partons itself...
virtual void setXComb(tStdXCombPtr)
Set the XComb object to be used in the next call to generateKinematics() and dSigHatDR().
double lastME2() const
Return the matrix element squared as calculated for the last phase space point.
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.
const DiagramVector & diagrams() const
Return all possible diagrams.
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
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...
const DVector & meInfo() const
Retrieve information obtained in the calculation of the cross section to be used later when selecting...
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...
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
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...
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.
vector< DiagPtr > DiagramVector
A vector of pointers to DiagramBase objects.
The default concrete implementation of ClassTraitsBase.
virtual bool havePDFWeight1() const
Return true, if this matrix element provides the PDF weight for the first incoming parton itself...
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.
bool reweighted() const
Return true if this matrix element has associated (p)reWeight objects assigned.
vector< PPtr > PVector
A vector of pointers to Particle objects.
virtual double alphaS() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
BaseClassTraits describes the base classes of the templated class.
double preWeight() const
With the information previously supplied with the setKinematics(...) methods, return the comined effe...
virtual double alphaEM() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
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.
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...
virtual bool keepRandomNumbers() const
Return true, if the XComb steering this matrix element should keep track of the random numbers used t...