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