ThePEG 2.3.0
|
The Tree2toNDiagram class inherits from DiagramBase and represents a Feynman tree diagram. More...
#include <Tree2toNDiagram.h>
Public Types | |
typedef cPDVector::size_type | size_type |
The integer type reresenting vector sizes. | |
typedef multiset< tcPDPtr > | PDMSet |
A multi-set of particle data objects. | |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
The integer type used for counting. | |
Functions used by the persistent I/O system. | |
size_type | theNSpace |
The number of space-like partons. | |
int | theNOutgoing |
The number of outgoing partons. | |
int | nextOrig |
The parent of the next added parton. | |
cPDVector | thePartons |
The complete vector of partons in this tree diagram. | |
vector< int > | theParents |
The index of the parents. | |
static ClassDescription< Tree2toNDiagram > | initTree2toNDiagram |
Describe a concrete class with persistent data. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
Tree2toNDiagram & | operator= (const Tree2toNDiagram &)=delete |
Private and non-existent assignment operator. | |
Standard constructors and destructors. | |
Tree2toNDiagram () | |
Default constructor. | |
~Tree2toNDiagram () | |
Destructor. | |
Tree2toNDiagram (int space) | |
The standard constructor giving the number of space-like propagators. | |
Tree2toNDiagram & | operator, (int o) |
If less than zero indicate that this tree is competed. | |
Tree2toNDiagram & | operator, (PDPtr pd) |
Add a space- or time-like parton. | |
Tree2toNDiagram & | operator, (cPDPtr pd) |
Add a space- or time-like parton. | |
Tree2toNDiagram & | operator, (tPDPtr pd) |
Add a space- or time-like parton. | |
Tree2toNDiagram & | operator, (tcPDPtr pd) |
Add a space- or time-like parton. | |
virtual tPVector | construct (SubProPtr sb, const StandardXComb &, const ColourLines &) const |
Construct a sub process corresponding to this diagram. | |
tcPDPair | incoming () const |
Return the types of the incoming partons. | |
const cPDVector & | allPartons () const |
Return the complete vector of partons in this tree diagram. | |
tcPDVector | outgoing () const |
Return the outgoing parton types of this tree diagram. | |
tcPDVector | external () const |
Return the incoming followed by the outgoing parton types of this tree diagram. | |
int | parent (int i) const |
Return the index of the parent of the given parton. | |
pair< int, int > | children (int) const |
Return the indices of the children of the given parton. | |
int | nSpace () const |
Return the number of space-like partons. | |
void | resize (size_type nSpace) |
Extend this diagram to accomodate the given number of space-like lines. | |
int | nOutgoing () const |
Return the number of outgoing partons. | |
virtual bool | isSame (tcDiagPtr) const |
Compare this diagram's topology to another one. | |
virtual bool | isSame (tcDiagPtr, map< int, int > &) const |
Compare this diagram's topology to another one modulo permutations of external legs; provide a map of this diagram's external legs to the other diagram's external legs. | |
bool | equals (Ptr< Tree2toNDiagram >::tcptr, int start=0, int startCmp=0) const |
Check for equality. | |
bool | equals (Ptr< Tree2toNDiagram >::tcptr, map< int, int > &, int start=0, int startCmp=0) const |
Check for equality modulo permutations of external legs. | |
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 DiagramBase. | |
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 partons. | |
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 diagram. | |
void | check () |
Check the consistency of this tree diagram. | |
void | addSpacelike (tcPDPtr pd) |
Add a space-like parton to this diagram. | |
void | addTimelike (tcPDPtr) |
Add a time-like parton to this diagram. | |
void | addTimelike (tcPDPtr, size_type origin) |
Add a time-like parton to this diagram indicating its origin. | |
Tree2toNDiagram & | add (tcPDPtr) |
Add a parton to this diagram. | |
Additional Inherited Members | |
Public Member Functions inherited from ThePEG::DiagramBase | |
DiagramBase () | |
Default constructor. | |
virtual | ~DiagramBase () |
Destructor. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
int | nIncoming () const |
Return the number of incoming partons for this diagram. | |
const cPDVector & | partons () const |
Return the incoming, followed by the outgoing partons for this diagram. | |
int | id () const |
Return the id number of this diagram. | |
string | getTag () const |
Generate a tag which is unique for diagrams with the same type of incoming and outgoing partons. | |
Public Member Functions inherited from ThePEG::Base | |
virtual | ~Base () |
The virtual destructor. | |
void | debug () const |
Print out debugging information for this object on std::cerr. | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. | |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Return the reference count. | |
Static Public Member Functions inherited from ThePEG::DiagramBase | |
static void | Init () |
Standard Init function. | |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
The unique ID. | |
Protected Member Functions inherited from ThePEG::DiagramBase | |
void | partons (int ninc, const cPDVector &parts, int newId) |
To be used by sub classes to report the incoming and outgoing particle types, and an id number. | |
void | diagramInfo (int ninc, int newId) |
Complete the missing information, provided partons() has already been filled. | |
bool | done () const |
Returns true if the partons(int, const cPDVector &, int) function has been called properly from the sub class. | |
void | addParton (tcPDPtr pd) |
Add to the partons. | |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted () | |
Default constructor. | |
ReferenceCounted (const ReferenceCounted &) | |
Copy-constructor. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
The Tree2toNDiagram class inherits from DiagramBase and represents a Feynman tree diagram.
It is represented by a chain of \(n\) space-like propagators, where one incoming particle has index 1 and other incoming one index \(n\). For adiagram with in total \(m\) propagators the timelike propagators are then numbered \(n+1\) through \(m\). The vector of type of the propagators are accessible from the partons() method, and the parents of propagator \(i\) form the parents(int) method. The parent of a space-like propagator is simply the previous space-like one. The parent of a time-like propagator is either a previous time-like propagator or the first of the connecting space-like ones.
A Tree2toNDiagram is created by first constructing it with an integer corresponding to the number of space-like propagators. Then the comma operator is used to add first the particle data objects corresponding to the space-like propagators, then the time-like ones preceeded with the index of their parents. To complete a Tree2toNDiagram, a negative integer is added with the comma operator. This number is then used as an identifier. Note that the parent must have been added before a child is. As an example, the s-channel diagram \(e \nu_e \rightarrow u \bar{d}\) is created thus:
Tree2toNDiagram(2),eplus,nue,1,Wplus,3,u,3,dbar
.
Similarly the t-channel diagram \(e d \rightarrow \nu_e u\) is created thus:
Tree2toNDiagram(3),eplus,Wplus,d,1,nu,2,u
. Note that only two chidren are allowed per propagator. This means that four-propagator vertices are not allowed, but must be represented by two three-propagator ones.
Please note that for technical reasons, when specifying the diagrams with the comma operator the numbering of the particles is \(1\ldots m\), while the internal representation (in the parent(int) and children(int) function) is using \(0\ldots m-1\)
Definition at line 60 of file Tree2toNDiagram.h.
typedef multiset<tcPDPtr> ThePEG::Tree2toNDiagram::PDMSet |
A multi-set of particle data objects.
Definition at line 67 of file Tree2toNDiagram.h.
typedef cPDVector::size_type ThePEG::Tree2toNDiagram::size_type |
The integer type reresenting vector sizes.
Definition at line 65 of file Tree2toNDiagram.h.
|
inline |
Default constructor.
Definition at line 76 of file Tree2toNDiagram.h.
|
inlineexplicit |
The standard constructor giving the number of space-like propagators.
Definition at line 88 of file Tree2toNDiagram.h.
|
inlineprivate |
Add a space-like parton to this diagram.
Definition at line 192 of file Tree2toNDiagram.h.
References theNSpace, theParents, and thePartons.
|
inline |
Return the complete vector of partons in this tree diagram.
Definition at line 142 of file Tree2toNDiagram.h.
References thePartons.
|
virtual |
Construct a sub process corresponding to this diagram.
The incoming partons, and the momenta of the outgoing ones, are given by the XComb object. All parent/children pointers should be set correspondingly and the partons should be colour connected as specified by the ColourLines object.
Implements ThePEG::DiagramBase.
|
virtual |
Compare this diagram's topology to another one.
Reimplemented from ThePEG::DiagramBase.
int ThePEG::Tree2toNDiagram::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 DiagramBase.
If both are timelike, the parent will become the new outgoing parton, if one is space- and the other timelike, the spacelike child will become the new incoming parton. Return the position of the merged parton in the resulting diagram or -1 if the merging is not possible. In addition, return a mapping of a certain (non-merged) external leg id to the id in the merged diagram.
|
inline |
Return the number of outgoing partons.
Definition at line 180 of file Tree2toNDiagram.h.
References theNOutgoing.
|
inline |
Return the number of space-like partons.
Definition at line 168 of file Tree2toNDiagram.h.
References theNSpace.
Referenced by resize().
|
inline |
Add a space- or time-like parton.
Definition at line 112 of file Tree2toNDiagram.h.
References add().
|
inline |
If less than zero indicate that this tree is competed.
Otherwise signal the parent of the next added parton.
Definition at line 98 of file Tree2toNDiagram.h.
|
inline |
Add a space- or time-like parton.
Definition at line 107 of file Tree2toNDiagram.h.
References add().
|
inline |
Add a space- or time-like parton.
Definition at line 122 of file Tree2toNDiagram.h.
References add().
|
inline |
Add a space- or time-like parton.
Definition at line 117 of file Tree2toNDiagram.h.
References add().
|
inline |
Return the index of the parent of the given parton.
Definition at line 158 of file Tree2toNDiagram.h.
References theParents.
void ThePEG::Tree2toNDiagram::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void ThePEG::Tree2toNDiagram::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inline |
Extend this diagram to accomodate the given number of space-like lines.
Definition at line 173 of file Tree2toNDiagram.h.
|
staticprivate |
Describe a concrete class with persistent data.
Definition at line 312 of file Tree2toNDiagram.h.
|
private |
The parent of the next added parton.
Definition at line 295 of file Tree2toNDiagram.h.
Referenced by operator,().
|
private |
The number of outgoing partons.
Definition at line 290 of file Tree2toNDiagram.h.
Referenced by nOutgoing().
|
private |
The number of space-like partons.
Definition at line 285 of file Tree2toNDiagram.h.
Referenced by addSpacelike(), nSpace(), and resize().
|
private |
The index of the parents.
Definition at line 305 of file Tree2toNDiagram.h.
Referenced by addSpacelike(), and parent().
|
private |
The complete vector of partons in this tree diagram.
Definition at line 300 of file Tree2toNDiagram.h.
Referenced by addSpacelike(), and allPartons().