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