thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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.
 
typedef multiset< tcPDPtrPDMSet
 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< Tree2toNDiagraminitTree2toNDiagram
 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.
 
Tree2toNDiagramoperator= (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.
 
Tree2toNDiagramoperator, (int o)
 If less than zero indicate that this tree is competed.
 
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.
 
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.
 
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.
 
Tree2toNDiagramadd (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 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.
 
- 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.
 
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.

Constructor & Destructor Documentation

◆ Tree2toNDiagram() [1/2]

ThePEG::Tree2toNDiagram::Tree2toNDiagram ( )
inline

Default constructor.

Definition at line 76 of file Tree2toNDiagram.h.

◆ Tree2toNDiagram() [2/2]

ThePEG::Tree2toNDiagram::Tree2toNDiagram ( int  space)
inlineexplicit

The standard constructor giving the number of space-like propagators.

Definition at line 88 of file Tree2toNDiagram.h.

Member Function Documentation

◆ addSpacelike()

void ThePEG::Tree2toNDiagram::addSpacelike ( tcPDPtr  pd)
inlineprivate

Add a space-like parton to this diagram.

Definition at line 192 of file Tree2toNDiagram.h.

References theNSpace, theParents, and thePartons.

◆ allPartons()

const cPDVector & ThePEG::Tree2toNDiagram::allPartons ( ) const
inline

Return the complete vector of partons in this tree diagram.

Definition at line 142 of file Tree2toNDiagram.h.

References thePartons.

◆ 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.

◆ isSame()

virtual bool ThePEG::Tree2toNDiagram::isSame ( tcDiagPtr  ) const
virtual

Compare this diagram's topology to another one.

Reimplemented from ThePEG::DiagramBase.

◆ 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.

◆ nOutgoing()

int ThePEG::Tree2toNDiagram::nOutgoing ( ) const
inline

Return the number of outgoing partons.

Definition at line 180 of file Tree2toNDiagram.h.

References theNOutgoing.

◆ nSpace()

int ThePEG::Tree2toNDiagram::nSpace ( ) const
inline

Return the number of space-like partons.

Definition at line 168 of file Tree2toNDiagram.h.

References theNSpace.

Referenced by resize().

◆ operator,() [1/5]

Tree2toNDiagram & ThePEG::Tree2toNDiagram::operator, ( cPDPtr  pd)
inline

Add a space- or time-like parton.

Definition at line 112 of file Tree2toNDiagram.h.

References add().

◆ operator,() [2/5]

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.

◆ operator,() [3/5]

Tree2toNDiagram & ThePEG::Tree2toNDiagram::operator, ( PDPtr  pd)
inline

Add a space- or time-like parton.

Definition at line 107 of file Tree2toNDiagram.h.

References add().

◆ operator,() [4/5]

Tree2toNDiagram & ThePEG::Tree2toNDiagram::operator, ( tcPDPtr  pd)
inline

Add a space- or time-like parton.

Definition at line 122 of file Tree2toNDiagram.h.

References add().

◆ operator,() [5/5]

Tree2toNDiagram & ThePEG::Tree2toNDiagram::operator, ( tPDPtr  pd)
inline

Add a space- or time-like parton.

Definition at line 117 of file Tree2toNDiagram.h.

References add().

◆ parent()

int ThePEG::Tree2toNDiagram::parent ( int  i) const
inline

Return the index of the parent of the given parton.

Definition at line 158 of file Tree2toNDiagram.h.

References theParents.

◆ 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.

◆ persistentOutput()

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

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ resize()

void ThePEG::Tree2toNDiagram::resize ( size_type  nSpace)
inline

Extend this diagram to accomodate the given number of space-like lines.

Definition at line 173 of file Tree2toNDiagram.h.

References nSpace(), and theNSpace.

Member Data Documentation

◆ initTree2toNDiagram

ClassDescription<Tree2toNDiagram> ThePEG::Tree2toNDiagram::initTree2toNDiagram
staticprivate

Describe a concrete class with persistent data.

Definition at line 312 of file Tree2toNDiagram.h.

◆ nextOrig

int ThePEG::Tree2toNDiagram::nextOrig
private

The parent of the next added parton.

Definition at line 295 of file Tree2toNDiagram.h.

Referenced by operator,().

◆ theNOutgoing

int ThePEG::Tree2toNDiagram::theNOutgoing
private

The number of outgoing partons.

Definition at line 290 of file Tree2toNDiagram.h.

Referenced by nOutgoing().

◆ theNSpace

size_type ThePEG::Tree2toNDiagram::theNSpace
private

The number of space-like partons.

Definition at line 285 of file Tree2toNDiagram.h.

Referenced by addSpacelike(), nSpace(), and resize().

◆ theParents

vector<int> ThePEG::Tree2toNDiagram::theParents
private

The index of the parents.

Definition at line 305 of file Tree2toNDiagram.h.

Referenced by addSpacelike(), and parent().

◆ thePartons

cPDVector ThePEG::Tree2toNDiagram::thePartons
private

The complete vector of partons in this tree diagram.

Definition at line 300 of file Tree2toNDiagram.h.

Referenced by addSpacelike(), and allPartons().


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