thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
StdXCombGroup.h
1// -*- C++ -*-
2//
3// StdXCombGroup.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5// Copyright (C) 2009-2019 Simon Platzer
6//
7// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
8// Please respect the MCnet academic guidelines, see GUIDELINES for details.
9//
10#ifndef ThePEG_StdXCombGroup_H
11#define ThePEG_StdXCombGroup_H
12// This is the declaration of the StdXCombGroup class.
13
14#include "StandardXComb.h"
15#include "StdXCombGroup.fh"
16#include "ThePEG/MatrixElement/MEGroup.fh"
17
18namespace ThePEG {
19
27
29 friend class MEBase;
30
31public:
32
38 StdXCombGroup(Energy newMaxEnergy, const cPDPair & inc,
39 tEHPtr newEventHandler,tSubHdlPtr newSubProcessHandler,
40 tPExtrPtr newExtractor, tCascHdlPtr newCKKW,
41 const PBPair & newPartonBins, tCutsPtr newCuts, tMEGroupPtr newME,
42 const DiagramVector & newDiagrams, bool mir,
43 tStdXCombPtr newHead = tStdXCombPtr());
44
49
53 virtual ~StdXCombGroup();
54
55public:
56
60 virtual void clean();
61
66 virtual int nDim() const;
67
73 virtual CrossSection dSigDR(const pair<double,double> ll, int nr, const double * r);
74
79
83 const vector<StdXCombPtr>& dependent() const { return theDependent; }
84
89 tcMEGroupPtr meGroup() const { return theMEGroup; }
90
94 void build(const PartonPairVec& allPBins);
95
100
105 virtual void newSubProcess(bool);
106
111
112public:
113
121
127 void persistentInput(PersistentIStream & is, int version);
129
133 static void Init();
134
135private:
136
140 MEGroupPtr theMEGroup;
141
145 vector<StdXCombPtr> theDependent;
146
151
152private:
153
158
163
164};
165
172template <>
175 typedef StandardXComb NthBase;
176};
177
182template <>
183struct ClassTraits<StdXCombGroup>:
184 public ClassTraitsBase<StdXCombGroup> {
186 static string className() { return "ThePEG::StdXCombGroup"; }
187};
188
191}
192
193#endif /* ThePEG_StdXCombGroup_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The MEBase class is the base class of all objects representing hard matrix elements in ThePEG.
Definition: MEBase.h:72
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
The StandardXComb class inherits from the more general XComb class which stores all information about...
Definition: StandardXComb.h:53
MEBase::DiagramVector DiagramVector
A vector of DiagramBase objects.
Definition: StandardXComb.h:58
The StdXCombGroup class represents a 'head' XComb object in association with a group of dependent XCo...
Definition: StdXCombGroup.h:26
CrossSection lastHeadCrossSection() const
Return the cross section calculated from the head matrix element.
Definition: StdXCombGroup.h:78
virtual int nDim() const
The number of dimensions of the phase space used to generate this process.
void build(const PartonPairVec &allPBins)
Initialize this XComb group.
CrossSection theLastHeadCrossSection
The cross section calculated from the head matrix element.
static ClassDescription< StdXCombGroup > initStdXCombGroup
Describe a concrete class with persistent data.
vector< StdXCombPtr > theDependent
The dependent XComb objects.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
MEGroupPtr theMEGroup
The MEGroup object.
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...
const vector< StdXCombPtr > & dependent() const
Visit the dependent XComb objects.
Definition: StdXCombGroup.h:83
virtual void newSubProcess(bool)
Construct the corresponding SubProcess object if it hasn't been done before.
virtual ~StdXCombGroup()
Destructor.
virtual tSubProPtr construct()
Construct a sub-process object from the information available.
tcMEGroupPtr meGroup() const
Return the matrix element group steered by this XComb group.
Definition: StdXCombGroup.h:89
static void Init()
Standard Init function used to initialize the interface.
void lastHeadCrossSection(CrossSection xs)
Set the cross section calculated from the head matrix element.
StdXCombGroup & operator=(const StdXCombGroup &)=delete
Private and non-existent assignment operator.
StdXCombGroup()
Default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void clean()
Reset all saved data about last generated phasespace point;.
StdXCombGroup(Energy newMaxEnergy, const cPDPair &inc, tEHPtr newEventHandler, tSubHdlPtr newSubProcessHandler, tPExtrPtr newExtractor, tCascHdlPtr newCKKW, const PBPair &newPartonBins, tCutsPtr newCuts, tMEGroupPtr newME, const DiagramVector &newDiagrams, bool mir, tStdXCombPtr newHead=tStdXCombPtr())
Standard constructor.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
pair< cPDPtr, cPDPtr > cPDPair
A pair of pointers to const ParticleData objects.
Definition: Containers.h:118
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66