File: DiagramBase.h
Description:
The DiagramBase class 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 includedDiagrams() method.
To work properly, a sub class must in its constructor report the
incoming and outgoing parton types with the partons(...)
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:
namespace Pythia7
CLASS
DiagramBase:
Base class:
Public members:
inline DiagramBase();
inline DiagramBase(const DiagramBase &);
virtual ~DiagramBase();
Standard ctors and dtor.
inline int nIncoming() const;
Return the number of incoming partons for this diagram.
inline const cPDVector & partons() const;
Return the incoming, followed by the outgoing partons for this
diagram.
inline int id() const;
Return the id number of this diagram.
virtual tPVector construct(SubProPtr sb, const XComb &,
const ColourLines &) const = 0;
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.
string getTag() const;
Generate a tag which is unique for tree diagrams with the same
type of incoming and outgoing partons.
Protected members:
inline 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.
inline bool done() const;
Returns true if the partons(...) has been called properly from
the sub class.
Public members:
void persistentOutput(PersistentOStream &) const;
void persistentInput(PersistentIStream &, int);
Standard functions for writing and reading from persistent streams.
static void Init();
Standard Init function used to initialize the interfaces.
Private members:
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.
DiagramBase & operator=(const DiagramBase &);
Private and non-existent assignment operator.
DEFINED MACROS
INCLUDED FILES
Pythia7/Config/Pythia7.h
Pythia7/PDT/ParticleData.h
Pythia7/MatrixElement/ColourLines.h
DiagramBase.fh
DiagramBase.xh