#ifndef ROOT_TPythia6Decayer
#define ROOT_TPythia6Decayer
#ifndef ROOT_TVirtualMCDecayer
#include "TVirtualMCDecayer.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
#ifndef ROOT_TArrayF
#include "TArrayF.h"
#endif
class TPythia6Decayer : public TVirtualMCDecayer {
public:
enum EDecayType {
kSemiElectronic,
kDiElectron,
kSemiMuonic,
kDiMuon,
kBJpsiDiMuon,
kBJpsiDiElectron,
kBPsiPrimeDiMuon,
kBPsiPrimeDiElectron,
kPiToMu,
kKaToMu,
kNoDecay,
kHadronicD,
kOmega,
kPhiKK,
kAll,
kNoDecayHeavy,
kHardMuons,
kBJpsi,
kWToMuon,
kWToCharm,
kWToCharmToMuon,
kZDiMuon,
kMaxDecay
};
protected:
TString fDecayTableFile;
EDecayType fDecay;
TArrayF fBraPart;
static TPythia6Decayer *fgInstance;
void ForceHadronicD();
void ForceOmega();
Int_t CountProducts(Int_t channel, Int_t particle);
public:
TPythia6Decayer();
virtual ~TPythia6Decayer() { }
virtual void Init();
virtual void Decay(Int_t idpart, TLorentzVector* p);
virtual Int_t ImportParticles(TClonesArray *particles);
virtual void SetForceDecay(Int_t type);
virtual void ForceDecay();
void ForceParticleDecay(Int_t particle, Int_t* products,
Int_t* mult, Int_t npart);
void ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
virtual Float_t GetPartialBranchingRatio(Int_t ipart);
virtual Float_t GetLifetime(Int_t kf);
virtual void ReadDecayTable();
virtual void SetDecayTableFile(const char* name);
virtual void WriteDecayTable();
virtual void SetForceDecay(EDecayType type) { fDecay = type; }
static TPythia6Decayer *Instance();
ClassDef(TPythia6Decayer,1)
};
inline void TPythia6Decayer::SetDecayTableFile(const char *name)
{
fDecayTableFile = name;
}
#endif
Last change: Wed Jun 25 08:51:36 2008
Last generated: 2008-06-25 08:51
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.