Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TParticlePDG.h
Go to the documentation of this file.
1 // @(#)root/eg:$Id$
2 // Author: Pasha Murat 12/02/99
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, 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 #ifndef TParticlePDG_hh
12 #define TParticlePDG_hh
13 
14 #include "TNamed.h"
15 #include "TObjArray.h"
16 
17 class TDecayChannel;
18 
19 class TParticlePDG : public TNamed {
20 public:
21 //------------------------------------------------------------------------------
22 // data members
23 //------------------------------------------------------------------------------
24 protected:
25  Int_t fPdgCode; // PDG code of the particle
26  Double_t fMass; // particle mass in GeV
27  Double_t fCharge; // charge in units of |e|/3
28  Double_t fLifetime; // proper lifetime in seconds
29  Double_t fWidth; // total width in GeV
30  Int_t fParity;
31  Double_t fSpin;
32  Double_t fIsospin; // isospin
33  Double_t fI3; // i3
34  Int_t fStrangeness; // flavours are defined if i3 != -1
35  Int_t fCharm; // 1 or -1 for C-particles,
36  // 0 for others
37  Int_t fBeauty; //
38  Int_t fTop; //
39  Int_t fY; // X,Y: quantum numbers for the 4-th generation
40  Int_t fX; //
41  Int_t fStable; // 1 if stable, 0 otherwise
42 
43  TObjArray* fDecayList; // array of decay channels
44 
45  TString fParticleClass; // lepton, meson etc
46 
47  Int_t fTrackingCode; // G3 tracking code of the particle
48  TParticlePDG* fAntiParticle; // pointer to antiparticle
49 //------------------------------------------------------------------------------
50 // functions
51 //------------------------------------------------------------------------------
52  TParticlePDG(const TParticlePDG&);
53  TParticlePDG& operator=(const TParticlePDG&);
54 
55 public:
56  // ****** constructors and destructor
57  TParticlePDG();
58  TParticlePDG(const char* Name, const char* Title, Double_t Mass,
59  Bool_t Stable, Double_t Width, Double_t Charge,
60  const char* ParticleClass, Int_t PdgCode, Int_t Anti,
61  Int_t TrackingCode);
62 
63  virtual ~TParticlePDG();
64  // ****** access methods
65 
66  Int_t PdgCode () const { return fPdgCode; }
67  Double_t Mass () const { return fMass; }
68  Double_t Charge () const { return fCharge; } //charge in units of |e|/3
69  Double_t Lifetime () const { return fLifetime; }
70  Double_t Width () const { return fWidth; }
71  Int_t Parity () const { return fParity; }
72  Double_t Spin () const { return fSpin; }
73  Double_t Isospin () const { return fIsospin; }
74  Double_t I3 () const { return fI3; }
75  Int_t Strangeness () const { return fStrangeness; }
76  Int_t Charm () const { return fCharm; }
77  Int_t Beauty () const { return fBeauty; }
78  Int_t Top () const { return fTop; }
79  Int_t X () const { return fX; }
80  Int_t Y () const { return fY; }
81  Int_t Stable () const { return fStable; }
82  const char* ParticleClass() const { return fParticleClass.Data(); }
83 
84  TObjArray* DecayList () { return fDecayList; }
85 
86  Int_t NDecayChannels () const {
87  return (fDecayList) ? fDecayList->GetEntriesFast() : 0;
88  }
89 
90  Int_t TrackingCode() const { return fTrackingCode; }
91 
92  TDecayChannel* DecayChannel(Int_t i);
93 
94  TParticlePDG* AntiParticle() { return fAntiParticle; }
95  const TParticlePDG* AntiParticle() const { return fAntiParticle; }
96 
97  // ****** modifiers
98 
99  void SetAntiParticle(TParticlePDG* ap) { fAntiParticle = ap; }
100 
101  Int_t AddDecayChannel(Int_t Type,
102  Double_t BranchingRatio,
103  Int_t NDaughters,
104  Int_t* DaughterPdgCode);
105 
106  virtual void PrintDecayChannel(TDecayChannel* dc, Option_t* opt = "") const;
107 
108  virtual void Print(Option_t* opt = "") const; // *MENU*
109 
110  ClassDef(TParticlePDG,2) // PDG static particle definition
111 };
112 
113 #endif