ThePEG 2.3.0
|
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>
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< DiagramBase > | initDiagramBase |
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. | |
DiagramBase & | operator= (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 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. | |
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. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
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.
Definition at line 41 of file DiagramBase.h.
|
inline |
Default constructor.
Definition at line 50 of file DiagramBase.h.
|
inlineprotected |
Add to the partons.
Definition at line 147 of file DiagramBase.h.
References thePartons.
Referenced by ThePEG::BlobDiagram::BlobDiagram(), and ThePEG::BlobDiagram::operator,().
|
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.
|
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().
|
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().
|
inline |
Return the id number of this diagram.
Definition at line 90 of file DiagramBase.h.
References theId.
|
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().
|
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.
|
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().
|
inlineprotected |
To be used by sub classes to report the incoming and outgoing particle types, and an id number.
ninc | the number of incoming and other space-like lines in the diagram. |
parts | the types of partons for each external line in the diagram. |
newId | the id number of this diagram. |
Definition at line 123 of file DiagramBase.h.
References theId, theNIncoming, and thePartons.
void ThePEG::DiagramBase::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::DiagramBase::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
staticprivate |
Describe an abstract base class with persistent data.
Definition at line 195 of file DiagramBase.h.
|
private |
The id number of this diagram.
Definition at line 188 of file DiagramBase.h.
Referenced by diagramInfo(), id(), and partons().
|
private |
The number of incoming partons for this diagram.
Definition at line 177 of file DiagramBase.h.
Referenced by diagramInfo(), nIncoming(), and partons().
|
private |
The incoming, followed by the outgoing partons for this diagram.
Definition at line 183 of file DiagramBase.h.
Referenced by addParton(), and partons().