9 #ifndef ThePEG_Tree2toNDiagram_H
10 #define ThePEG_Tree2toNDiagram_H
13 #include "ThePEG/MatrixElement/DiagramBase.h"
14 #include "ThePEG/MatrixElement/ColourLines.h"
15 #include "ThePEG/Handlers/StandardXComb.fh"
16 #include "Tree2toNDiagram.xh"
100 if ( o < 0 )
check();
210 virtual bool isSame(tcDiagPtr)
const;
217 virtual bool isSame(tcDiagPtr, map<int,int>&)
const;
229 int start=0,
int startCmp=0)
const;
325 struct BaseClassTrait<Tree2toNDiagram,1>:
public ClassTraitsType {
335 struct ClassTraits<Tree2toNDiagram>:
public ClassTraitsBase<Tree2toNDiagram> {
337 static string className() {
return "ThePEG::Tree2toNDiagram"; }
pair< tcPDPtr, tcPDPtr > tcPDPair
A pair of transient pointers to const ParticleData objects.
Tree2toNDiagram & add(tcPDPtr)
Add a parton to this diagram.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
multiset< tcPDPtr > PDMSet
A multi-set of particle data objects.
cPDVector thePartons
The complete vector of partons in this tree diagram.
vector< int > theParents
The index of the parents.
const cPDVector & allPartons() const
Return the complete vector of partons in this tree diagram.
The Tree2toNDiagram class inherits from DiagramBase and represents a Feynman tree diagram...
size_type theNSpace
The number of space-like partons.
bool equals(Ptr< Tree2toNDiagram >::tcptr, int start=0, int startCmp=0) const
Check for equality.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
vector< tcPDPtr > tcPDVector
A vector of transient pointers to const ParticleData objects.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
int mergeEmission(int emitter, int id, map< int, int > &remap)
Merge the two external partons referred to by indices as in the partons() vector returned by DiagramB...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
ConstRCPtr is a reference counted (smart) const pointer.
static ClassDescription< Tree2toNDiagram > initTree2toNDiagram
Describe a concrete class with persistent data.
virtual bool isSame(tcDiagPtr) const
Compare this diagram's topology to another one.
void check()
Check the consistency of this tree diagram.
This is the main namespace within which all identifiers in ThePEG are declared.
int nSpace() const
Return the number of space-like partons.
Tree2toNDiagram & operator,(int o)
If less than zero indicate that this tree is competed.
pair< int, int > children(int) const
Return the indices of the children of the given parton.
void addSpacelike(tcPDPtr pd)
Add a space-like parton to this diagram.
Tree2toNDiagram & operator,(tcPDPtr pd)
Add a space- or time-like parton.
The StandardXComb class inherits from the more general XComb class which stores all information about...
int diagramId(int id) const
Translate a parton's id in a vector of incoming followed by outgoing partons to a parton's id in the ...
int theNOutgoing
The number of outgoing partons.
Tree2toNDiagram()
Default constructor.
tcPDVector external() const
Return the incoming followed by the outgoing parton types of this tree diagram.
Tree2toNDiagram(int space)
The standard constructor giving the number of space-like propagators.
RCPtr is a reference counted (smart) pointer.
virtual tPVector construct(SubProPtr sb, const StandardXComb &, const ColourLines &) const
Construct a sub process corresponding to this diagram.
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
int nextOrig
The parent of the next added parton.
void addTimelike(tcPDPtr)
Add a time-like parton to this diagram.
int nOutgoing() const
Return the number of outgoing partons.
cPDVector::size_type size_type
The integer type reresenting vector sizes.
Tree2toNDiagram & operator,(PDPtr pd)
Add a space- or time-like parton.
static string className()
Return the name of class T.
DiagramBase is the base class of all classes which describes Feynman diagrams which can be generated ...
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
tcPDVector outgoing() const
Return the outgoing parton types of this tree diagram.
The ColourLines class defines the colour flow in a SubProcess.
Tree2toNDiagram & operator=(const Tree2toNDiagram &)
Private and non-existent assignment operator.
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
int parent(int i) const
Return the index of the parent of the given parton.
Tree2toNDiagram & operator,(cPDPtr pd)
Add a space- or time-like parton.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
~Tree2toNDiagram()
Destructor.
tcPDPair incoming() const
Return the types of the incoming partons.
Tree2toNDiagram & operator,(tPDPtr pd)
Add a space- or time-like parton.
int externalId(int id) const
Translate a parton's id in the diagram to a parton's id in a vector of incoming followed by outgoing ...