]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TUHKMgen/UHKM/ParticlePDG.h
New generator: TUHKMgen
[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 {
25 private:
26 Char_t fName[9];
27 Int_t fPDG;
28 Double_t fMass;
29 Double_t fWidth;
30 Double_t fSpin; // J
31 Double_t fIsospin; // I
32 Double_t fIsospinZ; // I3
33 Double_t fLightQuarkNumber; // u, d quark number
34 Double_t fAntiLightQuarkNumber; // u-, d- quark number
35 Double_t fStrangeQuarkNumber; // s quark number
36 Double_t fAntiStrangeQuarkNumber; // s- quark number
37 Double_t fCharmQuarkNumber; // c quark number
38 Double_t fAntiCharmQuarkNumber; // c- quark number
39 Int_t fNDecayChannels;
40 Bool_t fStable; // flag to turn on/off decay
41 DecayChannel* fDecayChannels[kMaxDecayChannels];
42
43 public:
44 ParticlePDG();
45 ParticlePDG(Char_t* name, Int_t pdg, Double_t mass, Double_t width);
46 ~ParticlePDG();
47
48 void AddChannel(DecayChannel* channel);
49 void SetName(Char_t* name) {
50 for(Int_t i=0; i<9; i++)
51 if(*(name+i) != '\0') fName[i] = *(name+i);
52 else break;
53 }
54 void SetPDG(Int_t value) {fPDG = value;}
55 void SetMass(Double_t value) {fMass = value;}
56 void SetWidth(Double_t value) {fWidth = value;}
57 void SetSpin(Double_t value) {fSpin = value;}
58 void SetIsospin(Double_t value) {fIsospin = value;}
59 void SetIsospinZ(Double_t value) {fIsospinZ = value;}
60 void SetLightQNumber(Double_t value) {fLightQuarkNumber = value;}
61 void SetLightAQNumber(Double_t value) {fAntiLightQuarkNumber = value;}
62 void SetStrangeQNumber(Double_t value) {fStrangeQuarkNumber = value;}
63 void SetStrangeAQNumber(Double_t value) {fAntiStrangeQuarkNumber = value;}
64 void SetCharmQNumber(Double_t value) {fCharmQuarkNumber = value;}
65 void SetCharmAQNumber(Double_t value) {fAntiCharmQuarkNumber = value;}
66 void SetStable(Bool_t value) {fStable = value;}
67
68 Char_t* GetName() {return fName;}
69 Int_t GetPDG() {return fPDG;}
70 Double_t GetMass() {return fMass;}
71 Double_t GetWidth() {return fWidth;}
72 Int_t GetNDecayChannels() {return fNDecayChannels;}
73 Double_t GetSpin() {return fSpin;}
74 Double_t GetIsospin() {return fIsospin;}
75 Double_t GetIsospinZ() {return fIsospinZ;}
76 Double_t GetLightQNumber() {return fLightQuarkNumber;}
77 Double_t GetLightAQNumber() {return fAntiLightQuarkNumber;}
78 Double_t GetStrangeQNumber() {return fStrangeQuarkNumber;}
79 Double_t GetStrangeAQNumber() {return fAntiStrangeQuarkNumber;}
80 Double_t GetCharmQNumber() {return fCharmQuarkNumber;}
81 Double_t GetCharmAQNumber() {return fAntiCharmQuarkNumber;}
82 Double_t GetBaryonNumber() {return (fLightQuarkNumber + fStrangeQuarkNumber + fCharmQuarkNumber -
83 fAntiLightQuarkNumber - fAntiStrangeQuarkNumber - fAntiCharmQuarkNumber)/3.;}
84 Double_t GetStrangeness() {return (fAntiStrangeQuarkNumber - fStrangeQuarkNumber);}
85 Double_t GetCharmness() {return (fCharmQuarkNumber - fAntiCharmQuarkNumber);}
86 Double_t GetElectricCharge() {return fIsospinZ + (GetBaryonNumber()+GetStrangeness()+GetCharmness())/2.;}
87 Bool_t GetStableStatus() {
88 return fStable;
89 }
90
91 Double_t GetFullBranching();
92 DecayChannel* GetDecayChannel(Int_t i) {
93 if(0<=i && i<fNDecayChannels)
94 return fDecayChannels[i];
95 else
96 return 0x0;
97 }
98};
99
100#endif