ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TPythia6Decayer.h
Go to the documentation of this file.
1 // @(#)root/pythia6:$Id$
2 // Author: Christian Holm Christensen 22/04/06
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TPythia6Decayer
13 #define ROOT_TPythia6Decayer
14 
15 ///////////////////////////////////////////////////////////////////////////////
16 // //
17 // TPythia6Decayer //
18 // //
19 // This implements the TVirtualMCDecayer interface. The TPythia6 //
20 // singleton object is used to decay particles. Note, that since this //
21 // class modifies common blocks (global variables) it is defined as a //
22 // singleton. //
23 // //
24 ///////////////////////////////////////////////////////////////////////////////
25 
26 #ifndef ROOT_TVirtualMCDecayer
27 #include "TVirtualMCDecayer.h"
28 #endif
29 #ifndef ROOT_TString
30 #include "TString.h"
31 #endif
32 #ifndef ROOT_TArrayF
33 #include "TArrayF.h"
34 #endif
35 
36 
38 
39 public:
40  // enum of decay mode types
41  enum EDecayType {
65  };
66 
67 protected:
68  TString fDecayTableFile; // File to read decay table from
69  EDecayType fDecay; // Forced decay mode
70  TArrayF fBraPart; //! Branching ratios
71 
73 
74  // Extra functions
75  void ForceHadronicD();
76  void ForceOmega();
77  Int_t CountProducts(Int_t channel, Int_t particle);
78 
79 public:
81  virtual ~TPythia6Decayer() { }
82  virtual void Init();
83  virtual void Decay(Int_t idpart, TLorentzVector* p);
84  virtual Int_t ImportParticles(TClonesArray *particles);
85  virtual void SetForceDecay(Int_t type);
86  virtual void ForceDecay();
87  void ForceParticleDecay(Int_t particle, Int_t* products,
88  Int_t* mult, Int_t npart);
89  void ForceParticleDecay(Int_t particle, Int_t product, Int_t mult);
90  virtual Float_t GetPartialBranchingRatio(Int_t ipart);
91  virtual Float_t GetLifetime(Int_t kf);
92  virtual void ReadDecayTable();
93  // Extension member functions
94  virtual void SetDecayTableFile(const char* name);
95  virtual void WriteDecayTable();
96  virtual void SetForceDecay(EDecayType type) { fDecay = type; }
97 
98  static TPythia6Decayer *Instance();
99 
100  ClassDef(TPythia6Decayer,1) // Particle Decayer Base Class
101 };
102 
103 inline void TPythia6Decayer::SetDecayTableFile(const char *name)
104 {
106 }
107 
108 #endif
TString fDecayTableFile
virtual void WriteDecayTable()
write particle data to an ASCII file.
float Float_t
Definition: RtypesCore.h:53
static TPythia6Decayer * Instance()
virtual void SetForceDecay(Int_t type)
Force a particular decay type.
Basic string class.
Definition: TString.h:137
Array of floats (32 bits per element).
Definition: TArrayF.h:29
int Int_t
Definition: RtypesCore.h:41
static TPythia6Decayer * fgInstance
Branching ratios.
Abstract base class for particle decays.
virtual ~TPythia6Decayer()
Int_t CountProducts(Int_t channel, Int_t particle)
Count number of decay products.
virtual Float_t GetLifetime(Int_t kf)
Get the life-time of a particle of type KF (a PDG code).
virtual Float_t GetPartialBranchingRatio(Int_t ipart)
Get the partial branching ratio for a particle of type IPART (a PDG code).
#define ClassDef(name, id)
Definition: Rtypes.h:254
virtual void Decay(Int_t idpart, TLorentzVector *p)
Decay a particle of type IDPART (PDG code) and momentum P.
void ForceHadronicD()
Force golden D decay modes.
This class implements the TVirtualMCDecayer interface.
virtual Int_t ImportParticles(TClonesArray *particles)
Get the decay products into the passed PARTICLES TClonesArray of TParticles.
void ForceOmega()
Force Omega -> Lambda K- Decay.
virtual void ReadDecayTable()
Read in particle data from an ASCII file.
int type
Definition: TGX11.cxx:120
virtual void SetForceDecay(EDecayType type)
virtual void ForceDecay()
Force a particle decay mode.
#define name(a, b)
Definition: linkTestLib0.cpp:5
virtual void Init()
Initialize the decayer.
virtual void SetDecayTableFile(const char *name)
An array of clone (identical) objects.
Definition: TClonesArray.h:32
void ForceParticleDecay(Int_t particle, Int_t *products, Int_t *mult, Int_t npart)
Force decay of particle into products with multiplicity mult.
TPythia6Decayer()
Constructor.
EDecayType fDecay