ROOT logo
ROOT » MONTECARLO » PYTHIA6 » TPythia6Decayer

class TPythia6Decayer: public TVirtualMCDecayer


TPythia6Decayer

This implements the TVirtualMCDecayer interface.  The TPythia6
singleton object is used to decay particles.  Note, that since this
class modifies common blocks (global variables) it is defined as a
singleton.


Function Members (Methods)

public:
TPythia6Decayer()
TPythia6Decayer(const TPythia6Decayer&)
virtual~TPythia6Decayer()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
static TClass*TVirtualMCDecayer::Class()
static TClass*TObject::Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidDecay(Int_t idpart, TLorentzVector* p)
virtual voidTVirtualMCDecayer::Decay(Int_t idpart, TLorentzVector* p)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidForceDecay()
virtual voidTVirtualMCDecayer::ForceDecay()
voidForceParticleDecay(Int_t particle, Int_t product, Int_t mult)
voidForceParticleDecay(Int_t particle, Int_t* products, Int_t* mult, Int_t npart)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual Float_tGetLifetime(Int_t kf)
virtual Float_tTVirtualMCDecayer::GetLifetime(Int_t kf)
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Float_tGetPartialBranchingRatio(Int_t ipart)
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual Int_tImportParticles(TClonesArray* particles)
virtual Int_tTVirtualMCDecayer::ImportParticles(TClonesArray* particles)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidInit()
virtual voidTVirtualMCDecayer::Init()
virtual voidTObject::Inspect() constMENU
static TPythia6Decayer*Instance()
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual TClass*TVirtualMCDecayer::IsA() const
virtual TClass*TObject::IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TPythia6Decayer&operator=(const TPythia6Decayer&)
TVirtualMCDecayer&TVirtualMCDecayer::operator=(const TVirtualMCDecayer&)
TObject&TObject::operator=(const TObject& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidReadDecayTable()
virtual voidTVirtualMCDecayer::ReadDecayTable()
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidSetDecayTableFile(const char* name)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetForceDecay(Int_t type)
virtual voidSetForceDecay(TPythia6Decayer::EDecayType type)
virtual voidTVirtualMCDecayer::SetForceDecay(Int_t type)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidTVirtualMCDecayer::ShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
virtual voidTVirtualMCDecayer::Streamer(TBuffer& b)
virtual voidTObject::Streamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
voidTVirtualMCDecayer::StreamerNVirtual(TBuffer& b)
voidTObject::StreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual voidWriteDecayTable()
protected:
Int_tCountProducts(Int_t channel, Int_t particle)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidForceHadronicD()
voidForceOmega()
voidTObject::MakeZombie()

Data Members

private:
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
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TArrayFfBraPart! Branching ratios
TPythia6Decayer::EDecayTypefDecayForced decay mode
TStringfDecayTableFileFile to read decay table from
static TPythia6Decayer*fgInstance

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TPythia6Decayer* Instance()
 Get the singleton object.
TPythia6Decayer()
 Constructor
void Init()
 Initialize the decayer
void Decay(Int_t idpart, TLorentzVector* p)
 Decay a particle of type IDPART (PDG code) and momentum P.
Int_t ImportParticles(TClonesArray* particles)
 Get the decay products into the passed PARTICLES TClonesArray of
 TParticles
void SetForceDecay(Int_t type)
 Force a particular decay type
void ForceDecay()
 Force a particle decay mode
Float_t GetPartialBranchingRatio(Int_t ipart)
 Get the partial branching ratio for a particle of type IPART (a
 PDG code).
Float_t GetLifetime(Int_t kf)
 Get the life-time of a particle of type KF (a PDG code).
void ReadDecayTable()
 Read in particle data from an ASCII file.   The file name must
 previously have been set using the member function
 SetDecayTableFile.
void WriteDecayTable()
 write particle data to an ASCII file.   The file name must
 previously have been set using the member function
 SetDecayTableFile.

 Users can use this function to make an initial decay list file,
 which then can be edited by hand, and re-loaded into the decayer
 using ReadDecayTable.

 The file syntax is

    particle_list : partcle_data
                  | particle_list particle_data
                  ;
    particle_data : particle_info
                  | particle_info '\n' decay_list
                  ;
    particle_info : See below
                  ;
    decay_list    : decay_entry
                  | decay_list decay_entry
                  ;
    decay_entry   : See below

 The particle_info consists of 13 fields:

     PDG code             int
     Name                 string
     Anti-particle name   string  if there's no anti-particle,
                                  then this field must be the
                                  empty string
     Electic charge       int     in units of |e|/3
     Color charge         int     in units of quark color charges
     Have anti-particle   int     1 of there's an anti-particle
                                  to this particle, or 0
                                  otherwise
     Mass                 float   in units of GeV
     Resonance width      float
     Max broadning        float
     Lifetime             float
     MWID                 int     ??? (some sort of flag)
     Decay                int     1 if it decays. 0 otherwise

 The format to write these entries in are

    " %9  %-16s  %-16s%3d%3d%3d%12.5f%12.5f%12.5f%13.gf%3d%d\n"

 The decay_entry consists of 8 fields:

     On/Off               int     1 for on, -1 for off
     Matrix element type  int
     Branching ratio      float
     Product 1            int     PDG code of decay product 1
     Product 2            int     PDG code of decay product 2
     Product 3            int     PDG code of decay product 3
     Product 4            int     PDG code of decay product 4
     Product 5            int     PDG code of decay product 5

 The format for these lines are

    "          %5d%5d%12.5f%10d%10d%10d%10d%10d\n"

Int_t CountProducts(Int_t channel, Int_t particle)
 Count number of decay products
void ForceHadronicD()
 Force golden D decay modes
void ForceParticleDecay(Int_t particle, Int_t product, Int_t mult)
  Force decay of particle into products with multiplicity mult
void ForceParticleDecay(Int_t particle, Int_t* products, Int_t* mult, Int_t npart)
  Force decay of particle into products with multiplicity mult
void ForceOmega()
 Force Omega -> Lambda K- Decay
void SetDecayTableFile(const char* name)
TPythia6Decayer()
virtual ~TPythia6Decayer()
{ }
void SetForceDecay(Int_t type)