#include <VertexBase.h>
Public Member Functions | |
Standard constructors and destructors. | |
VertexBase (VertexType::T name, bool kine=false) | |
Constructor for -point vertices. | |
Functions used by the persistent I/O system. | |
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. | |
unsigned int | size () const |
Access to the particle information. | |
bool | isIncoming (tPDPtr p) const |
Is a particle allowed as an incoming particle? | |
bool | isOutgoing (tPDPtr p) const |
Is a particle allowed as an outgoing particle? | |
const set< tPDPtr > & | incoming () const |
Get the list of incoming particles. | |
const set< tPDPtr > & | outgoing () const |
Get the list of outgoing particles. | |
Complex | norm () const |
Get the coupling. | |
vector< long > | search (unsigned int ilist, long id) const |
Function to search the list. | |
vector< tPDPtr > | search (unsigned int ilist, tcPDPtr id) const |
Function to search the list. | |
bool | allowed (long id1, long id2, long id3, long id4=0) const |
Is a given combination allowed. | |
VertexType::T | getName () const |
Get name of Vertex. | |
unsigned int | getNpoint () const |
Get number of lines on Vertex. | |
unsigned int | orderInGem () const |
Get the order in . | |
unsigned int | orderInGs () const |
Get the order in . | |
Kinematic invariants for loop diagrams | |
bool | kinematics () const |
Whether or not to calculate the kinematics invariants. | |
void | kinematics (bool kine) |
Set whether or not to calculate the kinematics invariants. | |
void | calculateKinematics (const Lorentz5Momentum &p0, const Lorentz5Momentum &p2, const Lorentz5Momentum &p1) |
Calculate the kinematics for a 3-point vertex. | |
void | calculateKinematics (const Lorentz5Momentum &p0, const Lorentz5Momentum &p1, const Lorentz5Momentum &p2, const Lorentz5Momentum &p3) |
Calculate the kinematics for a 4-point vertex. | |
void | calculateKinematics (const vector< Lorentz5Momentum > &p) |
Calculate the kinematics for a n-point vertex. | |
Energy2 | invariant (unsigned int ix, unsigned int iy) const |
Get one of the kinematic invariants. | |
Static Public Member Functions | |
static void | Init () |
Standard Init function used to initialize the interfaces. | |
Protected Member Functions | |
void | orderInGem (unsigned int order) |
Set the order in . | |
void | orderInGs (unsigned int order) |
Set the order in . | |
Calculation of the strong, electromagnetic and weak couplings | |
double | strongCoupling (Energy2 q2) const |
Strong coupling. | |
double | electroMagneticCoupling (Energy2 q2) const |
Electromagnetic coupling. | |
double | weakCoupling (Energy2 q2) const |
Weak coupling. | |
double | sin2ThetaW () const |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | rebind (const TranslationMap &trans) |
Rebind pointer to other Interfaced objects. | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. | |
void | addToList (const vector< long > &ids) |
Members to set-up the particles. | |
void | addToList (long ida, long idb, long idc, long idd=0) |
Set up the lists of outer particles for the three-/four-point vertex. | |
void | norm (const Complex &coup) |
Members for the amplitude calculations. | |
virtual Complex | propagator (int iopt, Energy2 q2, tcPDPtr part, Energy mass=-GeV, Energy width=-GeV) |
Calculate the propagator for a diagram. | |
Complex | normPropagator (int iopt, Energy2 q2, tcPDPtr part, Energy mass=-GeV, Energy width=-GeV) |
Calculate propagator multiplied by coupling. | |
Private Member Functions | |
VertexBase & | operator= (const VertexBase &) |
Private and non-existent assignment operator. | |
Private Attributes | |
Complex | _norm |
The overall coupling. | |
bool | _calckinematics |
Whether or not to calculate the kinematic invariants for the vertex. | |
vector< vector< Energy2 > > | _kine |
Kinematica quantities needed for loop vertices. | |
VertexType::T | _theName |
Name of vertex. | |
unsigned int | _ordergEM |
Order of vertex in . | |
unsigned int | _ordergS |
Order of vertex in . | |
unsigned int | _coupopt |
option for the coupling | |
double | _gs |
Fixed value of strong coupling to use. | |
double | _ee |
Fixed value of the electromagentic coupling to use. | |
double | _sw |
Fixed value of to use. | |
vector< vector< PDPtr > > | _particles |
Storage of the particles. | |
unsigned int | _npoint |
Number of particles at the vertex. | |
set< tPDPtr > | _inpart |
ParticleData pointers for the allowed incoming particles. | |
set< tPDPtr > | _outpart |
ParticleData pointers for the allowed outgoing particles. | |
Static Private Attributes | |
static AbstractClassDescription < ThePEG::Helicity::VertexBase > | initVertexBase |
Describe a concrete class with persistent data. | |
Friends | |
ostream & | operator<< (ostream &, const VertexBase &) |
The output operator is a friend to avoid the data being public. |
In implements the storage of the particles which are allowed to interact at the vertex and some simple functions which are often needed by the classes which implement the specific vertices.
In practice little use is made of this information and it is mainly included for future extensions. It can also be used at the development and debugging stage.
Definition at line 46 of file VertexBase.h.
ThePEG::Helicity::VertexBase::VertexBase | ( | VertexType::T | name, | |
bool | kine = false | |||
) |
Constructor for -point vertices.
npoint | The number of external particles. | |
kine | Whether the kinematic invariants should be calculated. |
void ThePEG::Helicity::VertexBase::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
Reimplemented from ThePEG::Interfaced.
void ThePEG::Helicity::VertexBase::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. |
Reimplemented from ThePEG::Interfaced.
unsigned int ThePEG::Helicity::VertexBase::size | ( | ) | const [inline] |
Access to the particle information.
Number of different particle combinations allowed.
Definition at line 96 of file VertexBase.h.
References _particles.
bool ThePEG::Helicity::VertexBase::isIncoming | ( | tPDPtr | p | ) | const [inline] |
Is a particle allowed as an incoming particle?
p | The ParticleData pointer |
Definition at line 103 of file VertexBase.h.
References _inpart.
bool ThePEG::Helicity::VertexBase::isOutgoing | ( | tPDPtr | p | ) | const [inline] |
Is a particle allowed as an outgoing particle?
p | The ParticleData pointer |
Definition at line 111 of file VertexBase.h.
References _outpart.
vector<long> ThePEG::Helicity::VertexBase::search | ( | unsigned int | ilist, | |
long | id | |||
) | const |
Function to search the list.
ilist | Which list to search | |
id | The PDG code to look for. |
Function to search the list.
ilist | Which list to search | |
id | The particle to look for. |
bool ThePEG::Helicity::VertexBase::allowed | ( | long | id1, | |
long | id2, | |||
long | id3, | |||
long | id4 = 0 | |||
) | const |
Is a given combination allowed.
id1 | PDG code of the first particle. | |
id2 | PDG code of the second particle. | |
id3 | PDG code of the third particle. | |
id4 | PDG code of the fourth particle. |
virtual void ThePEG::Helicity::VertexBase::doinit | ( | ) | [protected, virtual] |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
virtual void ThePEG::Helicity::VertexBase::rebind | ( | const TranslationMap & | trans | ) | [protected, virtual] |
Rebind pointer to other Interfaced objects.
Called in the setup phase after all objects used in an EventGenerator has been cloned so that the pointers will refer to the cloned objects afterwards.
trans | a TranslationMap relating the original objects to their respective clones. |
RebindException | if no cloned object was found for a given pointer. |
Reimplemented from ThePEG::InterfacedBase.
virtual IVector ThePEG::Helicity::VertexBase::getReferences | ( | ) | [protected, virtual] |
Return a vector of all pointers to Interfaced objects used in this object.
Reimplemented from ThePEG::InterfacedBase.
void ThePEG::Helicity::VertexBase::addToList | ( | const vector< long > & | ids | ) | [protected] |
Members to set-up the particles.
Set up the lists of outer particles for the vertex.
ids | A vector of PDG codes for the particles. | |
idb | The PDG codes for the second set of particles. | |
idc | The PDG codes for the third set of particles. | |
idd | The PDG codes for the fourth set of particles. |
void ThePEG::Helicity::VertexBase::addToList | ( | long | ida, | |
long | idb, | |||
long | idc, | |||
long | idd = 0 | |||
) | [protected] |
Set up the lists of outer particles for the three-/four-point vertex.
For small vertices, this form is much easier to use.
ida | The PDG codes for the first set of particles. | |
idb | The PDG codes for the second set of particles. | |
idc | The PDG codes for the third set of particles. | |
idd | The PDG codes for the fourth set of particles. |
void ThePEG::Helicity::VertexBase::norm | ( | const Complex & | coup | ) | [inline, protected] |
Members for the amplitude calculations.
Set the coupling.
coup | The coupling. |
Definition at line 290 of file VertexBase.h.
References _norm.
virtual Complex ThePEG::Helicity::VertexBase::propagator | ( | int | iopt, | |
Energy2 | q2, | |||
tcPDPtr | part, | |||
Energy | mass = -GeV , |
|||
Energy | width = -GeV | |||
) | [protected, virtual] |
Calculate the propagator for a diagram.
iopt | The option for the Breit-Wigner shape | |
q2 | The scale | |
part | The ParticleData pointer for the off-shell particle. | |
mass | The mass if not to be taken from the ParticleData object | |
width | The width if not to be taken from the ParticleData object |
Referenced by normPropagator().
Complex ThePEG::Helicity::VertexBase::normPropagator | ( | int | iopt, | |
Energy2 | q2, | |||
tcPDPtr | part, | |||
Energy | mass = -GeV , |
|||
Energy | width = -GeV | |||
) | [inline, protected] |
Calculate propagator multiplied by coupling.
iopt | The option for the Breit-Wigner shape | |
q2 | The scale | |
part | The ParticleData pointer for the off-shell particle. | |
mass | The mass if not to be taken from the ParticleData object | |
width | The width if not to be taken from the ParticleData object |
Definition at line 311 of file VertexBase.h.
References _norm, and propagator().
void ThePEG::Helicity::VertexBase::orderInGem | ( | unsigned int | order | ) | [inline, protected] |
Set the order in .
order | The order of the vertex in |
Definition at line 392 of file VertexBase.h.
References _ordergEM.
void ThePEG::Helicity::VertexBase::orderInGs | ( | unsigned int | order | ) | [inline, protected] |
Set the order in .
order | The order of the vertex in |
Definition at line 398 of file VertexBase.h.
References _ordergS.
vector<vector<PDPtr> > ThePEG::Helicity::VertexBase::_particles [private] |
Storage of the particles.
Particles interacting at the vertex
Definition at line 421 of file VertexBase.h.
Referenced by size().