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
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.
19 #include "DecayChannel.h"
22 const Int_t kMaxDecayChannels = 20;
27 ParticlePDG(Char_t* name, Int_t pdg, Double_t mass, Double_t width);
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);
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;}
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() {
73 Double_t GetFullBranching();
74 DecayChannel* GetDecayChannel(Int_t i) {
75 if(0<=i && i<fNDecayChannels)
76 return fDecayChannels[i];
82 ParticlePDG(const ParticlePDG&);
83 ParticlePDG& operator=(const ParticlePDG&);
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];