]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TUHKMgen/UHKM/ParticlePDG.h
Fixing some warnings
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / ParticlePDG.h
CommitLineData
b1c2e580 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
22const Int_t kMaxDecayChannels = 20;
23
24class ParticlePDG {
b1c2e580 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 }
786056a2 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];
b1c2e580 101};
102
103#endif