Logo ROOT   6.08/07
Reference Guide
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 #ifndef ROOT_TNamed
15 #include "TNamed.h"
16 #endif
17 #ifndef ROOT_TObjArray
18 #include "TObjArray.h"
19 #endif
20 
21 class TDecayChannel;
22 
23 class TParticlePDG : public TNamed {
24 public:
25 //------------------------------------------------------------------------------
26 // data members
27 //------------------------------------------------------------------------------
28 protected:
29  Int_t fPdgCode; // PDG code of the particle
30  Double_t fMass; // particle mass in GeV
31  Double_t fCharge; // charge in units of |e|/3
32  Double_t fLifetime; // proper lifetime in seconds
33  Double_t fWidth; // total width in GeV
36  Double_t fIsospin; // isospin
37  Double_t fI3; // i3
38  Int_t fStrangeness; // flavours are defined if i3 != -1
39  Int_t fCharm; // 1 or -1 for C-particles,
40  // 0 for others
42  Int_t fTop; //
43  Int_t fY; // X,Y: quantum numbers for the 4-th generation
44  Int_t fX; //
45  Int_t fStable; // 1 if stable, 0 otherwise
46 
47  TObjArray* fDecayList; // array of decay channels
48 
49  TString fParticleClass; // lepton, meson etc
50 
51  Int_t fTrackingCode; // G3 tracking code of the particle
52  TParticlePDG* fAntiParticle; // pointer to antiparticle
53 //------------------------------------------------------------------------------
54 // functions
55 //------------------------------------------------------------------------------
56  TParticlePDG(const TParticlePDG&);
58 
59 public:
60  // ****** constructors and destructor
61  TParticlePDG();
62  TParticlePDG(const char* Name, const char* Title, Double_t Mass,
64  const char* ParticleClass, Int_t PdgCode, Int_t Anti,
66 
67  virtual ~TParticlePDG();
68  // ****** access methods
69 
70  Int_t PdgCode () const { return fPdgCode; }
71  Double_t Mass () const { return fMass; }
72  Double_t Charge () const { return fCharge; } //charge in units of |e|/3
73  Double_t Lifetime () const { return fLifetime; }
74  Double_t Width () const { return fWidth; }
75  Int_t Parity () const { return fParity; }
76  Double_t Spin () const { return fSpin; }
77  Double_t Isospin () const { return fIsospin; }
78  Double_t I3 () const { return fI3; }
79  Int_t Strangeness () const { return fStrangeness; }
80  Int_t Charm () const { return fCharm; }
81  Int_t Beauty () const { return fBeauty; }
82  Int_t Top () const { return fTop; }
83  Int_t X () const { return fX; }
84  Int_t Y () const { return fY; }
85  Int_t Stable () const { return fStable; }
86  const char* ParticleClass() const { return fParticleClass.Data(); }
87 
88  TObjArray* DecayList () { return fDecayList; }
89 
90  Int_t NDecayChannels () const {
91  return (fDecayList) ? fDecayList->GetEntriesFast() : 0;
92  }
93 
94  Int_t TrackingCode() const { return fTrackingCode; }
95 
97 
99  const TParticlePDG* AntiParticle() const { return fAntiParticle; }
100 
101  // ****** modifiers
102 
103  void SetAntiParticle(TParticlePDG* ap) { fAntiParticle = ap; }
104 
106  Double_t BranchingRatio,
107  Int_t NDaughters,
108  Int_t* DaughterPdgCode);
109 
110  virtual void PrintDecayChannel(TDecayChannel* dc, Option_t* opt = "") const;
111 
112  virtual void Print(Option_t* opt = "") const; // *MENU*
113 
114  ClassDef(TParticlePDG,2) // PDG static particle definition
115 };
116 
117 #endif
An array of TObjects.
Definition: TObjArray.h:39
Int_t PdgCode() const
Definition: TParticlePDG.h:70
Double_t Width() const
Definition: TParticlePDG.h:74
Int_t Stable() const
Definition: TParticlePDG.h:85
Int_t Y() const
Definition: TParticlePDG.h:84
Description of the decay channel.
Definition: TDecayChannel.h:28
Int_t Beauty() const
Definition: TParticlePDG.h:81
const char * Title
Definition: TXMLSetup.cxx:68
const char Option_t
Definition: RtypesCore.h:62
const char * ParticleClass() const
Definition: TParticlePDG.h:86
Int_t fTrackingCode
Definition: TParticlePDG.h:51
Int_t NDecayChannels() const
Definition: TParticlePDG.h:90
virtual ~TParticlePDG()
destructor
Basic string class.
Definition: TString.h:137
Double_t I3() const
Definition: TParticlePDG.h:78
Int_t fStrangeness
Definition: TParticlePDG.h:38
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
TParticlePDG & operator=(const TParticlePDG &)
assignement operator
Double_t fLifetime
Definition: TParticlePDG.h:32
TString fParticleClass
Definition: TParticlePDG.h:49
TDecayChannel * DecayChannel(Int_t i)
return pointer to decay channel object at index i
const char * Name
Definition: TXMLSetup.cxx:67
Double_t Lifetime() const
Definition: TParticlePDG.h:73
#define ClassDef(name, id)
Definition: Rtypes.h:254
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
Double_t fMass
Definition: TParticlePDG.h:30
TParticlePDG * AntiParticle()
Definition: TParticlePDG.h:98
virtual void Print(Option_t *opt="") const
Print the entire information of this kind of particle.
void SetAntiParticle(TParticlePDG *ap)
Definition: TParticlePDG.h:103
Double_t fCharge
Definition: TParticlePDG.h:31
Double_t fIsospin
Definition: TParticlePDG.h:36
virtual void PrintDecayChannel(TDecayChannel *dc, Option_t *opt="") const
print the list of decays
TParticlePDG * fAntiParticle
Definition: TParticlePDG.h:52
TObjArray * DecayList()
Definition: TParticlePDG.h:88
Double_t fI3
Definition: TParticlePDG.h:37
Double_t Spin() const
Definition: TParticlePDG.h:76
Int_t Strangeness() const
Definition: TParticlePDG.h:79
Int_t GetEntriesFast() const
Definition: TObjArray.h:66
Description of the static properties of a particle.
Definition: TParticlePDG.h:23
Int_t TrackingCode() const
Definition: TParticlePDG.h:94
Double_t fWidth
Definition: TParticlePDG.h:33
Double_t Charge() const
Definition: TParticlePDG.h:72
TObjArray * fDecayList
Definition: TParticlePDG.h:47
Int_t Charm() const
Definition: TParticlePDG.h:80
Int_t Top() const
Definition: TParticlePDG.h:82
Type
enumeration specifying the integration types.
Int_t fPdgCode
Definition: TParticlePDG.h:29
Int_t X() const
Definition: TParticlePDG.h:83
double Double_t
Definition: RtypesCore.h:55
const TParticlePDG * AntiParticle() const
Definition: TParticlePDG.h:99
Double_t fSpin
Definition: TParticlePDG.h:35
Double_t Isospin() const
Definition: TParticlePDG.h:77
Int_t Parity() const
Definition: TParticlePDG.h:75
TParticlePDG()
default constructor
Double_t Mass() const
Definition: TParticlePDG.h:71
Int_t AddDecayChannel(Int_t Type, Double_t BranchingRatio, Int_t NDaughters, Int_t *DaughterPdgCode)
add new decay channel, Particle owns those...
const char * Data() const
Definition: TString.h:349