Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/hadronic/Hadr02/include/G4UrQMD1_3Interface.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 //
  2 // ********************************************************************
  3 // * License and Disclaimer                                           *
  4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.                             *
 10 // *                                                                  *
 11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                                                  *
 18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboration.                      *
 20 // *                                                                  *
 21 // * Parts of this code which have been  developed by Abdel-Waged     *
 22 // * et al under contract (31-465) to the King Abdul-Aziz City for    *
 23 // * Science and Technology (KACST), the National Centre of           *
 24 // * Mathematics and Physics (NCMP), Saudi Arabia.                    *
 25 // *                                                                  *
 26 // * By using,  copying,  modifying or  distributing the software (or *
 27 // * any work based  on the software)  you  agree  to acknowledge its *
 28 // * use  in  resulting  scientific  publications,  and indicate your *
 29 // * acceptance of all terms of the Geant4 Software license.          *
 30 // ********************************************************************
 31 //
 32 /// \file hadronic/Hadr02/include/G4UrQMD1_3Interface.hh
 33 /// \brief Definition of the G4UrQMD1_3Interface class
 34 //
 35 //
 36 
 37 #ifndef G4UrQMD1_3Interface_hh
 38 #define G4UrQMD1_3Interface_hh
 39 
 40 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 41 //
 42 // MODULE:           G4UrQMD1_3Model.hh
 43 //
 44 // Version:          0.B
 45 // Date:             20/12/12
 46 // Author:           Kh. Abdel-Waged and Nuha Felemban
 47 // Revised by:       V.V. Uzhinskii
 48 //                   SPONSERED BY
 49 // Customer:         KAUST/NCMP
 50 // Contract:         31-465
 51 //
 52 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 53 //
 54 //
 55 // Class Description
 56 //
 57 //
 58 // Class Description - End
 59 //
 60 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 61 ///////////////////////////////////////////////////////////////////////////////
 62 
 63 #include "G4SystemOfUnits.hh"
 64 #include "globals.hh"
 65 
 66 //  coms
 67 //
 68 const G4int nmax = 500;
 69 const G4int nspl = 500;
 70 const G4int smax = 500;
 71 //  comres
 72 const G4int minnuc = 1;
 73 const G4int minmes = 100;
 74 const G4int maxmes = 132;
 75 const G4int numnuc = 16;
 76 const G4int numdel = 10;
 77 const G4int maxnuc = minnuc + numnuc - 1;
 78 const G4int mindel = minnuc + maxnuc;
 79 const G4int maxdel = mindel + numdel - 1;
 80 const G4int minres = minnuc + 1;
 81 const G4int maxres = maxdel;
 82 const G4int numlam = 13;
 83 const G4int numsig = 9;
 84 const G4int numcas = 6;
 85 const G4int numome = 1;
 86 const G4int minlam = mindel + numdel;
 87 const G4int maxlam = minlam + numlam - 1;
 88 const G4int minsig = minlam + numlam;
 89 const G4int maxsig = minsig + numsig - 1;
 90 const G4int mincas = minsig + numsig;
 91 const G4int maxcas = mincas + numcas - 1;
 92 const G4int minome = mincas + numcas;
 93 const G4int maxome = minome + numome - 1;
 94 const G4int minbar = minnuc;
 95 const G4int maxbar = maxome;
 96 const G4int offmeson = minmes;
 97 const G4int maxmeson = maxmes;
 98 const G4int maxbra = 11;
 99 const G4int maxbrm = 25;
100 const G4int maxbrs1 = 10;
101 const G4int maxbrs2 = 3;
102 const G4int nsigs = 10;
103 const G4int itblsz = 100;
104 const G4int maxreac = 13;
105 const G4int maxpsig = 12;
106 //
107 // comwid
108 //
109 const G4int widnsp = 120;
110 const G4double mintab = 0.10;
111 const G4double maxtab1 = 5.0;
112 const G4double maxtab2 = 50.0;
113 const G4int tabver = 9;
114 //
115 // options
116 //
117 const G4int numcto = 400;
118 const G4int numctp = 400;
119 const G4int maxstables = 20;
120 //
121 // colltab (collision tables)
122 //
123 const G4int ncollmax = 100;
124 //
125 // inputs
126 //
127 const G4int aamax = 300;
128 //
129 // newpart (new created particles)
130 //
131 const G4int mprt = 200;
132 const G4int oprt = 2;
133 //
134 // boxinc
135 //
136 const G4int bptmax = 20;
137 //
138 
139 // This next line is required as the default version of FORTRAN LOGICAL is
140 // four bytes long, whereas storage for G4bool is one byte.
141 //
142 // comnorm
143 const G4int n = 400;
144 //
145 // comstr
146 const G4int njspin = 8;
147 //
148 // iso
149 const G4int jmax = 7;
150 
151 // This next line is required as the default version of FORTRAN LOGICAL is
152 // four bytes long, whereas storage for G4bool is one byte.
153 //
154 
155 typedef G4int ftnlogical;
156 
157 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
158 //
159 // Standard common block for UrQMD
160 // Common options for coms.f
161 //  20 commons
162 //
163 //
164 struct ccurqmd13urqmdparams
165 {
166     G4int u_at, u_zt, u_ap, u_zp;
167     G4double u_elab, u_imp;
168     G4int u_sptar, u_spproj;
169 };
170 
171 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
172 
173 struct ccurqmd13sys
174 {
175     G4int npart, nbar, nmes, ctag, nsteps, uid_cnt, ranseed, event, ap, at, zp, zt, eos, dectag,
176       nhardres, nsoftres, ndecres, nelcoll, nblcoll;
177 };
178 
179 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
180 
181 struct ccurqmd13rsys
182 {
183     G4double time, acttime, bdist, bimp, bmin, ebeam, ecm;
184 };
185 
186 struct ccurqmd13comseed
187 {
188     ftnlogical firstseed;
189 };
190 
191 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
192 
193 struct ccurqmd13logic
194 {
195     ftnlogical lsct[nmax], logSky, logYuk, logCb, logPau;
196 };
197 
198 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
199 
200 struct ccurqmd13mdprop
201 {
202     G4double r0_t[nmax], rx_t[nmax], ry_t[nmax], rz_t[nmax];
203 };
204 
205 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
206 
207 struct ccurqmd13cuts
208 {
209     G4double cutmax, cutPau, cutCb, cutYuk, cutSky, cutdww;
210 };
211 
212 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
213 
214 struct ccurqmd13spdata
215 {
216     G4double spx[nspl], spPauy[nspl], outPau[nspl], spCby[nspl], outCb[nspl], spYuky[nspl],
217       outYuk[nspl], spSkyy[nspl], outSky[nspl], spdwwy[nspl], outdww[nspl];
218 };
219 
220 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
221 
222 struct ccurqmd13isys
223 {
224     G4int spin[nmax], ncoll[nmax], charge[nmax], ityp[nmax], lstcoll[nmax], iso3[nmax],
225       origin[nmax], strid[nmax], uid[nmax];
226 };
227 
228 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
229 
230 struct ccurqmd13coor
231 {
232     G4double r0[nmax], rx[nmax], ry[nmax], rz[nmax], p0[nmax], px[nmax], py[nmax], pz[nmax],
233       fmass[nmax], rww[nmax], dectime[nmax];
234 };
235 
236 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
237 
238 struct ccurqmd13frag
239 {
240     G4double tform[nmax], xtotfac[nmax];
241 };
242 
243 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
244 
245 struct ccurqmd13aios
246 {
247     G4double airx[nmax], airy[nmax], airz[nmax], aipx[nmax], aipy[nmax], aipz[nmax], aorx[4][nmax],
248       aory[4][nmax], aorz[4][nmax], aopx[4][nmax], aopy[4][nmax], aopz[4][nmax];
249 };
250 
251 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
252 
253 struct ccurqmd13pots
254 {
255     G4double Cb0, Yuk0, Pau0, Sky20, Sky30, gamSky, gamYuk, drPau, dpPau, gw, sgw, delr, fdel, dt,
256       da, db, dtimestep;
257 };
258 
259 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
260 
261 struct ccurqmd13scoor
262 {
263     G4double r0s[smax], rxs[smax], rys[smax], rzs[smax], p0s[smax], pxs[smax], pys[smax], pzs[smax],
264       sfmass[smax];
265 };
266 
267 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
268 
269 struct ccurqmd13sisys
270 {
271     G4int sspin[smax], scharge[smax], sityp[smax], siso3[smax], suid[smax];
272 };
273 
274 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
275 
276 struct ccurqmd13ssys
277 {
278     G4int nspec;
279 };
280 
281 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
282 
283 struct ccurqmd13rtdelay
284 {
285     G4double p0td[nmax][2], pxtd[nmax][2], pytd[nmax][2], pztd[nmax][2], fmasstd[nmax][2];
286 };
287 
288 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
289 
290 struct ccurqmd13itdelay
291 {
292     G4int ityptd[nmax][2], iso3td[nmax][2];
293 };
294 
295 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
296 
297 struct ccurqmd13svinfo
298 {
299     G4int itypt[2], uidt[2], origint[2], iso3t[2];
300 };
301 
302 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
303 
304 struct ccurqmd13ffermi
305 {
306     G4double ffermpx[nmax], ffermpy[nmax], ffermpz[nmax];
307 };
308 
309 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
310 
311 struct ccurqmd13peq
312 {
313     G4double peq1, peq2;
314 };
315 
316 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
317 //
318 // Definition for Collision Term
319 // Commons  comres
320 // 4 commons
321 //
322 
323 struct ccurqmd13versioning
324 {
325     char versiontag[45];
326 };
327 
328 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
329 
330 struct ccurqmd13resonances
331 {
332     G4double massres[maxbar - minbar + 1], widres[maxbar - minbar + 1];
333     G4double massmes[maxmes - minmes + 1];
334     G4double widmes[maxmes - minmes + 1];
335     G4double mmesmn[maxmes - minmes + 1];
336     G4double branres[maxdel - minnuc][maxbra + 1];
337     G4double branmes[maxmes - minmes][maxbrm + 1];
338 
339     G4double branbs1[maxsig - minlam][maxbrs1 + 1];
340     G4double branbs2[maxcas - mincas][maxbrs2 + 1];
341 
342     G4int bs1type[maxbrs1 + 1][4], bs2type[maxbrs2 + 1][4];
343     G4int lbs1[maxsig - minlam][maxbrs1 + 1];
344     G4int lbs2[maxcas - mincas][maxbrs2 + 1];
345     G4int lbm[maxmes - minmes][maxbrm + 1];
346 
347     G4int jres[maxbar - minbar + 1];
348     G4int jmes[maxmes - minmes + 1];
349     G4int lbr[maxdel - minnuc][maxbra + 1];
350     G4int brtype[maxbra + 1][4];
351     G4int pares[maxbar - minbar + 1], pames[maxmes - minmes + 1];
352     G4int bmtype[maxbrm + 1][4];
353     G4int isores[maxbar - minbar + 1], isomes[maxmes - minmes + 1];
354     G4int strres[maxbar - minbar + 1], strmes[maxmes - minmes + 1];
355     G4int mlt2it[maxmes - minmes];
356 };
357 
358 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
359 
360 struct ccurqmd13sigtabi
361 {
362     G4int sigmaln[maxreac][2][maxpsig];
363     G4int sigmainf[20][nsigs];
364 };
365 
366 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
367 
368 struct ccurqmd13sigtabr
369 {
370     G4double sigmas[itblsz][nsigs], sigmascal[5][nsigs];
371 };
372 
373 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
374 
375 // comwid
376 struct ccurqmd13decaywidth
377 {
378     G4double tabx[widnsp];
379     G4double fbtaby[2][maxbar - minbar + 1][widnsp];
380     G4double pbtaby[maxbra + 1][maxbar - minbar + 1][2][widnsp];
381     G4double fmtaby[2][maxmes - minmes + 1][widnsp];
382     G4double pmtaby[maxbrm + 1][maxmes - minmes + 1][2][widnsp];
383     G4int wtabflg;
384 };
385 
386 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
387 
388 struct ccurqmd13brwignorm
389 {
390     G4double bwbarnorm[maxbar - minbar + 1];
391     G4double bwmesnorm[maxmes - minmes + 1];
392 };
393 
394 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
395 
396 struct ccurqmd13xsections
397 {
398     G4double tabxnd[widnsp];
399     G4double frrtaby[maxdel - 1][2][2][widnsp];
400 };
401 
402 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
403 
404 struct ccurqmd13tabnames
405 {
406     char tabname[77];
407 };
408 
409 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
410 //
411 // options
412 //
413 struct ccurqmd13options
414 {
415     G4int CTOption[numcto];
416     G4double CTParam[numctp];
417 };
418 
419 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
420 
421 struct ccurqmd13optstrings
422 {
423     char ctodc[numcto][2];
424     char ctpdc[numctp][2];
425 };
426 
427 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
428 
429 struct ccurqmd13loptions
430 {
431     ftnlogical fixedseed, bf13, bf14, bf15, bf16, bf17, bf18, bf19, bf20;
432 };
433 
434 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
435 
436 struct ccurqmd13stables
437 {
438     G4int nstable;
439     G4int stabvec[maxstables];
440 };
441 
442 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
443 //
444 // colltab
445 //
446 struct ccurqmd13colltab
447 {
448     G4double cttime[ncollmax + 1], ctsqrts[ncollmax], ctsigtot[ncollmax], tmin;
449     G4int cti1[ncollmax], cti2[ncollmax];
450     G4int nct, actcol;
451     ftnlogical ctvalid[ncollmax];
452     G4int ctsav[ncollmax];
453     G4int nsav, apt;
454     G4double ctcolfluc[ncollmax];
455 };
456 
457 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
458 //
459 // inputs
460 //
461 struct ccurqmd13inputs
462 {
463     G4int nevents, spityp[2], prspflg;
464     G4int trspflg, spiso3[2], outsteps, bflag, srtflag, efuncflag;
465     G4int nsrt, firstev, npb;
466 };
467 
468 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
469 
470 struct ccurqmd13input2
471 {
472     G4double srtmin, srtmax, pbeam, betann, betatar, betapro;
473     G4double pbmin, pbmax;
474 };
475 
476 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
477 
478 struct ccurqmd13protarints
479 {
480     G4int pt_iso3[2][aamax], pt_ityp[2][aamax], pt_spin[2][aamax];
481     G4int pt_charge[2][aamax], pt_aa[2], pt_uid[2][aamax];
482 };
483 
484 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
485 
486 struct ccurqmd13protarreals
487 {
488     G4double pt_r0[2][aamax], pt_rx[2][aamax], pt_ry[2][aamax], pt_rz[2][aamax], pt_fmass[2][aamax],
489       pt_dectime[2][aamax];
490     G4double pt_p0[2][aamax], pt_px[2][aamax], pt_py[2][aamax], pt_pz[2][aamax];
491     G4double pt_rho[2][aamax];
492     G4double pt_pmax[2][aamax];
493 };
494 
495 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
496 
497 // newpart
498 struct ccurqmd13inewpart
499 {
500     G4int itypnew[mprt], i3new[mprt], itot[mprt], inew[mprt], nexit;
501     G4int iline, strcount, pslot[oprt], nstring1, nstring2, sidnew[mprt], itypold[oprt],
502       iso3old[oprt];
503 };
504 
505 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
506 
507 struct ccurqmd13rnewpart
508 {
509     G4double pnew[mprt][5], xnew[mprt][4], betax, betay, betaz, pold[oprt][5], p0nn, pxnn, pynn,
510       pznn, pnn, mstring[2], pnnout, xtotfacold[oprt];
511 };
512 
513 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
514 
515 struct ccurqmd13fnewpart
516 {
517     G4double leadfac[mprt];
518 };
519 
520 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
521 //
522 // boxinc
523 //
524 struct ccurqmd13boxic
525 {
526     G4int cbox;
527     G4int boxflag;
528     G4int mbox;
529     G4int bptityp[bptmax], bptiso3[bptmax], bptpart[bptmax];
530     G4int edensflag, para, solid, mbflag, mtest;
531 };
532 
533 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
534 
535 struct ccurqmd13boxrc
536 {
537     G4double bptpmax[bptmax];
538     G4double edens;
539     G4double lbox;
540     G4double lboxhalbe;
541     G4double lboxd;
542     G4double mbp0, mbpx, mbpy, mbpz;
543 };
544 
545 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
546 // comnorm
547 struct ccurqmd13normsplin
548 {
549     G4double x_norm[n][4], y_norm[n][4];
550     G4double y2a[n][4], y2b[n][4], dx;
551 };
552 
553 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
554 // comstr
555 struct ccurqmd13FRGSPA
556 {
557     G4double pjspns, pmix1s[njspin][3], pmix2s[njspin][3], pbars, parqls, parrs;
558 };
559 
560 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
561 
562 struct ccurqmd13FRGCPA
563 {
564     G4double pjspnc, pmix1c[njspin][3], pmix2c[njspin][3], pbarc;
565 };
566 
567 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
568 
569 struct ccurqmd13coparm
570 {
571     G4double parm[njspin];
572 };
573 
574 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
575 
576 struct ccurqmd13const
577 {
578     G4double pi;
579 };
580 
581 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
582 //// freezeout
583 //
584 struct ccurqmd13frcoor
585 {
586     G4double frr0[nmax], frrx[nmax], frry[nmax], frrz[nmax], frp0[nmax], frpx[nmax], frpy[nmax],
587       frpz[nmax];
588 };
589 
590 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
591 //  input
592 struct ccurqmd13values
593 {
594     G4double valint[1];
595 };
596 
597 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
598 // cascinit
599 struct ccurqmd13ini
600 {
601     ftnlogical bcorr;
602 };
603 
604 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
605 // iso
606 struct ccurqmd13factorials
607 {
608     G4double logfak[101];
609 };
610 
611 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
612 struct ccurqmd13cgks
613 {
614     G4double cgktab[jmax + 1][2 * jmax + 1][2 * jmax + 1][jmax + 1][jmax + 1];
615 };
616 
617 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
618 // UrQMD
619 //
620 struct ccurqmd13energies
621 {
622     G4double ekinbar, ekinmes, esky2, esky3, eyuk, ecb, epau;
623 };
624 
625 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
626 // urqmd
627 extern "C"
628 {
629   extern int time_();
630   extern void loginit_();
631   extern void sseed_(int*);
632   extern void uinit_(int*);
633   extern void urqmd_();
634   extern int pdgid_(int*, int*);  // ityp
635 
636   extern void g4urqmdblockdata_();
637 
638   // urqmdparams
639   extern struct ccurqmd13urqmdparams urqmdparams_;
640   // coms
641   extern struct ccurqmd13sys sys_;
642   extern struct ccurqmd13rsys rsys_;
643   extern struct ccurqmd13comseed comseed_;
644   extern struct ccurqmd13logic logic_;
645   extern struct ccurqmd13mdprop mdprop_;
646   extern struct ccurqmd13cuts cuts_;
647   extern struct ccurqmd13spdata spdata_;
648   extern struct ccurqmd13isys isys_;
649   extern struct ccurqmd13coor coor_;
650   extern struct ccurqmd13frag frag_;
651   extern struct ccurqmd13aios aios_;
652   extern struct ccurqmd13pots pots_;
653   extern struct ccurqmd13scoor scoor_;
654   extern struct ccurqmd13sisys sisys_;
655   extern struct ccurqmd13ssys ssys_;
656   extern struct ccurqmd13rtdelay rtdelay_;
657   extern struct ccurqmd13itdelay itdelay_;
658   extern struct ccurqmd13svinfo svinfo_;
659   extern struct ccurqmd13ffermi ffermi_;
660   extern struct ccurqmd13peq peq_;
661   // comres
662   extern struct ccurqmd13versioning versioning_;
663   extern struct ccurqmd13resonances resonances_;
664   extern struct ccurqmd13sigtabi sigtabi_;
665   extern struct ccurqmd13sigtabr sigtabr_;
666 
667   // comwid
668   extern struct ccurqmd13decaywidth decaywidth_;
669   extern struct ccurqmd13brwignorm brwignorm_;
670   extern struct ccurqmd13xsections xsections_;
671   extern struct ccurqmd13tabnames tabnames_;
672   // options
673   extern struct ccurqmd13options options_;
674   extern struct ccurqmd13optstrings optstrings_;
675   extern struct ccurqmd13loptions loptions_;
676   extern struct ccurqmd13stables stables_;
677   // colltab
678   extern struct ccurqmd13colltab colltab_;
679   // inputs
680   extern struct ccurqmd13inputs inputs_;
681   extern struct ccurqmd13input2 input2_;
682   extern struct ccurqmd13protarints protarints_;
683   extern struct ccurqmd13protarreals protarreals_;
684   // newpart
685   extern struct ccurqmd13inewpart inewpart_;
686   extern struct ccurqmd13rnewpart rnewpart_;
687   extern struct ccurqmd13fnewpart fnewpart_;
688   // bocinc
689   extern struct ccurqmd13boxic boxic_;
690   extern struct ccurqmd13boxrc boxrc_;
691   // comnorm
692   struct ccurqmd13normsplin normsplin_;
693   // comstr
694   struct ccurqmd13FRGSPA FRGSPA_;
695   struct ccurqmd13FRGCPA FRGCPA_;
696   struct ccurqmd13coparm coparm_;
697   struct ccurqmd13const const_;
698   // freezeout
699   struct ccurqmd13frcoor frcoor_;
700   // urqmd
701   extern struct ccurqmd13energies energies_;
702   // input
703   extern struct ccurqmd13values values_;
704   // cascinit
705   extern struct ccurqmd13ini ini_;
706   // iso
707   extern struct ccurqmd13factorials factorials_;
708   extern struct ccurqmd13cgks cgks_;
709 }
710 
711 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
712 #endif
713