thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
ThePEG::Tree2toNDiagram Class Reference

The Tree2toNDiagram class inherits from DiagramBase and represents a Feynman tree diagram. More...

#include <Tree2toNDiagram.h>

Inheritance diagram for ThePEG::Tree2toNDiagram:

Public Types

typedef cPDVector::size_type size_type
 The integer type reresenting vector sizes. More...
 
typedef multiset< tcPDPtrPDMSet
 A multi-set of particle data objects. More...
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 The integer type used for counting.
 

Public Member Functions

Tree2toNDiagramoperator, (int o)
 If less than zero indicate that this tree is competed. More...
 
Tree2toNDiagramoperator, (PDPtr pd)
 Add a space- or time-like parton.
 
Tree2toNDiagramoperator, (cPDPtr pd)
 Add a space- or time-like parton.
 
Tree2toNDiagramoperator, (tPDPtr pd)
 Add a space- or time-like parton.
 
Tree2toNDiagramoperator, (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. More...
 
tcPDPair incoming () const
 Return the types of the incoming partons.
 
const cPDVectorallPartons () 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. More...
 
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.
 
Standard constructors and destructors.
 Tree2toNDiagram ()
 Default constructor.
 
 ~Tree2toNDiagram ()
 Destructor.
 
 Tree2toNDiagram (int space)
 The standard constructor giving the number of space-like propagators.
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::DiagramBase
 DiagramBase ()
 Default constructor.
 
virtual ~DiagramBase ()
 Destructor.
 
int nIncoming () const
 Return the number of incoming partons for this diagram. More...
 
const cPDVectorpartons () 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.
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- 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. More...
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr. More...
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 Return the reference count.
 

Private Member Functions

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.
 
Tree2toNDiagramadd (tcPDPtr)
 Add a parton to this diagram.
 
Tree2toNDiagramoperator= (const Tree2toNDiagram &)=delete
 Private and non-existent assignment operator.
 

Private Attributes

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 Private Attributes

static ClassDescription< Tree2toNDiagraminitTree2toNDiagram
 Describe a concrete class with persistent data.
 

Additional Inherited Members

- 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. More...
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 The unique ID. More...
 
- 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. More...
 
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.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 

Detailed Description

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$

See also
DiagramBase
ColourLines

Definition at line 60 of file Tree2toNDiagram.h.

Member Typedef Documentation

◆ PDMSet

A multi-set of particle data objects.

Definition at line 67 of file Tree2toNDiagram.h.

◆ size_type

typedef cPDVector::size_type ThePEG::Tree2toNDiagram::size_type

The integer type reresenting vector sizes.

Definition at line 65 of file Tree2toNDiagram.h.

Member Function Documentation

◆ construct()

virtual tPVector ThePEG::Tree2toNDiagram::construct ( SubProPtr  sb,
const StandardXComb ,
const ColourLines  
) const
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.

Referenced by operator,().

◆ mergeEmission()

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.

Referenced by addSpacelike().

◆ operator,()

Tree2toNDiagram& ThePEG::Tree2toNDiagram::operator, ( int  o)
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.

References check(), and nextOrig.

◆ persistentInput()

void ThePEG::Tree2toNDiagram::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

Referenced by addSpacelike().

◆ persistentOutput()

void ThePEG::Tree2toNDiagram::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

Referenced by addSpacelike().


The documentation for this class was generated from the following file: