1 // InitialStateHydjet is the class which controls the entire
2 // event simulation (input parameters, physics, output)
3 // InitialStateHydjet inherits from class InitialState
4 // MultIni() member function initializes PYQUEN and calculates the average soft multiplicities
5 // Initialize() member function calls the PYQUEN soubroutine for the hard part of the event
6 // The resonance decay is performed by the function InitialState::Evolve()
10 Nikolai Amelin, Ludmila Malinina, Timur Pocheptsov (C) JINR/Dubna
11 amelin@sunhe.jinr.ru, malinina@sunhe.jinr.ru, pocheptsov@sunhe.jinr.ru
16 #ifndef INITIALSTATEHYDJET_H
17 #define INITIALSTATEHYDJET_H
19 //#ifndef DATABASE_PDG
20 //#include "DatabasePDG.h"
22 //#ifndef PARTICLE_INCLUDED
23 //#include "Particle.h"
26 #include "InitialState.h"
29 class ParticleAllocator;
31 struct InitialParamsHydjet_t {
33 Int_t fNevnt; //number of events
34 Double_t fSqrtS; //cms energy per nucleon
35 Double_t fAw; // atomic number of colliding nuclei
36 Int_t fIfb; // flag of type of centrality generation (=0 is fixed by fBfix, not 0
37 //impact parameter is generated in each event between fBfmin
38 //and fBmax according with Glauber model (f-la 30)
39 Double_t fBmin; //minimum impact parameter in units of nuclear radius RA
40 Double_t fBmax; //maximum impact parameter in units of nuclear radius RA
41 Double_t fBfix; //fix impact parameter in units of nuclear radius RA
43 Int_t fSeed; //parameter to set the random nuber seed (=0 the current time is used
44 //to set the random generator seed, !=0 the value fSeed is
45 //used to set the random generator seed and then the state of random
46 //number generator in PYTHIA MRPY(1)=fSeed
48 Double_t fT; //chemical freeze-out temperature in GeV
49 Double_t fMuB; //baryon potential
50 Double_t fMuS; //strangeness potential
51 Double_t fMuI3; //isospin potential
52 Double_t fThFO; //thermal freeze-out temperature T^th in GeV
53 Double_t fMu_th_pip; // effective chemical potential of positivly charged pions at thermal in GeV
56 Double_t fTau; //proper time value
57 Double_t fSigmaTau; //its standart deviation (emission duration)
58 Double_t fR; //maximal transverse radius
59 Double_t fYlmax; //maximal longitudinal rapidity
60 Double_t fUmax; //maximal transverse velocity multiplaed on \gamma_r
61 Double_t fDelta; //momentum asymmetry parameter
62 Double_t fEpsilon; //coordinate asymmetry parameter
64 Int_t fDecay; // flag to switch on/off hadron decays<0: decays off,>=0: decays on, (default: 0)
65 Double_t fWeakDecay; //flag to switch on/off weak hadron decays <0: decays off, >0: decays on, (default: 0)
66 Int_t fPythDecay; //Flag to choose how to decay resonances in high-pt part, fPythDecay: 0 by PYTHIA decayer,
67 //1 by FASTMC decayer(mstj(21)=0)
69 Int_t fEtaType; // flag to choose rapidity distribution, if fEtaType<=0,
70 //then uniform rapidity distribution in [-fYlmax,fYlmax] if fEtaType>0,
71 //then Gaussian with dispertion = fYlmax
73 Int_t fTMuType; // flag to use calculated chemical freeze-out temperature,
74 //baryon potential and strangeness potential as a function of fSqrtS
76 Double_t fCorrS; // flag and value to include strangeness supression factor
77 Int_t fNhsel; //flag to switch on/off jet and hydro-state production (0: jet
78 // production off and hydro on, 1: jet production on and jet quenching
79 // off and hydro on, 2: jet production on and jet quenching on and
80 // hydro on, 3: jet production on and jet quenching off and hydro
81 // off, 4: jet production on and jet quenching on and hydro off
83 Int_t fIshad; //flag to switch on/off impact parameter dependent nuclear
84 // shadowing for gluons and light sea quarks (u,d,s) (0: shadowing off,
85 // 1: shadowing on for fAw=207, 197, 110, 40, default: 1
87 Double_t fPtmin; //minimal transverse momentum transfer p_T of hard
88 // parton-parton scatterings in GeV (the PYTHIA parameter ckin(3)=fPtmin)
90 // PYQUEN energy loss model parameters:
92 Double_t fT0; // initial temperature (in GeV) of QGP for
93 //central Pb+Pb collisions at mid-rapidity (initial temperature for other
94 //centralities and atomic numbers will be calculated automatically) (allowed range is 0.2<fT0<2)
96 Double_t fTau0; //proper QGP formation time in fm/c (0.01<fTau0<10)
97 Int_t fNf; //number of active quark flavours N_f in QGP fNf=0, 1,2 or 3
98 Int_t fIenglu; // flag to fix type of in-medium partonic energy loss
99 //(0: radiative and collisional loss, 1: radiative loss only, 2:
100 //collisional loss only) (default: 0);
101 Int_t fIanglu; //flag to fix type of angular distribution of in-medium emitted
102 // gluons (0: small-angular, 1: wide-angular, 2:collinear) (default: 0).
106 Int_t fNPartTypes; //counter of hadron species
107 Int_t fPartEnc[1000]; //Hadron encodings. Maximal number of hadron species is 100!!!
108 Double_t fPartMult[2000]; //Multiplicities of hadron species
109 Double_t fPartMu[2000]; //Chemical potentials of hadron species
111 Double_t fMuTh[1000]; //Chemical potentials at thermal freezeout of hadron species
117 class InitialStateHydjet : public InitialState {
119 InitialParamsHydjet_t fParams; // the list of initial state parameters
121 Double_t fVolEff; // the effective volume
124 InitialStateHydjet() : fParams(), fVolEff(0){};
125 ~InitialStateHydjet() {};
127 void SetVolEff(Double_t value) {fVolEff = value;}
128 Double_t GetVolEff() const {return fVolEff;}
129 // virtual Double_t GetTime() {return fParams.fDecay;}
130 virtual Bool_t RunDecays() {return (fParams.fDecay>0 ? kTRUE : kFALSE);}
131 virtual Int_t GetNev() {return fParams.fNevnt;}
132 virtual Double_t GetWeakDecayLimit() {return fParams.fWeakDecay;}
134 virtual void Initialize(List_t &source, ParticleAllocator &allocator);
135 virtual Bool_t ReadParams();
136 virtual Bool_t MultIni();
137 Bool_t IniOfThFreezeoutParameters();
139 Double_t f(Double_t x);
140 Double_t f2(Double_t x, Double_t y);
142 Double_t SimpsonIntegrator(Double_t a, Double_t b, Double_t phi);
143 Double_t SimpsonIntegrator2(Double_t a, Double_t b);
144 Double_t MidpointIntegrator2(Double_t a, Double_t b);