]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TUHKMgen/UHKM/ParticlePDG.h
Fixing some warnings
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / ParticlePDG.h
1 /*
2   Copyright   : The FASTMC and SPHMC Collaboration
3   Author      : Ionut Cristian Arsene 
4   Affiliation : Oslo University, Norway & Institute for Space Sciences, Bucharest, Romania
5   e-mail      : i.c.arsene@fys.uio.no
6   Date        : 2007/05/30
7
8   This class is using the particle and decay lists provided by the 
9   THERMINATOR (Computer Physics Communications 174 669 (2006)) and
10   SHARE (Computer Physics Communications 167 229 (2005)) collaborations.
11 */
12
13 #ifndef PARTICLE_PDG
14 #define PARTICLE_PDG
15
16 #include "Rtypes.h"
17
18 #ifndef DECAY_CHANNEL
19 #include "DecayChannel.h"
20 #endif
21
22 const Int_t kMaxDecayChannels = 20;
23
24 class ParticlePDG {
25  public:
26   ParticlePDG();
27   ParticlePDG(Char_t* name, Int_t pdg, Double_t mass, Double_t width);
28   ~ParticlePDG();
29   
30   void AddChannel(DecayChannel* channel);
31   void SetName(Char_t* name) {
32     for(Int_t i=0; i<9; i++)
33       if(*(name+i) != '\0') fName[i] = *(name+i);
34       else break;
35   }
36   void SetPDG(Int_t value) {fPDG = value;}
37   void SetMass(Double_t value) {fMass = value;}
38   void SetWidth(Double_t value) {fWidth = value;}
39   void SetSpin(Double_t value) {fSpin = value;}
40   void SetIsospin(Double_t value) {fIsospin = value;}
41   void SetIsospinZ(Double_t value) {fIsospinZ = value;}
42   void SetLightQNumber(Double_t value) {fLightQuarkNumber = value;}
43   void SetLightAQNumber(Double_t value) {fAntiLightQuarkNumber = value;}
44   void SetStrangeQNumber(Double_t value) {fStrangeQuarkNumber = value;}
45   void SetStrangeAQNumber(Double_t value) {fAntiStrangeQuarkNumber = value;}
46   void SetCharmQNumber(Double_t value) {fCharmQuarkNumber = value;}
47   void SetCharmAQNumber(Double_t value) {fAntiCharmQuarkNumber = value;}
48   void SetStable(Bool_t value) {fStable = value;}
49   
50   Char_t* GetName() {return fName;}
51   Int_t GetPDG() {return fPDG;}
52   Double_t GetMass() {return fMass;}
53   Double_t GetWidth() {return fWidth;}
54   Int_t GetNDecayChannels() {return fNDecayChannels;}
55   Double_t GetSpin() {return fSpin;}
56   Double_t GetIsospin() {return fIsospin;}
57   Double_t GetIsospinZ() {return fIsospinZ;}
58   Double_t GetLightQNumber() {return fLightQuarkNumber;}
59   Double_t GetLightAQNumber() {return fAntiLightQuarkNumber;}
60   Double_t GetStrangeQNumber() {return fStrangeQuarkNumber;}
61   Double_t GetStrangeAQNumber() {return fAntiStrangeQuarkNumber;}
62   Double_t GetCharmQNumber() {return fCharmQuarkNumber;}
63   Double_t GetCharmAQNumber() {return fAntiCharmQuarkNumber;}
64   Double_t GetBaryonNumber() {return (fLightQuarkNumber     + fStrangeQuarkNumber     + fCharmQuarkNumber -  
65                                       fAntiLightQuarkNumber - fAntiStrangeQuarkNumber - fAntiCharmQuarkNumber)/3.;}
66   Double_t GetStrangeness() {return (fAntiStrangeQuarkNumber - fStrangeQuarkNumber);}
67   Double_t GetCharmness() {return (fCharmQuarkNumber - fAntiCharmQuarkNumber);}
68   Double_t GetElectricCharge() {return fIsospinZ + (GetBaryonNumber()+GetStrangeness()+GetCharmness())/2.;}
69   Bool_t GetStableStatus() {
70     return fStable;
71   }  
72
73   Double_t GetFullBranching();
74   DecayChannel* GetDecayChannel(Int_t i) {
75     if(0<=i && i<fNDecayChannels) 
76       return fDecayChannels[i];
77     else
78       return 0x0;
79   }
80
81  private:
82   ParticlePDG(const ParticlePDG&);
83   ParticlePDG& operator=(const ParticlePDG&);
84
85   Char_t        fName[9];
86   Int_t         fPDG;
87   Double_t      fMass;
88   Double_t      fWidth;
89   Double_t      fSpin;                         // J
90   Double_t      fIsospin;                      // I
91   Double_t      fIsospinZ;                     // I3
92   Double_t      fLightQuarkNumber;             // u, d quark number
93   Double_t      fAntiLightQuarkNumber;         // u-, d- quark number
94   Double_t      fStrangeQuarkNumber;           // s quark number
95   Double_t      fAntiStrangeQuarkNumber;       // s- quark number
96   Double_t      fCharmQuarkNumber;             // c quark number
97   Double_t      fAntiCharmQuarkNumber;         // c- quark number
98   Int_t         fNDecayChannels;
99   Bool_t        fStable;                       // flag to turn on/off decay
100   DecayChannel* fDecayChannels[kMaxDecayChannels];   
101 };
102
103 #endif