Overlaps corrected, new shape of sectors
[u/mrichter/AliRoot.git] / THydjet / HydCommon.h
1 #ifndef ROOT_HydCommon
2 #define ROOT_HydCommon
3 //****************************************************************************//
4 //      -------------------------------------------------------------         //
5 //      HYDJET, fast MC code to simulate flow effects, jet production         // 
6 //      and jet quenching in heavy ion AA collisions at the LHC               //
7 //      -------------------------------------------------------------         //
8 //      This code is merging HYDRO (flow effects), PYTHIA6.4 (hard jet        // 
9 //      production) and PYQUEN (jet quenching)                                //
10 //      --------------------------------------------------------------        //
11 //                                                                            //
12 //      Igor Lokhtin, SINP MSU, Moscow, RU                                    //
13 //        e-mail: Igor.Lokhtin@cern.ch                                        // 
14 //                                                                            //
15 //      Reference for HYDJET:                                                 // 
16 //      I.P. Lokhtin, A.M. Snigirev,                                          // 
17 //      Eur. Phys. J. C 46 (2006) 211.                                        //
18 //                                                                            //
19 //      References for HYDRO:                                                 // 
20 //      N.A.Kruglov, I.P.Lokhtin, L.I.Sarycheva, A.M.Snigirev,                // 
21 //      Z. Phys. C 76 (1997) 99;                                              //  
22 //      I.P.Lokhtin, L.I.Sarycheva, A.M.Snigirev,                             // 
23 //      Phys. Lett. B 537 (2002) 261;                                         //   
24 //    I.P.Lokhtin, A.M.Snigirev, Preprint SINP MSU 2004-14/753,hep-ph/0312204.//
25 //                                                                            //
26 //      References for PYQUEN:                                                // 
27 //      I.P.Lokhtin, A.M.Snigirev, Eur.Phys.J. C16 (2000) 527;                //   
28 //    I.P.Lokhtin, A.M.Snigirev, Preprint SINP MSU 2004-13/752, hep-ph/0406038.//
29 //                                                                             //
30 //      References for PYTHIA:                                                 //
31 //      T.Sjostrand et al., Comput.Phys.Commun. 135 (2001) 238;                // 
32 //      T.Sjostrand, S. Mrena and P. Skands, hep-ph/0603175.                   //
33 //                                                                             //
34 //      Reference for JETSET event format:                                     //
35 //      T.Sjostrand, Comput.Phys.Commun. 82 (1994) 74.                         //
36 //                                                                             // 
37 //      --------------------------------------------------------------         //
38 //      Web-page:                                                              //
39 //      http://cern.ch/lokhtin/hydro                                           //
40 //      --------------------------------------------------------------         //
41 //                                                                             //
42 //**************************************************************************** //
43 #ifndef __CFORTRAN_LOADED
44 //*KEEP,cfortran.
45 #include "cfortran.h"
46 //*KEND.
47 #endif
48
49 extern "C" {
50
51
52 /*=========================================================*/
53 /* COMMON/HYFLOW/YTFL,YLFL,FPART */
54 /*---------------------------------------------------------*/
55 typedef struct {
56    float    ytfl;
57    float    ylfl;
58    float    fpart;
59 } HyflowCommon;
60
61 #define HYFLOW COMMON_BLOCK(HYFLOW,hyflow)
62 COMMON_BLOCK_DEF(HyflowCommon,HYFLOW);
63
64 /**************************************************************************/
65 /*           D E S C R I P T I O N :                                      */
66 /*------------------------------------------------------------------------*/
67 /*COMMON /hyflow/ ytfl,ylfl,fpart
68 ytfl - maximum transverse collective rapidity, controls slope of low-pt spectra
69 (allowed range is 0.01<ytfl<3.0, default value is ytfl=1.).
70 ylfl - maximum longitudinal collective rapidity, controls width of eta-spectra
71 (allowed range is 0.01<ylfl<7.0, default value is ylfl=5.).
72 fpart - fraction of soft multiplicity proportional to the number of nucleon
73 participants; then (1.-fpart) will be the fraction of soft multiplicity
74 proportional to the number of nucleon-nucleon binary sub-collisions
75 (allowed range is 0.01<fpart<1.0, default value is fpart=1.).
76 ========================================================================*/
77
78 /*========================================================================*/
79 /* COMMON/HYJPAR/NHSEL,PTMIN,NJET                                         */
80 /*------------------------------------------------------------------------*/
81 typedef struct {
82    Int_t      nhsel;
83    float      ptmin;
84    Int_t      njet;
85 } HyjparCommon;
86
87 #define HYJPAR COMMON_BLOCK(HYJPAR,hyjpar)
88 COMMON_BLOCK_DEF(HyjparCommon,HYJPAR);
89 /*************************************************************************/
90 /*           D E S C R I P T I O N :                                     */
91 /*-----------------------------------------------------------------------*/
92 /*COMMON /hyjpar/ nhsel,ptmin,njet
93 Input Parameters:
94 nhsel - flag to include jet production in hydro event:
95 nhsel=0 - jet production off (pure HYDRO event);
96 nhsel=1 - jet production on, jet quenching off (HYDRO+njet*PYTHIA events);
97 nhsel=2 - jet production & jet quenching on (HYDRO+njet*PYQUEN events);
98 nhsel=3 - jet production on, jet quenching off, HYDRO off (njet*PYTHIA events);
99 nhsel=4 - jet production & jet quenching on, HYDRO off (njet*PYQUEN events);
100 (default value is nhsel = 0).
101 ptmin - minimal pt of parton-parton scattering in PYTHIA event, parameter
102 ckin(3) in PYTHIA common block /pysubs/ should be set equal to ptmin
103 (allowed range is 5 GeV < ptmin < 500 GeV, default value ptmin=10 GeV).
104
105 Output Parameters:
106 njet - number of hard parton-parton scatterings with pt>ptmin in event.
107 */
108 /*=======================================================================*/
109
110
111
112 /*========================================================*/
113 /* COMMON/HYFPAR/ BGEN,NBCOL,NPART.NPYT,NHYD              */
114 /*--------------------------------------------------------*/
115 typedef struct {
116    float  bgen;
117    int  nbcol;
118    int  npart;
119    int  npyt;
120    int  nhyd;
121 } HyfparCommon;
122
123 #define HYFPAR COMMON_BLOCK(HYFPAR,hyfpar)
124 COMMON_BLOCK_DEF(HyfparCommon,HYFPAR);
125 /*************************************************************************/
126 /*           D E S C R I P T I O N :                                     */
127 /*-----------------------------------------------------------------------*/
128 /*common /hyfpar/ bgen,nbcol,npart,npyt,nhyd
129 bgen - generated value of impact parameter in units of nucleus radius RA
130 (i.e the value in [fm] will be bgen*RA).
131 nbcol - mean number of nucleon-nucleon binary sub-collisions at given 'bgen'.
132 npart - mean number of nucleon participants at given 'bgen'.
133 npyt - multiplicity of hard PYTHIA/PYQUEN-induced particles in event
134        (including full parton story).
135 nhyd - multiplicity of soft HYDRO-induced hadrons in event.
136                                                                          */
137 /*=======================================================================*/
138
139 /*=======================================================================*/
140 // COMMON/LUJETS/ N,K(150000,5),P(150000,5),V(150000,5)
141 /*-----------------------------------------------------------------------*/
142 typedef struct {
143    Int_t    n;
144    Int_t    k[5][150000];
145    Float_t p[5][150000];
146    Float_t v[5][150000];
147 } LujetsCommon;
148
149 #define LUJETS COMMON_BLOCK(LUJETS,lujets)
150 COMMON_BLOCK_DEF(LujetsCommon,LUJETS);
151 /*************************************************************************/
152 /*           D E S C R I P T I O N :                                     */
153 /*-----------------------------------------------------------------------*/
154 /*COMMON /lujets/ n,k(150000,5),p(150000,5),v(150000,5)
155 n - total event multiplicity
156 k(i,1-5) - particle codes
157 p(i,1-5) - particle four-momentum and mass
158 v(i,1-5) - particle vertex, production time and lifetime
159
160 NOTE! First 'npyt' lines in event list correspond to PYTHIA/PYQUEN-induced
161       particles, last 'nhyd' lines -- HYDRO-induced hadrons.
162                                                                          */
163 /*=======================================================================*/
164
165 /*=======================================================================*/
166 // COMMON/HYJETS/ NL,KL(150000,5),PL(150000,5),VL(150000,5)
167 /*-----------------------------------------------------------------------*/
168 typedef struct {
169    Int_t     nl;
170    Int_t     kl[5][150000];
171    Float_t  pl[5][150000];
172    Float_t  vl[5][150000];
173 } HyjetsCommon;
174
175 #define HYJETS COMMON_BLOCK(HYJETS,hyjets)
176 COMMON_BLOCK_DEF(HyjetsCommon,HYJETS);
177 /*************************************************************************/
178 /*           D E S C R I P T I O N :                                     */
179 /*-----------------------------------------------------------------------*/
180 /*COMMON /hyjets/ nl,kl(150000,5),pl(150000,5),vl(150000,5)
181 contains list of parton history of event in the same format as /lujets/ */
182 /*=======================================================================*/
183
184 /* COMMON from Pythia */
185
186 /*=======================================================================*/
187 /* COMMON/PYDAT1/ MSTU(200),PARU(200),MSTJ(200),PARJ(200)                */
188 /*-----------------------------------------------------------------------*/
189 typedef struct {
190   Int_t     mstu[200];
191   Double_t  paru[200];
192   Int_t     mstj[200];
193   Double_t  parj[200];
194 } Pydat1Common;
195
196 #define PYDAT1 COMMON_BLOCK(PYDAT1,pydat1)
197 COMMON_BLOCK_DEF(Pydat1Common,PYDAT1);
198
199
200 /*=======================================================================*/
201 // COMMON/PYSUBS/ MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
202 /*-----------------------------------------------------------------------*/
203 typedef struct {
204   Int_t    msel;
205   Int_t    mselpd;
206   Int_t    msub[500];
207   Int_t    kfin[2][81];
208   Double_t ckin[200];
209 } PysubsCommon;
210
211 #define PYSUBS COMMON_BLOCK(PYSUBS,pysubs)
212 COMMON_BLOCK_DEF(PysubsCommon,PYSUBS);
213
214 /*=======================================================================*/
215 // COMMON/PYPARS/ MSTP(200),PARP(200),MSTI(200),PARI(200)
216 /*-----------------------------------------------------------------------*/
217 typedef struct {
218   Int_t     mstp[200];
219   Double_t  parp[200];
220   Int_t     msti[200];
221   Double_t  pari[200];
222 } PyparsCommon;
223
224 #define PYPARS COMMON_BLOCK(PYPARS,pypars)
225 COMMON_BLOCK_DEF(PyparsCommon,PYPARS);
226
227 }
228
229 #endif