Do not include from subdirectories
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / HYJET_COMMONS.h
1 // This header file declares structure objects for
2 // accessing common blocks from the fortran side of HYDJET++ (PYQUEN and PYTHIA).
3 // The input parameters and output information are transmitted 
4 // through these structures.
5
6 #ifndef HYJETCOMMON
7 #define HYJETCOMMON
8
9 extern "C" {
10
11 #define f2cFortran
12 #include "cfortran.h"
13
14   //----------------------------------------------------------------
15   // common /hyipar/ bminh,bmaxh,AW,RA,npar0,nbco0,Apb,Rpb,np,init,ipr        
16   typedef struct // for HYIPAR common block
17   {
18     Double_t bminh;  // minimum impact parameter in units of nucleus radius RA   
19     Double_t bmaxh;  // maximum impact parameter in units of nucleus radius RA
20     Double_t AW;     // beam and target nucleus atomic weight
21     Double_t RA;     // nucleus radius
22     Double_t npar0;  // number of participants  at "reference point" (Pb,b=0) 
23     Double_t nbco0;  // number of binary sub-collisions at "reference point" (Pb,b=0)
24     Double_t Apb;    // Apb=207
25     Double_t Rpb;    //Rpb=1.15*Apb^1/3
26     Double_t np;     //internal variable of HYDJET
27     Int_t init;      //internal flag to start HYDJET initialization
28     Int_t ipr;      //internal flag to start HYDJET initialization
29   } HYIPARCommon;
30   
31 #define HYIPAR COMMON_BLOCK(HYIPAR,hyipar)
32   COMMON_BLOCK_DEF(HYIPARCommon, HYIPAR);
33   //----------------------------------------------------------------
34
35   //      common/service/iseed_fromC,iPythDecay,parPYTH(100)
36   typedef struct // for SERVICE common block
37   {
38     Int_t iseed_fromC;      // random number generator seed
39     Int_t iPythDecay; //internal parameter for swith on/off PYTHIA decayer not used under ALIROOT 
40     Double_t parPYTH[100]; //array for PYTHIA internal parameters
41   } SERVICECommon;
42  
43 #define SERVICE COMMON_BLOCK(SERVICE,service)
44   COMMON_BLOCK_DEF(SERVICECommon, SERVICE);
45   //----------------------------------------------------------------
46
47   //  common/SERVICEEV/ipdg,delta
48  // variables for program MYDELTA which allows to transmit delta -limits for BW from PYTHIA to c++ part
49   typedef struct // for SERVICEEV common block
50   {
51     Float_t delta;    // limits for the resonance Breit-Wigner mass (from PYTHIA)
52     Int_t KC;  //PYTHIA internal compressed code of particle        
53     Int_t ipdg; //particle pdg code transmitted from from C++
54   }SERVICEEVCommon;
55  
56 #define SERVICEEV COMMON_BLOCK(SERVICEEV,serviceev)
57   COMMON_BLOCK_DEF(SERVICEEVCommon, SERVICEEV);
58
59   //----------------------------------------------------------------
60   // common /hyjpar/ ptmin,sigin,sigjet,nhsel,ishad,njet 
61   typedef struct // for HYJPAR common block
62   {
63     Double_t ptmin;   // minimum pt for N-N collision in PYTHIA 
64     Double_t sigin;   // total inelastic NN cross section at given c.m.s. energy (in mb)
65     Double_t sigjet;  // hard scattering NN cross section at given ptmin and energy (in mb).
66     Int_t nhsel;      // nhsel parameter for the event type (0-hydro only; 1-hydro+unquenched jets; 
67                       //                 2-hydro+quenched jets; 3-unquenched jets only; 4-quenched jets only)
68     Int_t ishad;      // flag for turning on/off nuclear shadowing
69     Int_t njet;       // number of hard parton-parton scatterings with pt>ptmin in event
70   } HYJPARCommon;
71  
72 #define HYJPAR COMMON_BLOCK(HYJPAR,hyjpar)
73   COMMON_BLOCK_DEF(HYJPARCommon, HYJPAR);
74   //----------------------------------------------------------------
75
76
77   //      common /hypyin/ ene,rzta,rnta,bfix,ifb,nh
78   typedef struct //for HYPYIN common block
79   {
80     Double_t ene; //CMS energy per nucleon [GeV]
81     Double_t rzta;//fraction of protons in nucleus
82     Double_t rnta;//fraction of neutrons in nucleus
83     Double_t bfix; //fix impact parameter
84     Int_t ifb; // flag of type of centrality generation 
85                // =0 impact parameter is fixed (bfix)  
86                 // >0 or <0 impact parameter is generated with standard Glauber geometry 
87                 //              between minimum (bmin) and maximum (bmax) values; 
88                               
89     Int_t nh; //mean soft mult. in central PbPb
90   }HYPYINCommon;
91   
92 #define HYPYIN COMMON_BLOCK(HYPYIN,hypyin)
93   COMMON_BLOCK_DEF(HYPYINCommon, HYPYIN);
94   
95   
96   //----------------------------------------------------------------
97   //  common /hyfpar/ bgen,nbcol,npart,npyt,nhyd,npart0        
98   typedef struct // for HYFPAR common block
99   {
100     Double_t   bgen;           // impact parameter 
101     Double_t   nbcol;          // number of binary collisions
102     Double_t   npart;          // n participants
103     Double_t   npart0;         // n participants   
104     Int_t   npyt;              // number of pythia particles
105     Int_t   nhyd;              // number of hydjet particles
106   } HYFPARCommon;
107   
108 #define HYFPAR COMMON_BLOCK(HYFPAR,hyfpar)
109   COMMON_BLOCK_DEF(HYFPARCommon, HYFPAR);
110   
111   //----------------------------------------------------------------
112   typedef struct //for HYPART common block
113   {
114     Double_t ppart[50000][10];   // particle information
115     Double_t bmin;               // min impact parameter
116     Double_t bmax;               // max impact parameter
117     Int_t njp;                   // 
118   }HYPARTCommon;
119   
120 #define HYPART COMMON_BLOCK(HYPART,hypart)
121   COMMON_BLOCK_DEF(HYPARTCommon, HYPART);
122   //----------------------------------------------------------------
123
124   //      common /pyqpar/ T0,tau0,nf,ienglu,ianglu 
125   typedef struct // for PYQPAR common block
126   {
127     Double_t T0;     // initial temperature of QGP for central Pb+Pb collisions  
128     Double_t tau0;   // proper time of quark-gluon plasma formation 
129     Int_t nf;        // number of flavours
130     Int_t ienglu;    // type of energy loss
131     Int_t ianglu;    // type of angular distribution for emitted gluons
132   }PYQPARCommon;
133   
134 #define PYQPAR COMMON_BLOCK(PYQPAR,pyqpar)
135   COMMON_BLOCK_DEF(PYQPARCommon, PYQPAR);
136   
137
138 #endif