#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 ForceParticleDecay(Int_t particle, Int_t* products,
   			               Int_t* mult, Int_t npart);
   void ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
   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();
   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
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.