]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TUHKMgen/UHKM/InitialStateHydjet.h
updated macros for making PPR plots
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / InitialStateHydjet.h
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()
7
8 /*                                                                            
9                                                                             
10         Nikolai Amelin, Ludmila Malinina, Timur Pocheptsov (C) JINR/Dubna
11       amelin@sunhe.jinr.ru, malinina@sunhe.jinr.ru, pocheptsov@sunhe.jinr.ru 
12                            November. 2, 2005                                
13
14 */
15
16 #ifndef INITIALSTATEHYDJET_H
17 #define INITIALSTATEHYDJET_H
18
19 //#ifndef DATABASE_PDG
20 //#include "DatabasePDG.h"
21 //#endif
22 //#ifndef PARTICLE_INCLUDED
23 //#include "Particle.h"
24 //#endif
25 #ifndef INITIAL_STATE
26 #include "InitialState.h"
27 #endif
28
29 class ParticleAllocator;
30
31 struct InitialParamsHydjet_t {
32
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
42
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
47        
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 
54
55        
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
63   
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)  
68   
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 
72   
73    Int_t fTMuType;     // flag to use calculated chemical freeze-out temperature,
74                                      //baryon potential and strangeness potential as a function of fSqrtS 
75
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
82  
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
86   
87    Double_t fPtmin;       //minimal transverse momentum transfer p_T of hard
88                                    // parton-parton scatterings in GeV (the PYTHIA parameter ckin(3)=fPtmin)
89    
90 //  PYQUEN energy loss model parameters:
91  
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) 
95   
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).
103   
104   
105
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
110
111   Double_t fMuTh[1000];                    //Chemical potentials at thermal freezeout of hadron species
112
113
114 };
115
116
117 class InitialStateHydjet : public InitialState {
118  public:
119   InitialParamsHydjet_t fParams;             // the list of initial state parameters
120  private:
121   Double_t fVolEff;                           // the effective volume
122
123  public:
124   InitialStateHydjet() : fParams(), fVolEff(0){};
125   ~InitialStateHydjet() {};
126   
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;}  
133   
134   virtual void Initialize(List_t &source, ParticleAllocator &allocator);
135   virtual Bool_t ReadParams();
136   virtual Bool_t MultIni();
137   Bool_t IniOfThFreezeoutParameters();
138  
139   Double_t f(Double_t x);
140   Double_t f2(Double_t x, Double_t y);
141    
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);
145 };
146
147 #endif