ThePEG::Helicity::VertexBase Class Reference

The VertexBase class is the base class for all helicity amplitude vertices. More...

#include <VertexBase.h>

Inheritance diagram for ThePEG::Helicity::VertexBase:

ThePEG::Interfaced ThePEG::InterfacedBase ThePEG::Base ThePEG::Named ThePEG::Pointer::ReferenceCounted ThePEG::Helicity::AbstractFFSVertex ThePEG::Helicity::AbstractFFTVertex ThePEG::Helicity::AbstractFFVTVertex ThePEG::Helicity::AbstractFFVVertex ThePEG::Helicity::AbstractSSSVertex ThePEG::Helicity::AbstractSSTVertex ThePEG::Helicity::AbstractVSSVertex ThePEG::Helicity::AbstractVVSSVertex ThePEG::Helicity::AbstractVVSVertex ThePEG::Helicity::AbstractVVTVertex ThePEG::Helicity::AbstractVVVTVertex ThePEG::Helicity::AbstractVVVVertex ThePEG::Helicity::AbstractVVVVVertex

List of all members.

Public Member Functions

Standard constructors and destructors.
 VertexBase (VertexType::T name, bool kine=false)
 Constructor for $n$-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< tPDPtrsearch (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 $g_EM$.
unsigned int orderInGs () const
 Get the order in $g_s$.
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 $g_EM$.
void orderInGs (unsigned int order)
 Set the order in $g_s$.
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

VertexBaseoperator= (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 $g_EM$.
unsigned int _ordergS
 Order of vertex in $g_s$.
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 $\sin\theta_W$ 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.


Detailed Description

The VertexBase class is the base class for all helicity amplitude vertices.

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.


Constructor & Destructor Documentation

ThePEG::Helicity::VertexBase::VertexBase ( VertexType::T  name,
bool  kine = false 
)

Constructor for $n$-point vertices.

Parameters:
npoint The number of external particles.
kine Whether the kinematic invariants should be calculated.


Member Function Documentation

void ThePEG::Helicity::VertexBase::persistentOutput ( PersistentOStream os  )  const

Function used to write out object persistently.

Parameters:
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.

Parameters:
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?

Parameters:
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?

Parameters:
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.

Parameters:
ilist Which list to search
id The PDG code to look for.

vector<tPDPtr> ThePEG::Helicity::VertexBase::search ( unsigned int  ilist,
tcPDPtr  id 
) const

Function to search the list.

Parameters:
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.

Parameters:
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.

Exceptions:
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.

Parameters:
trans a TranslationMap relating the original objects to their respective clones.
Exceptions:
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.

Returns:
a vector of pointers.

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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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 $g_EM$.

Parameters:
order The order of the vertex in $g_EM$

Definition at line 392 of file VertexBase.h.

References _ordergEM.

void ThePEG::Helicity::VertexBase::orderInGs ( unsigned int  order  )  [inline, protected]

Set the order in $g_s$.

Parameters:
order The order of the vertex in $g_s$

Definition at line 398 of file VertexBase.h.

References _ordergS.


Member Data Documentation

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().


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

Generated on Thu Apr 29 12:43:31 2010 for ThePEG by  doxygen 1.5.5