]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TUHKMgen/AliGenUHKM.h
Macro to study fake tracks by comparing reconstructed tracks with TrackRefs.
[u/mrichter/AliRoot.git] / TUHKMgen / AliGenUHKM.h
CommitLineData
b1c2e580 1#ifndef ALIGENUHKM_H
2#define ALIGENUHKM_H
3
4#include "AliGenMC.h"
5#include <TString.h>
6
7#include "TUHKMgen.h"
8#ifndef INITIALSTATEHYDJET_INCLUDED
9#include "InitialStateHydjet.h"
10#endif
11
12#include <string>
13using namespace std;
14
15class TUHKMgen;
16class TParticle;
17
18class AliGenUHKM : public AliGenMC
19{
b1c2e580 20 public:
21 AliGenUHKM();
22 AliGenUHKM(Int_t npart);
23
24 virtual ~AliGenUHKM();
25 virtual void Generate();
26 virtual void Init();
27 // virtual void AddHeader(AliGenEventHeader* header);
28
29 // Setters
30 // set reasonable default parameters suited for central Au+Au collisions at RHIC(200GeV)
31 void SetAllParametersRHIC();
32 // set reasonable default parameters suited for central Pb+Pb collisions at LHC(5.5TeV)
33 void SetAllParametersLHC();
34
35 void SetEcms(Double_t value) {fHydjetParams.fSqrtS = value;} // CMS energy per nucleon [GeV] (<2.24 given temperature and ch pot are used)
36 void SetAw(Double_t value) {fHydjetParams.fAw = value;} // nuclei mass number
37 void SetBmin(Double_t value) {fHydjetParams.fBmin = value;} // Minimum impact parameter
38 void SetBmax(Double_t value) {fHydjetParams.fBmax = value;} // Maximum impact parameter
39 void SetChFrzTemperature(Double_t value) {fHydjetParams.fT = value;} // Temperature for the chemical freezeout [GeV]
40 void SetMuB(Double_t value) {fHydjetParams.fMuB = value;} // Baryonic chemical potential [GeV]
41 void SetMuS(Double_t value) {fHydjetParams.fMuS = value;} // Strangeness chemical potential [GeV]
42 void SetMuQ(Double_t value) {fHydjetParams.fMuI3 = value;} // Isospin chemical potential [GeV]
43 void SetThFrzTemperature(Double_t value) {fHydjetParams.fThFO = value;} // Temperature for the thermal freezeout [GeV]
44 void SetMuPionThermal(Double_t value) {fHydjetParams.fMu_th_pip = value;} // Chemical potential for pi+ at thermal freezeout [GeV]
45 void SetSeed(Int_t value) {fHydjetParams.fSeed = value;} //parameter to set the random nuber seed (=0 the current time is used
46 //to set the random generator seed, !=0 the value fSeed is
47 //used to set the random generator seed and then the state of random
48 //number generator in PYTHIA MRPY(1)=fSeed
49 void SetTauB(Double_t value) {fHydjetParams.fTau = value;} // Proper time for the freeze-out hyper surface [fm/c]
50 void SetSigmaTau(Double_t value) {fHydjetParams.fSigmaTau = value;} // Standard deviation for the proper time (emission duration) [fm/c]
51 void SetRmaxB(Double_t value) {fHydjetParams.fR = value;} // Maximal transverse radius [fm]
52 void SetYlMax(Double_t value) {fHydjetParams.fYlmax = value;} // Maximal fireball longitudinal rapidity
53 void SetEtaRMax(Double_t value) {fHydjetParams.fUmax = value;} // Maximal transverse velocity
54 void SetMomAsymmPar(Double_t value) {fHydjetParams.fDelta = value;} // Momentum asymmetry parameter
55 void SetCoordAsymmPar(Double_t value) {fHydjetParams.fEpsilon = value;} // Coordinate asymmetry parameter
56
57 void SetFlagWeakDecay(Int_t value) {fHydjetParams.fWeakDecay = value;} //flag to switch on/off weak hadron decays <0:decays off, >0: decays on, (default: 0)
58 void SetEtaType(Int_t value) {fHydjetParams.fEtaType = value;} // flag to choose rapidity distribution, if fEtaType<=0,
59 //then uniform rapidity distribution in [-fYlmax,fYlmax] if fEtaType>0,
60 //then Gaussian with dispertion = fYlmax
61 void SetGammaS(Double_t value) {fHydjetParams.fCorrS = value;} // Strangeness suppression parameter (if gamma_s<=0 then it will be calculated)
62
63 //PYQUEN parameters
64 void SetPyquenNhsel(Int_t value) {fHydjetParams.fNhsel = value;} // Flag to choose the type of event to be generated
65 // fNhsel = 0 --> UHKM fireball, no jets
66 // fNhsel = 1 --> UHKM fireball, jets with no quenching
67 // fNhsel = 2 --> UHKM fireball, jets with quenching
68 // fNhsel = 3 --> no UHKM fireball, jets with no quenching
69 // fNhsel = 4 --> no UHKM fireball, jets with quenching
70 void SetPyquenShad(Int_t value) {fHydjetParams.fIshad = value;}//flag to switch on/off impact parameter dependent nuclear
71 // shadowing for gluons and light sea quarks (u,d,s) (0: shadowing off,
72 // 1: shadowing on for fAw=207, 197, 110, 40, default: 1
73 void SetPyquenPtmin(Double_t value) {fHydjetParams.fPtmin = value;} // Pyquen input parameter for minimum Pt of parton-parton scattering (5GeV<pt<500GeV)
74 void SetPyquenT0(Double_t value) {fHydjetParams.fT0 = value;} //proper QGP formation tempereture
75 void SetPyquenTau0(Double_t value) {fHydjetParams.fTau0 = value;} //proper QGP formation time in fm/c (0.01<fTau0<10)
76 void SetPyquenNf(Int_t value) {fHydjetParams.fNf = value;} //number of active quark flavours N_f in QGP fNf=0, 1,2 or 3
77 void SetPyquenIenglu(Int_t value) {fHydjetParams.fIenglu = value;} // flag to fix type of in-medium partonic energy loss
78 //(0: radiative and collisional loss, 1: radiative loss only, 2:
79 //collisional loss only) (default: 0);
80 void SetPyquenIanglu(Int_t value) {fHydjetParams.fIanglu = value;} //flag to fix type of angular distribution of in-medium emitted
81 //gluons (0: small-angular, 1: wide-angular, 2:collinear) (default: 0).
82
83
84 void SetPDGParticleFile(Char_t *name) {strcpy(fParticleFilename, name);}//Set the filename containing the particle PDG info
85 void SetPDGDecayFile(Char_t *name) {strcpy(fDecayFilename, name);} //Set the filename containing the PDG decay channels info
86 void SetPDGParticleStable(Int_t pdg, Bool_t value) { // Turn on/off the decay flag for a PDG particle
87 fStableFlagPDG[fStableFlagged] = pdg;
88 fStableFlagStatus[fStableFlagged++] = value;
89 }
90 void SetUseCharmParticles(Bool_t flag) {fUseCharmParticles = flag;}
91 void SetMinimumWidth(Double_t value) {fMinWidth = value;}
92 void SetMaximumWidth(Double_t value) {fMaxWidth = value;}
93 void SetMinimumMass(Double_t value) {fMinMass = value;}
94 void SetMaximumMass(Double_t value) {fMaxMass = value;}
95
96 // Getters
97 Double_t GetEcms() {return fHydjetParams.fSqrtS;}
98 Double_t GetAw() {return fHydjetParams.fAw;}
99 Double_t GetBmin() {return fHydjetParams.fBmin;}
100 Double_t GetBmax() {return fHydjetParams.fBmax;}
101 Double_t GetChFrzTemperature() {return fHydjetParams.fT;}
102 Double_t GetMuB() {return fHydjetParams.fMuB;}
103 Double_t GetMuS() {return fHydjetParams.fMuS;}
104 Double_t GetMuQ() {return fHydjetParams.fMuI3;}
105 Double_t GetThFrzTemperature() {return fHydjetParams.fThFO;}
106 Double_t GetMuPionThermal() {return fHydjetParams.fMu_th_pip;}
107 Int_t GetSeed() {return fHydjetParams.fSeed;}
108 Double_t GetTauB() {return fHydjetParams.fTau;}
109 Double_t GetSigmaTau() {return fHydjetParams.fSigmaTau;}
110 Double_t GetRmaxB() {return fHydjetParams.fR;}
111 Double_t GetYlMax() {return fHydjetParams.fYlmax;}
112 Double_t GetEtaRMax() {return fHydjetParams.fUmax;}
113 Double_t GetMomAsymmPar() {return fHydjetParams.fDelta;}
114 Double_t GetCoordAsymmPar() {return fHydjetParams.fEpsilon;}
115 Int_t GetFlagWeakDecay() {return fHydjetParams.fWeakDecay;}
116 Int_t GetEtaType() {return fHydjetParams.fEtaType;}
117 Double_t GetGammaS() {return fHydjetParams.fCorrS;}
118 Int_t GetPyquenNhsel() {return fHydjetParams.fNhsel;}
119 Int_t GetPyquenShad() {return fHydjetParams.fIshad;}
120 Double_t GetPyquenPtmin() {return fHydjetParams.fPtmin;}
121 Double_t GetPyquenT0() {return fHydjetParams.fT0;}
122 Double_t GetPyquenTau0() {return fHydjetParams.fTau0;}
123 Double_t GetPyquenNf() {return fHydjetParams.fNf;}
124 Double_t GetPyquenIenglu() {return fHydjetParams.fIenglu;}
125 Double_t GetPyquenIanglu() {return fHydjetParams.fIanglu;}
126 Char_t* GetPDGParticleFile() {return fParticleFilename;}
127 Char_t* GetPDGDecayFile() {return fDecayFilename;}
128 Bool_t GetUseCharmParticles(){return fUseCharmParticles;}
129 Double_t GetMinimumWidth() {return fMinWidth;}
130 Double_t GetMaximumWidth() {return fMaxWidth;}
131 Double_t GetMinimumMass() {return fMinMass;}
132 Double_t GetMaximumMass() {return fMaxMass;}
133
786056a2 134 protected:
135 Int_t fTrials; // Number of trials
136 TUHKMgen *fUHKMgen; // UHKM
137
138 InitialParamsHydjet_t fHydjetParams; // list of parameters for the initial state
139 // details for the PDG database
140 Char_t fParticleFilename[256]; // particle list filename
141 Char_t fDecayFilename[256]; // decay table filename
142 Int_t fStableFlagPDG[500]; // array of PDG codes flagged
143 Bool_t fStableFlagStatus[500]; // array of decay flag status
144 Int_t fStableFlagged; // number of toggled decay flags
145 Bool_t fUseCharmParticles; // flag to turn on/off the use of charm particles
146 Double_t fMinWidth; // minimum decay width for the particles to be used from the PDG database
147 Double_t fMaxWidth; // maximum ----
148 Double_t fMinMass; // minimum mass for the particles to be used from the PDG database
149 Double_t fMaxMass; // maximum ----
150
151 void SetAllParameters();
152 void CheckPDGTable();
153
154 private:
155 void Copy(TObject &rhs) const;
156 AliGenUHKM(const AliGenUHKM&);
157 AliGenUHKM & operator = (const AliGenUHKM &);
158
b1c2e580 159 ClassDef(AliGenUHKM, 6) // AliGenerator interface to UHKM
160};
161#endif
162
163
164
165
166