File: FlatDecayer.h
Description:
The FlatDecayer class inrerits from the abstract
Decayer and implements the decay of a given
Particle to a given set of children according to a
flat phase space distribution.
It is possible to implement a more complicated decay distribution
by inheriting from the FlatDecayer class and only
override the virtual function reweight to return a
weight of a given phase space point relative to the flat
distribution.
See
also:
namespace Pythia7
CLASS
FlatDecayer:
Base class:
Public members:
inline FlatDecayer();
inline FlatDecayer(const FlatDecayer &);
virtual ~FlatDecayer();
Standard ctors and dtor.
virtual bool accept(const DecayMode &) const;
return true if this decayer can perfom the decay specified by the
given decay mode. Will return true if all decay
products are completely specified and there are more than one of
them.
virtual ParticleVector decay(const DecayMode &, const Particle &) const;
for a given decay mode and a given particle instance, perform the
decay and return the decay products.
inline virtual double reweight(const DecayMode &, const Particle & parent,
const ParticleVector & children) const;
To be overridden by subclasses. For a given decay mode, decaying
particle and decayproducts distributed according to a flat
distribution in phase space, return a weight (less or equal to
unity) modifying the flat distribution to the desired one. Note
that the chosen phase space point may be rejected, but the chosen
decay channel will not. This means that the weight returned by
this function does not influence the branching ratios. For the
FlatDecayer class this function simply returns 1.
static void Init();
Standard Init function used to initialize the interfaces.
Protected members:
inline virtual IBPtr clone() const;
inline virtual IBPtr fullclone() const;
Standard clone methods.
inline virtual void doupdate() throw(UpdateException);
inline virtual void doinit() throw(InitException);
inline virtual void doinitrun();
inline virtual void dofinish();
Standard Interfaced virtual functions.
inline 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.
Private members:
static NoPIOClassDescription<FlatDecayer> initFlatDecayer;
Describe a concrete class without persistent data.
FlatDecayer & operator=(const FlatDecayer &);
Private and non-existent assignment operator.
DEFINED MACROS
INCLUDED FILES