File: LightClusterDecayer.h
Description:
This is the class that performs the decay of light clusters into
only one hadron. The major difficulty is that a kinematical reshuffling
is necessary, between the cluster under consideration and its
"neighbouring" clusters, to conserve energy-momentum in one-body decay.
Notice that, differently from what happens in Fortran Herwig,
light (that is below the threshold for the production of the lightest
pair of hadrons with the proper flavours) fission products, produced
by the fission of heavy clusters in ClusterFissioner
have been already "decayed" into single hadron (the lightest one
with proper flavour) by the same latter class, without require
any reshuffling. Therefore the light clusters that are treated in
this LightClusterDecayer class are produced directly
(originally) by the ClusterFinder.
Notice:
- The choice of the candidate cluster with whom to reshuffle momentum
is based on the minimal space-time distance from the light cluster.
See
also:
namespace Herwig
CLASS
LightClusterDecayer:
Base class:
Public members:
inline LightClusterDecayer();
inline LightClusterDecayer(const LightClusterDecayer &);
virtual ~LightClusterDecayer();
Standard ctors and dtor.
bool decay(const StepPtr &);
throw (Veto, Stop, Exception);
It does the decay of light hadron in one hadron: this requires
also a kinematical reshuffling for energy-momentum conservation
(this is done explicitly by the (private) method reshuffling() ).
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 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 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 ClassDescription<LightClusterDecayer> initLightClusterDecayer;
Describe a concrete class with persistent data.
LightClusterDecayer & operator=(const LightClusterDecayer &);
Private and non-existent assignment operator.
bool reshuffling( const long, tClusterPtr, tClusterPtr,
const StepPtr &, tClusterVector &)
throw (Veto, Stop, Exception);
This (private) method, called by decay(), takes care of the kinematical
reshuffling necessary for energy-momentum conservation.
Ptr<HadronSelector>::pointer _hadronsSelector;
double _B1Lim;
DEFINED MACROS
HERWIG_LightClusterDecayer_H
INCLUDED FILES
Pythia7/Handlers/HandlerBase.h
Pythia7/EventRecord/Step.h
CluHadConfig.h
HadronSelector.h