File: Amplitude.h
Description:
The Amplitude class is the abstract base class for all
the classes representing complex amplitudes associated with either
a hard 2->N subprocess or a decay 1->N process.
The returned value should be dimensionless suitable scaled by the
total invariant mass squared (shat), which is always computable
from the specified momenta of the particles in the vertex.
Notice that the amplitude for splitting 1->N processes is instead
represented in other classes (derived from the SplitFun class).
namespace Pythia7
CLASS
Amplitude:
Base class:
Public members:
Amplitude();
Amplitude(const Amplitude &);
virtual ~Amplitude();
Standard ctors and dtor.
virtual Complex value( const tcPDVector & particles,
const vector<Lorentz5Momentum> & momenta,
const vector<int> & helicities ) = 0;
Given the particle data, momenta and helicities of all the particles
in the "vertex", the method return the complex amplitude.
The convention is the order of the vectors is that first
there is the incoming particle(s) and then the outgoing ones.
For the helicities, the convention is to number them starting
from 0 (no negative values, because they are used as vector indeces),
for example, for a massive particle of spin S, 0 <= helicity <= 2*S.
The returned value should be dimensionless suitable scaled by the
total invariant mass squared (shat), which is always computable
from the specified momenta of the particles in the vertex.
virtual Complex overestimateValue( const tcPDVector & particles,
const vector<Lorentz5Momentum> & momenta,
const vector<int> & helicities );
As above, but it provides an overestimate of the complex
amplitude, that is:
abs( overestimaValue(...) ) >= abs( value(...) )
The default definition just returns value(...),
but it can be overriden by derived classes.
Complex value( const PVector & particles, const vector<int> & helicities );
Complex overestimateValue( const PVector & particles, const vector<int> & helicities );
These methods simply forward a call to the previous ones,
and should not be overriden.
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.
Protected members:
inline virtual void doupdate() throw(UpdateException);
inline virtual void doinit() throw(InitException);
inline virtual void dofinish();
Standard Interfaced virtual functions.
virtual void rebind(const TranslationMap & trans)
throw(RebindException);
Change all pointers to Interfaced objects to corresponding clones.
inline virtual IVector getReferences();
Return pointers to all Interfaced objects refered to by this.
static AbstractClassDescription<Amplitude> initAmplitude;
Describe an abstract base class with persistent data.
Amplitude & operator=(const Amplitude &);
Private and non-existent assignment operator.
DEFINED MACROS
INCLUDED FILES
Pythia7/Handlers/HandlerBase.h
Pythia7/Config/Complex.h
Pythia7/PDT/ParticleData.h
Pythia7/EventRecord/Particle.h