10 #ifndef ThePEG_StandardXComb_H 11 #define ThePEG_StandardXComb_H 14 #include "ThePEG/Config/ThePEG.h" 15 #include "SubProcessHandler.fh" 16 #include "ThePEG/PDF/PartonExtractor.fh" 17 #include "ThePEG/PDF/PartonBin.h" 18 #include "ThePEG/PDF/PartonBinInstance.h" 19 #include "ThePEG/Utilities/VSelector.h" 20 #include "ThePEG/Utilities/ClassDescription.h" 21 #include "ThePEG/Utilities/Maths.h" 22 #include "ThePEG/Utilities/XSecStat.h" 23 #include "ThePEG/EventRecord/Particle.h" 24 #include "ThePEG/MatrixElement/MEBase.h" 25 #include "ThePEG/Handlers/XComb.h" 26 #include "ThePEG/Handlers/StandardEventHandler.h" 27 #include "ThePEG/Handlers/SubProcessHandler.fh" 28 #include "StandardXComb.fh" 74 tEHPtr newEventHandler,tSubHdlPtr newSubProcessHandler,
76 const PBPair & newPartonBins, tCutsPtr newCuts, tMEPtr newME,
77 const DiagramVector & newDiagrams,
bool mir,
78 tStdXCombPtr newHead = tStdXCombPtr());
185 void reweight(
double oldWeight,
double newWeight) {
529 typedef XComb NthBase;
540 static string className() {
return "ThePEG::StandardXComb"; }
double theLastME2
The matrix element squared as calculated for the last phase space point.
CrossSection theLastMECrossSection
The partonic cross section as calculated for the last phase space point.
void reset()
Reset the statistics.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
void select(double weight)
An event of the corresponding class has been attempted.
int nDim() const
The number of dimensions of the phase space used to generate this process.
void reweight(double oldWeight, double newWeight)
Reweight a selected and accepted event.
const DVector & lastRandomNumbers() const
Return the random numbers used to generate the last phase space point, if the matrix element requeste...
CrossSection theLastCrossSection
The cross section calculated in the last call to dSigDR.
void lastMEPDFWeight(double v)
Set the PDF weight as calculated for the last phase space point, if the matrix element does supply PD...
double theLastMEPDFWeight
The PDF weight as calculated for the last phase space point, if the matrix element does supply PDF we...
CrossSection lastMECrossSection() const
Return the partonic cross section as calculated for the last phase space point.
ClassTraitsType is an empty, non-polymorphic, base class.
void accept()
An event of the corresponding class has been accepted.
StandardXComb & operator=(const StandardXComb &)
Private and non-existent assignment operator.
void head(tStdXCombPtr headXC)
Set the head XComb pointer.
pair< int, int > partonDims
The number of dimensions of the phase space used for each of the incoming partons.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
static ClassDescription< StandardXComb > initStandardXComb
Describe a concrete class with persistent data.
double lastME2() const
Return the matrix element squared as calculated for the last phase space point.
double theLastJacobian
Save the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
virtual void reset()
Reset statistics.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
virtual void newSubProcess(bool group=false)
Construct the corresponding SubProcess object if it hasn't been done before.
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
tStdXCombPtr head() const
Return a pointer to the head XComb this XComb depends on.
static void Init()
Standard Init function used to initialize the interface.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual ~StandardXComb()
Destructor.
bool willPassCuts() const
Return true, if the current configuration will pass the cuts.
This is the main namespace within which all identifiers in ThePEG are declared.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void reject(double weight=1.0)
Reject the current event assuming it was previously accepted.
DVector & lastRandomNumbers()
Access the random numbers used to generate the last phase space point, if the matrix element requeste...
void reject(double weight=1.0)
Reject the event which was last accepted with accept() or selected with select(double).
vector< double > DVector
A vector of doubles.
tStdXCombPtr theHead
A pointer to the head XComb this XComb depends on.
MEBase::DiagramIndex DiagramIndex
A vector of indices.
cPDVector theMEPartonData
The parton types to be used by the matrix element object, in the order specified by the TreeDiagram o...
DiagramIndex lastDiagramIndex() const
Return the index of the last selected diagram.
const DVector & meInfo() const
Get information saved by the matrix element in the calculation of the cross section to be used later ...
tcSubHdlPtr subProcessHandler() const
Return a pointer to the corresponding sub-process handler.
tSubHdlPtr theSubProcessHandler
The corresponding sub-process handler.
tMEPtr theME
The matrix element to be used.
The XComb class stores all information about the generation of a hard sub-proces for a given pair of ...
QTY< 0, 1, 0 >::Type Energy
Energy.
double jacobian() const
Get the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
vector< Lorentz5Momentum > & meMomenta()
Return the momenta of the partons to be used by the matrix element object, in the order specified by ...
MEBase::DiagramVector DiagramVector
A vector of DiagramBase objects.
tMEPtr matrixElement() const
The matrix element to be used.
virtual void accept()
Accept the current event assuming it was previously selcted.
const DiagramVector & diagrams() const
The diagrams used by the matrix element.
void reweight(double oldWeight, double newWeight)
Reweight a selected and accepted event.
int theNDim
The number of dimensions of the phase space used to generate this process.
The StandardXComb class inherits from the more general XComb class which stores all information about...
DVector theMEInfo
Information saved by the matrix element in the calculation of the cross section to be used later when...
virtual tSubProPtr construct()
Construct a sub-process object from the information available.
tcDiagPtr lastDiagram() const
Return the last selected diagram.
cPDVector & mePartonData()
Return the parton types to be used by the matrix element object, in the order specified by the TreeDi...
CrossSection lastCrossSection() const
Return the cross section calculated in the last call to dSigDR.
DiagramVector theDiagrams
The diagrams used by the matrix element.
virtual bool checkInit()
Try to determine if this subprocess is at all possible.
bool isMirror
True if the TreeDiagram's for this matrix element should in fact be mirrored before used to create an...
const vector< Lorentz5Momentum > & meMomenta() const
Return the momenta of the partons to be used by the matrix element object, in the order specified by ...
virtual CrossSection dSigDR(const pair< double, double > ll, int nr, const double *r)
Generate a phase space point from a vector r of nr numbers in the interval ]0,1[ and return the corre...
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
void lastPDFWeight(double w)
Set the PDF weight used in the last call to dSigDR.
vector< DiagPtr > DiagramVector
A vector of pointers to DiagramBase objects.
void lastDiagramIndex(DiagramIndex i)
Set the last selected diagram.
double lastPDFWeight() const
Return the PDF weight used in the last call to dSigDR.
virtual void select(double weight)
Select the current event.
virtual const XSecStat & stats() const
The statistics object for this XComb.
DVector theLastRandomNumbers
The random numbers used to generate the last phase space point, if the matrix element requested so...
The default concrete implementation of ClassTraitsBase.
XSecStat theStats
Statistics gathering for this XComb.
double theLastPDFWeight
The PDF weight used in the last call to dSigDR.
void meInfo(const DVector &info)
Set information saved by the matrix element in the calculation of the cross section to be used later ...
void lastMECrossSection(CrossSection v)
Set the partonic cross section as calculated for the last phase space point.
This template class allows the compiler to check calculations with physical quantities for dimensiona...
pair< cPDPtr, cPDPtr > cPDPair
A pair of pointers to const ParticleData objects.
The MEBase class is the base class of all objects representing hard matrix elements in ThePEG...
DiagramVector::size_type DiagramIndex
The size_type used in the DiagramVector.
double lastMEPDFWeight() const
Return the PDF weight as calculated for the last phase space point, if the matrix element does supply...
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
DiagramIndex theLastDiagramIndex
The last selected tree diagram.
void lastCrossSection(CrossSection s)
Set the cross section calculated in the last call to dSigDR.
BaseClassTraits describes the base classes of the templated class.
XSecStat is a concrete helper class used to collect statistics about the cross section for a specific...
bool mirror() const
True if the TreeDiagram's for this matrix element should in fact be mirrored before used to create an...
StandardXComb()
Default constructor.
vector< Lorentz5Momentum > theMEMomenta
The momenta of the partons to be used by the matrix element object, in the order specified by the Tre...
void jacobian(double j)
Set the last jacobian obtained when generating the kinematics for the call to dSigHatDR.
void lastME2(double v)
Set the matrix element squared as calculated for the last phase space point.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
const cPDVector & mePartonData() const
Return the parton types to be used by the matrix element object, in the order specified by the TreeDi...