Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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
17class TDecayChannel;
18
19class TParticlePDG : public TNamed {
20public:
21//------------------------------------------------------------------------------
22// data members
23//------------------------------------------------------------------------------
24protected:
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
32 Double_t fIsospin; // isospin
34 Int_t fStrangeness; // flavours are defined if i3 != -1
35 Int_t fCharm; // 1 or -1 for C-particles,
36 // 0 for others
39 Int_t fY; // X,Y: quantum numbers for the 4-th generation
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//------------------------------------------------------------------------------
54
55public:
56 // ****** constructors and destructor
58 TParticlePDG(const char* Name, const char* Title, Double_t Mass,
60 const char* ParticleClass, Int_t PdgCode, Int_t Anti,
62
63 ~TParticlePDG() override;
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
85
87 return (fDecayList) ? fDecayList->GetEntriesFast() : 0;
88 }
89
90 Int_t TrackingCode() const { return fTrackingCode; }
91
93
95 const TParticlePDG* AntiParticle() const { return fAntiParticle; }
96
97 // ****** modifiers
98
100
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 void Print(Option_t* opt = "") const override; // *MENU*
109
110 ClassDefOverride(TParticlePDG,2) // PDG static particle definition
111};
112
113#endif
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Description of the decay channel.
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
An array of TObjects.
Definition TObjArray.h:31
Int_t GetEntriesFast() const
Definition TObjArray.h:58
Description of the static properties of a particle.
~TParticlePDG() override
destructor
Double_t fIsospin
Double_t Lifetime() const
Double_t I3() const
void Print(Option_t *opt="") const override
Print the entire information of this kind of particle.
Int_t Stable() const
const char * ParticleClass() const
Int_t X() const
virtual void PrintDecayChannel(TDecayChannel *dc, Option_t *opt="") const
print the list of decays
Int_t fTrackingCode
const TParticlePDG * AntiParticle() const
Int_t PdgCode() const
Double_t fWidth
Int_t fStrangeness
TDecayChannel * DecayChannel(Int_t i)
return pointer to decay channel object at index i
TParticlePDG & operator=(const TParticlePDG &)
assignement operator
Int_t AddDecayChannel(Int_t Type, Double_t BranchingRatio, Int_t NDaughters, Int_t *DaughterPdgCode)
add new decay channel, Particle owns those...
Int_t Strangeness() const
TString fParticleClass
Int_t TrackingCode() const
Double_t Width() const
Int_t Beauty() const
Double_t fI3
Double_t Isospin() const
Double_t Charge() const
TParticlePDG * AntiParticle()
Double_t fMass
Double_t Mass() const
Int_t Parity() const
TObjArray * DecayList()
TParticlePDG()
default constructor
Int_t Y() const
TObjArray * fDecayList
Int_t NDecayChannels() const
Int_t Top() const
Int_t Charm() const
Double_t fSpin
Double_t fLifetime
TParticlePDG * fAntiParticle
void SetAntiParticle(TParticlePDG *ap)
Double_t Spin() const
Double_t fCharge
Basic string class.
Definition TString.h:139
const char * Data() const
Definition TString.h:376