]>
Commit | Line | Data |
---|---|---|
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 | ||
22 | const Int_t kMaxDecayChannels = 20; | |
23 | ||
24 | class 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 |