1a52e0ed |
1 | #ifndef ROOT_DPMCommon |
2 | #define ROOT_DPMCommon |
3 | |
4 | #ifndef __CFORTRAN_LOADED |
5 | //*KEEP,cfortran. |
6 | #include "cfortran.h" |
7 | //*KEND. |
8 | #endif |
9 | |
10 | extern "C" { |
11 | /*========================================================*/ |
12 | /* COMMON/DTEVNO/NEVENT,ICASCA */ |
13 | /*--------------------------------------------------------*/ |
14 | typedef struct { |
15 | Int_t nevent; |
16 | Int_t icasca; |
17 | } DtevnoCommon; |
18 | |
19 | #define DTEVNO COMMON_BLOCK(DTEVNO,dtevno) |
20 | COMMON_BLOCK_DEF(DtevnoCommon,DTEVNO); |
21 | |
22 | /**********************************************************/ |
23 | /* D E S C R I P T I O N : */ |
24 | /*--------------------------------------------------------*/ |
25 | /* Event flag */ |
26 | /*========================================================*/ |
27 | |
28 | /*========================================================*/ |
29 | /* COMMON/DTEVT1/NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),*/ |
30 | /* JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK), */ |
31 | /* PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK) */ |
32 | /*--------------------------------------------------------*/ |
33 | typedef struct { |
34 | Int_t nhkk; |
35 | Int_t nevhkk; |
36 | Int_t isthkk[200000]; |
37 | Int_t idhkk[200000]; |
38 | Int_t jmohkk[200000][2]; |
39 | Int_t jdahkk[200000][2]; |
40 | Double_t phkk[200000][5]; |
41 | Double_t vhkk[200000][4]; |
42 | Double_t whkk[200000][4]; |
43 | } Dtevt1Common; |
44 | |
45 | #define DTEVT1 COMMON_BLOCK(DTEVT1,dtevt1) |
46 | COMMON_BLOCK_DEF(Dtevt1Common,DTEVT1); |
47 | |
48 | /**********************************************************/ |
49 | /* D E S C R I P T I O N : */ |
50 | /*--------------------------------------------------------*/ |
51 | /* Event history */ |
52 | /* */ |
53 | /* NHKK - number of entries in common block */ |
54 | /* NEVHKK - number of the event */ |
55 | /* ISTHKK(i) - status code for entry i with following */ |
56 | /* meanings: */ |
57 | /* = 1 final state particle produced in */ |
58 | /* photon-/hadron-/nucleon-nucleon collisions*/ |
59 | /* or in intranuclear cascade proc. */ |
60 | /* =-1 nucleons, deuterons, H3, He3, He4 */ |
61 | /* evaporated from excited nucleus and */ |
62 | /* photons produced in nuclear deexcitation */ |
63 | /* processes; */ |
64 | /* = 1001 residual nucleus (ground state). */ |
65 | /* IDHKK(i) - particle identity according to PDG code; */ |
66 | /* for nuclei (evaporation products and */ |
67 | /* residual nucleus): IDHKK(IHKK)=80000 */ |
68 | /* JMOHKK(1,i) - pointer to the position where the mother */ |
69 | /* is stored; the initial value is 0 */ |
70 | /* JMOHKK(2,i) - pointer to the position of the 2nd mother*/ |
71 | /* Normally only 1 mother exists, in which */ |
72 | /* case the value 0 is used. In cluster */ |
73 | /* fragmentation models, the 2 mothers would */ |
74 | /* correspond to the q and qbar which join to*/ |
75 | /* form a cluster. In string fragmentation, */ |
76 | /* the two mothers of a particle produced in */ |
77 | /* the fragmentation would be the 2 endpoints*/ |
78 | /* of the string. */ |
79 | /* JDAHKK(1,i) - pointer to the position of the 1st */ |
80 | /* daughter; if an entry has not decayed =0. */ |
81 | /* JDAHKK(1,i) - pointer to the position of the last */ |
82 | /* daughter; if an entry has not decayed =0. */ |
83 | /* PHKK(1,i) - momentum in x direction in GeV/c */ |
84 | /* PHKK(2,i) - momentum in y direction in GeV/c */ |
85 | /* PHKK(3,i) - momentum in z direction in GeV/c */ |
86 | /* PHKK(4,i) - energy in GeV */ |
87 | /* PHKK(5,i) - mass in GeV/c^2; for space-like partons */ |
88 | /* it is allowed to use a mass<0, according */ |
89 | /* PHKK(5,IHKK) = -sqrt(-m^2) */ |
90 | /* VHKK(1,i) - production vertex in x position in mm */ |
91 | /* VHKK(2,i) - production vertex in y position in mm */ |
92 | /* VHKK(3,i) - production vertex in z position in mm */ |
93 | /* VHKK(4,i) - production time in mm/c (=3.33*10^(-12)s */ |
94 | /* WHKK(I,i) - gives positions and times in projectile */ |
95 | /* frame, the chains are created on the posi-*/ |
96 | /* tions of the projectile nucleons in the */ |
97 | /* projectile frame (target nucleons in target*/ |
98 | /* frame); both positions are therefore not */ |
99 | /* completely consistent. The times in the */ |
100 | /* projectile frame are obtained by a Lorentz*/ |
101 | /* transformation from the LAB system. */ |
102 | /*========================================================*/ |
103 | |
104 | /*========================================================*/ |
105 | /* COMMON/DTEVT2/IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),*/ |
106 | /* IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10), */ |
107 | /* IHIST(2,NMXHKK) */ |
108 | /*--------------------------------------------------------*/ |
109 | typedef struct { |
110 | Int_t idres[200000]; |
111 | Int_t idxres[200000]; |
112 | Int_t nobam[200000]; |
113 | Int_t idbam[200000]; |
114 | Int_t idch[200000]; |
115 | Int_t npoint[10]; |
116 | Int_t ihist[200000][2]; |
117 | } Dtevt2Common; |
118 | |
119 | #define DTEVT2 COMMON_BLOCK(DTEVT2,dtevt2) |
120 | COMMON_BLOCK_DEF(Dtevt2Common,DTEVT2); |
121 | |
122 | /**********************************************************/ |
123 | /* D E S C R I P T I O N : */ |
124 | /*--------------------------------------------------------*/ |
125 | /* Extended event history */ |
126 | /* */ |
127 | /* NMXHKK - max. num. of entries (partons/particles) that */ |
128 | /* can be stored in the common block */ |
129 | /* IDRES(IHKK) - mass num. A in case of nuclear fragments */ |
130 | /* or residual nuclei (IDHKK(IHKK)=80000). */ |
131 | /* IDXRES(IHKK) - charge Zin case of nuclear fragments */ |
132 | /* or residual nuclei (IDHKK(IHKK)=80000). */ |
133 | /* NOBAM(IHKK) =1 for particles from proj. fragmentation */ |
134 | /* =2 for particles from target fragmentation.*/ |
135 | /* IDBAM(IHKK) - internal dpmjet particle code(BAMJET code)*/ |
136 | /*========================================================*/ |
137 | |
138 | } |
139 | |
140 | /*========================================================*/ |
141 | /* COMMON/DTPRTA/IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG*/ |
142 | /*--------------------------------------------------------*/ |
143 | typedef struct { |
144 | Int_t it; |
145 | Int_t itz; |
146 | Int_t ip; |
147 | Int_t ipz; |
148 | Int_t ijproj; |
149 | Int_t ibproj; |
150 | Int_t ijtarg; |
151 | Int_t ibtarg; |
152 | } DtprtaCommon; |
153 | |
154 | #define DTPRTA COMMON_BLOCK(DTPRTA,dtprta) |
155 | COMMON_BLOCK_DEF(DtprtaCommon,DTPRTA); |
156 | /**********************************************************/ |
157 | /* D E S C R I P T I O N : */ |
158 | /*--------------------------------------------------------*/ |
159 | /* IT, ITZ - nucleon/atomic number of target nucleus */ |
160 | /* IP, IPZ - nucleon/atomic number of projectile nucleus */ |
161 | /* for incident hadrons IP=IPZ=1 */ |
162 | /*========================================================*/ |
163 | |
164 | /*========================================================*/ |
165 | /* COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR */ |
166 | /*--------------------------------------------------------*/ |
167 | typedef struct { |
168 | Double_t bimin; |
169 | Double_t bimax; |
170 | Double_t xsfrac; |
171 | Double_t icent; |
172 | } DtimpaCommon; |
173 | |
174 | #define DTIMPA COMMON_BLOCK(DTIMPA,dtimpa) |
175 | COMMON_BLOCK_DEF(DtimpaCommon,DTIMPA); |
176 | /**********************************************************/ |
177 | /* D E S C R I P T I O N : */ |
178 | /*--------------------------------------------------------*/ |
179 | /* BIMIN, BIMAX - min., max. b values (default bmin = 0) */ |
180 | /* XSFRAC - fraction of x-section (default: 1) */ |
181 | /* ICENTR =1. central production forced (default: 0) */ |
182 | /* <0 && >-100 -> bmin = BIMIN, bmax = BIMAX */ |
183 | /* <-99 -> fraction of x-sec. = XSFRAC */ |
184 | /* =-1. -> evaporation/fzc suppressed */ |
185 | /* <-1. -> evaporation/fzc suppressed */ |
186 | /*========================================================*/ |
187 | |
188 | |
189 | /*========================================================*/ |
190 | /* COMMON /DTGLCP/RPROJ,RTARG,BIMPAC,NWTSAM,NWASAM,NWBSAM,*/ |
191 | /* NWTACC,NWAACC,NWBACC */ |
192 | /*--------------------------------------------------------*/ |
193 | typedef struct { |
194 | Double_t rproj; |
195 | Double_t rtarg; |
196 | Double_t bimpac; |
197 | Int_t nwtsam; |
198 | Int_t nwasam; |
199 | Int_t nwbsam; |
200 | Int_t nwtacc; |
201 | Int_t nwtaac; |
202 | Int_t nwtbac; |
203 | } DtglcpCommon; |
204 | |
205 | #define DTGLCP COMMON_BLOCK(DTGLCP,dtglcp) |
206 | COMMON_BLOCK_DEF(DtglcpCommon,DTGLCP); |
207 | /**********************************************************/ |
208 | /* D E S C R I P T I O N : */ |
209 | /*--------------------------------------------------------*/ |
210 | /* RPROJ = radius of projectile nucleus */ |
211 | /* RPROJ = radius of target nucleus */ |
212 | /* BIMPAC = impact parameter of the collision */ |
213 | /* NWTSAM = total number of wounded nucleons */ |
214 | /* NWASAM = number of wounded nucleons in projectile */ |
215 | /* NWBSAM = number of wounded nucleons in target */ |
216 | /* NWTACC = total number of interacting nucleons */ |
217 | /* NWTAAC = total number of interacting nucleons in proj. */ |
218 | /* NWTBAC = total number of interacting nucleons in target*/ |
219 | /*========================================================*/ |
220 | |
221 | #endif |