thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
ThePEG::DiagramBase Class Referenceabstract

DiagramBase is the base class of all classes which describes Feynman diagrams which can be generated by a matrix element class inheriting from MEBase, as reported by the MEBase::includedDiagrams() method. More...

#include <DiagramBase.h>

Inheritance diagram for ThePEG::DiagramBase:

Public Member Functions

Standard constructors and destructors.
 DiagramBase ()
 Default constructor.
 
virtual ~DiagramBase ()
 Destructor.
 
Main virtual function to be overridden in sub-classes.
virtual tPVector construct (SubProPtr sb, const StandardXComb &, const ColourLines &) const =0
 Construct a sub process corresponding to this diagram.
 
- 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.
 

Functions used by the persistent I/O system.

int theNIncoming
 The number of incoming partons for this diagram.
 
cPDVector thePartons
 The incoming, followed by the outgoing partons for this diagram.
 
int theId
 The id number of this diagram.
 
static AbstractClassDescription< DiagramBaseinitDiagramBase
 Describe an abstract base 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.
 
static void Init ()
 Standard Init function.
 
DiagramBaseoperator= (const DiagramBase &)=delete
 Private and non-existent assignment operator.
 

Access the underlying information.

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.
 
virtual bool isSame (tcDiagPtr other) const
 Compare this diagram to another one modulo the ids of the diagrams.
 
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.
 

Additional Inherited Members

- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 The integer type used for counting.
 
- 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::Pointer::ReferenceCounted
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 

Detailed Description

DiagramBase is the base class of all classes which describes Feynman diagrams which can be generated by a matrix element class inheriting from MEBase, as reported by the MEBase::includedDiagrams() method.

To work properly, a sub-class must in its constructor report the incoming and outgoing parton types with the partons(int, const cPDVector &, int) method. Also an id number should be given to be used internally by the matrix element class. In addition, the construct() method must be implemented to construct the actual partons and connect them together in a SubProcess object, also performing the colour connections using a given ColourLines object.

See also
MEBase
SubProcess
ColourLines

Definition at line 41 of file DiagramBase.h.

Constructor & Destructor Documentation

◆ DiagramBase()

ThePEG::DiagramBase::DiagramBase ( )
inline

Default constructor.

Definition at line 50 of file DiagramBase.h.

Member Function Documentation

◆ addParton()

void ThePEG::DiagramBase::addParton ( tcPDPtr  pd)
inlineprotected

Add to the partons.

Definition at line 147 of file DiagramBase.h.

References thePartons.

Referenced by ThePEG::BlobDiagram::BlobDiagram(), and ThePEG::BlobDiagram::operator,().

◆ construct()

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

Implemented in ThePEG::BlobDiagram, and ThePEG::Tree2toNDiagram.

◆ diagramInfo()

void ThePEG::DiagramBase::diagramInfo ( int  ninc,
int  newId 
)
inlineprotected

Complete the missing information, provided partons() has already been filled.

Definition at line 133 of file DiagramBase.h.

References theId, and theNIncoming.

Referenced by ThePEG::BlobDiagram::BlobDiagram().

◆ done()

bool ThePEG::DiagramBase::done ( ) const
inlineprotected

Returns true if the partons(int, const cPDVector &, int) function has been called properly from the sub class.

Definition at line 142 of file DiagramBase.h.

References nIncoming().

◆ id()

int ThePEG::DiagramBase::id ( ) const
inline

Return the id number of this diagram.

Definition at line 90 of file DiagramBase.h.

References theId.

◆ isSame()

virtual bool ThePEG::DiagramBase::isSame ( tcDiagPtr  other) const
inlinevirtual

Compare this diagram to another one modulo the ids of the diagrams.

Reimplemented in ThePEG::Tree2toNDiagram.

Definition at line 102 of file DiagramBase.h.

References nIncoming(), and partons().

◆ nIncoming()

int ThePEG::DiagramBase::nIncoming ( ) const
inline

Return the number of incoming partons for this diagram.

I.e. the incoming partons plus the number of space-like lines.

Definition at line 79 of file DiagramBase.h.

References theNIncoming.

Referenced by done(), and isSame().

◆ partons() [1/2]

const cPDVector & ThePEG::DiagramBase::partons ( ) const
inline

Return the incoming, followed by the outgoing partons for this diagram.

Definition at line 85 of file DiagramBase.h.

References thePartons.

Referenced by ThePEG::BlobDiagram::external(), ThePEG::BlobDiagram::incoming(), isSame(), ThePEG::BlobDiagram::nOutgoing(), and ThePEG::BlobDiagram::outgoing().

◆ partons() [2/2]

void ThePEG::DiagramBase::partons ( int  ninc,
const cPDVector parts,
int  newId 
)
inlineprotected

To be used by sub classes to report the incoming and outgoing particle types, and an id number.

Parameters
nincthe number of incoming and other space-like lines in the diagram.
partsthe types of partons for each external line in the diagram.
newIdthe id number of this diagram.

Definition at line 123 of file DiagramBase.h.

References theId, theNIncoming, and thePartons.

◆ persistentInput()

void ThePEG::DiagramBase::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::DiagramBase::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

Member Data Documentation

◆ initDiagramBase

AbstractClassDescription<DiagramBase> ThePEG::DiagramBase::initDiagramBase
staticprivate

Describe an abstract base class with persistent data.

Definition at line 195 of file DiagramBase.h.

◆ theId

int ThePEG::DiagramBase::theId
private

The id number of this diagram.

Definition at line 188 of file DiagramBase.h.

Referenced by diagramInfo(), id(), and partons().

◆ theNIncoming

int ThePEG::DiagramBase::theNIncoming
private

The number of incoming partons for this diagram.

Definition at line 177 of file DiagramBase.h.

Referenced by diagramInfo(), nIncoming(), and partons().

◆ thePartons

cPDVector ThePEG::DiagramBase::thePartons
private

The incoming, followed by the outgoing partons for this diagram.

Definition at line 183 of file DiagramBase.h.

Referenced by addParton(), and partons().


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