Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4DPMJET2_5Interface.hh
Go to the documentation of this file.
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 QinetiQ Ltd *
22 // * under contract to the European Space Agency (ESA) are the *
23 // * intellectual property of ESA. Rights to use, copy, modify and *
24 // * redistribute this software for general public use are granted *
25 // * in compliance with any licensing, distribution and development *
26 // * policy adopted by the Geant4 Collaboration. This code has been *
27 // * written by QinetiQ Ltd for the European Space Agency, under ESA *
28 // * contract 19770/06/NL/JD (Technology Research Programme). *
29 // * *
30 // * By using, copying, modifying or distributing the software (or *
31 // * any work based on the software) you agree to acknowledge its *
32 // * use in resulting scientific publications, and indicate your *
33 // * acceptance of all terms of the Geant4 Software license. *
34 // ********************************************************************
35 //
38 //
39 #ifndef G4DPMJET2_5Interface_hh
40 #define G4DPMJET2_5Interface_hh 1
41 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 //
43 // MODULE: G4DPMJET2_5Interface.hh
44 //
45 // Version: 0.B
46 // Date: 02/04/08
47 // Author: P R Truscott
48 // Organisation: QinetiQ Ltd, UK
49 // Customer: ESA/ESTEC, NOORDWIJK
50 // Contract: 19770/06/NL/JD
51 //
52 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 //
54 // Class Description
55 //
56 //
57 // Class Description - End
58 //
59 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 //
62 const int intmd = 252;
63 const int maxpro = 8;
64 const int intmx = 2488;
65 const int mxafbk = 16;
66 const int mxffbk = 6;
67 const int mxnfbk = 10;
68 const int mxzfbk = 9;
69 const int mxpsst = 300;
70 const int mxpsfb = 41000;
71 const int nxafbk = 17; // NXAFBK = MXAFBK + 1
72 const int nxnfbk = 15; // NXNFBK = MXNFBK + MXFFBK / 3
73 const int nxzfbk = 14; // NXZFBK = MXZFBK + MXFFBK / 3
74 const int nmxhkk = 89998;
75 const int neb = 50;
76 //
77 //
78 // This next line is required as the default version of FORTRAN LOGICAL is
79 // four bytes long, whereas storage for G4bool is one byte.
80 //
81 typedef G4int ftnlogical;
82 
84 {
87 };
89 {
91 };
93 {
96 };
98 {
100 };
102 {
103  G4double s; //sometimes called ss
107 };
109 {
111 };
113 {
115 };
117 {
124 };
126 {
129 };
131 {
132  G4int idiqre[7], idvre[3], ivdre[3], idsre[3], isdre[3],
133  idzre[3], izdre[3], idiqrz[7];
134 };
136 {
138 };
140 {
142 };
144 {
145  ftnlogical
147  ipadis, ishmal, lpauli;
148 };
150 {
152 };
154 {
156 };
158 {
160 };
162 {
164 };
166 {
168 };
170 {
172 };
174 {
180  ipsind[2][mxzfbk+1][mxnfbk+1], jpsind[mxafbk+1],
181  ifbind[2][mxzfbk+1][nxnfbk+1], jfbind[nxafbk+1],
183  ifbfrb, nbufbk;
184  ftnlogical
186 };
188 {
190 };
192 {
195 };
197 {
199 };
201 {
203 };
205 {
207 };
208 //struct ccdpm25infore
209 //{
210 // G4int ifrej;
211 //};
213 {
215 };
217 {
219 };
221 {
223 };
225 {
227 };
229 {
231 };
233 {
235 };
237 {
239 };
241 {
242  G4double prmom[248][5], tamom[248][5], prmfep, prmfen, tamfep,
244  taepot[210], prebin, taebin, fermod, etacou;
245 };
247 {
249  ebindp[2], ebindn[2], epot[210][2],
250  etacoo[2];
252 };
254 {
256  ftnlogical
260  ftnlogical
262 };
264 {
266 };
268 {
271 };
273 {
275 };
277 {
282  isea43, isea63, ireja0;
283 };
284 //struct ccdpm25inxdpm
285 //{
286 // G4int intdpm;
287 //};
289 {
291 };
293 {
295 };
297 {
299 };
301 {
303 };
305 {
307 };
309 {
310  G4int mstu[200];
312  G4int mstj[200];
314 };
316 {
318 };
320 {
321  ftnlogical
323 };
325 {
327 };
329 {
331 };
333 {
335 };
337 {
339 };
341 {
343 };
345 {
348 };
350 {
351  char titled[80], projty[8], targty[8];
352 };
354 {
357 };
359 {
360  G4double vxsp[50], vxst[50], vxsap[50], vxsat[50],
361  vxvp[50], vxvt[50], vxdp[50], vxdt[50];
363 };
365 {
367  ssmimq, vvmthr;
368 };
370 {
372 };
374 {
376  anndv, annvd, annds, annsd,
377  annhh, annzz,
378  ptvv, ptss, ptsv, ptvs, ptcc, ptdv, ptvd, ptds, ptsd,
379  pthh, ptzz,
380  eevv, eess, eesv, eevs, eecc, eedv, eevd, eeds, eesd,
381  eehh, eezz,
382  anndi, ptdi, eedi,
383  annzd, anndz, ptzd, ptdz, eezd, eedz;
384 };
385 
387 {
389  bnndv, bnnvd, bnnds, bnnsd,
390  bnnhh, bnnzz,
392  bptvd, bptds, bptsd,
393  bpthh, bptzz,
395  beevd, beeds, beesd,
396  beehh, beezz,
397  bnndi, bptdi, beedi,
399 };
400 
402 {
405  acoudz, acouzd, acoudi,
406  acoudv, acouvd, acoucc;
407 };
408 
410 {
413  bcoudz, bcouzd, bcoudi,
414  bcoudv, bcouvd, bcoucc;
415 };
417 {
419  bsite[200][2];
421 };
423 {
425 };
427 {
428  G4double bsiten[50][24][200], bsitem[50][24][200],
429  rprojj[50], rtagg[50], bstepp[50], bmaxx[50],
430  ntaxx[50], nztaxx[50], nprxx[50], nzprxx[50];
431 };
433 {
438  ijtalu1;
439 };
441 {
442  G4int ipvq[248], ippv1[248], ippv2[248], itvq[248],
443  ittv1[248], ittv2[248], ipsq[intmx], ipsq2[intmx],
446  kkproj[248], kktarg[248];
447 };
449 {
450  char aname[210];
451  G4double aam[210], ga[210], tau[210];
452  G4int iich[210],
453  iibar[210], k1[210], k2[210];
454 };
456 {
458  idbam[nmxhkk], idch[nmxhkk], npoint[10];
459 };
461 {
463  jmohkk[nmxhkk][2], jdahkk[nmxhkk][2];
465  vhkk[nmxhkk][4], whkk[nmxhkk][4];
466 };
468 {
469  G4int ifrovp[248], itovp[248], ifrosp[intmx],
470  ifrovt[248], itovt[248], ifrost[intmx],
471  jsshs[intmx], jtshs[intmx], jhkknp[248],
472  jhkknt[248],
477  mhkkhh[intmx],
478  mhkkdv[248], mhkkvd[248],
480 };
482 {
483  char btype[30][8];
484 };
486 {
488  inter2[intmx];
489 };
491 {
493 };
495 {
497 };
499 {
502 };
504 {
506 };
508 {
511 };
513 {
515  xstot[neb], xsela[neb],
516  xsqep[neb], xsqet[neb],
517  xsqe2[neb], xspro[neb],
518  xetot[neb], xeela[neb],
519  xeqep[neb], xeqet[neb],
520  xeqe2[neb], xepro[neb],
521  bslope, elabb[neb];
522 };
523 
524 extern "C"
525 {
526 
527  extern void parpt_ (int*, double*, double*, int*, int*);
528  extern void csj1mi_ (double*, double*);
529  extern void ddatar_ ();
530  extern void dhadde_ ();
531  extern void dchant_ ();
532  extern void dchanh_ ();
533  extern void defaul_ (double*, double*);
534  extern void defaux_ (double*, double*);
535  extern void lundin_ ();
536  extern void rndmst_ (int*, int*, int*, int*);
537  extern void berttp_ ();
538  extern void incini_ ();
539  extern void distr_ (int*, int*, double*, int*);
540  extern void shmakf_ (int*, int*, int*, int*);
541  extern void shmaki_ (int*, int*, int*, int*, double*, double*, double*);
542  extern void prblm2_ (double*);
543  extern void jtdtu_ (int*);
544  extern void samppt_ (int*, double*);
545  extern void dpmevt_ (double*, int*, int*, int*, int*, int*, int*, int*);
546  extern void kkinc_ (double*, int*, int*, int*, int*, int*, int*, int*, int*, int*);
547  extern double rd2in_ (int*, int*);
548  extern double rd2out_ (int*, int*);
549  extern void xsglau_ (int*, int*, int*, int*);
550 
551  extern void g4dpmjet_initialise_block_data_ ();
552  extern void g4dpmjet_open_nuclear_bin_ (int*, int*, int*, char*);
553  extern void g4dpmjet_close_nuclear_bin_ (int*);
554  extern void g4dpmjet_open_fort6_ (int*, int*, char*);
555  extern void g4dpmjet_close_fort6_ ();
556 
557  extern struct ccdpm25casadi casadi_;
558  extern struct ccdpm25cmhico cmhico_;
559  extern struct ccdpm25cronin cronin_;
560  extern struct ccdpm25colle colle_;
561  extern struct ccdpm25collis collis_;
562  extern struct ccdpm25coulo coulo_;
563  extern struct ccdpm25diffra diffra_;
564  extern struct ccdpm25diqsum diqsum_;
565  extern struct ccdpm25diquax diquax_;
566  extern struct ccdpm25diqrej diqrej_;
567  extern struct ccdpm25dprin dprin_;
568  extern struct ccdpm25dropjj dropjj_;
569  extern struct ccdpm25droppt droppt_;
570  extern struct ccdpm25edens edens_;
571  extern struct ccdpm25evappp evappp_;
572  extern struct ccdpm25ferfor ferfor_;
573  extern struct ccdpm25final final_;
574  extern struct ccdpm25fluctu fluctu_;
575  extern struct ccdpm25secint secint_;
576  extern struct ccdpm25frbkcm frbkcm_;
577  extern struct ccdpm25gluspl gluspl_;
578  extern struct ccdpm25hadthr hadthr_;
579  extern struct ccdpm25hdjase hdjase_;
580  extern struct ccdpm25hettp hettp_;
581  extern struct ccdpm25ifragm ifragm_;
582  //extern struct ccdpm25infore infore_;
583  extern struct ccdpm25inpflg inpflg_;
584  extern struct ccdpm25kglaub kglaub_;
585  extern struct ccdpm25nstari nstari_;
586  extern struct ccdpm25ncshxx ncshxx_;
587  extern struct ccdpm25nncms nncms_;
588  extern struct ccdpm25nucc nucc_;
589  extern struct ccdpm25nuccc nuccc_;
590  extern struct ccdpm25nucimp nucimp_;
591  extern struct ccdpm25nuclea nuclea_;
592  extern struct ccdpm25parevt parevt_;
593  extern struct ccdpm25pomtab pomtab_;
594  extern struct ccdpm25pomtyp pomtyp_;
595  extern struct ccdpm25popcor popcor_;
596  extern struct ccdpm25popcck popcck_;
597  //extern struct ccdpm25inxdpm inxdpm_;
598  extern struct ccdpm25projk projk_;
599  extern struct ccdpm25promu promu_;
600  extern struct ccdpm25pshow pshow_;
601  extern struct ccdpm25ptlarg ptlarg_;
602  extern struct ccdpm25ptsamp ptsamp_;
603  extern struct ccdpm25pydat1 pydat1_;
604  extern struct ccdpm25recom recom_;
605  extern struct ccdpm25seadiq seadiq_;
606  extern struct ccdpm25seaqxx seaqxx_;
607  extern struct ccdpm25seasu3 seasu3_;
608  extern struct ccdpm25sincha sincha_;
609  extern struct ccdpm25stars stars_;
610  extern struct ccdpm25strufu strufu_;
611  extern struct ccdpm25taufo taufo_;
612  extern struct ccdpm25user1 user1_;
613  extern struct ccdpm25user2 user2_;
614  extern struct ccdpm25vxsvd vxsvd_;
615  extern struct ccdpm25xseadi xseadi_;
616  extern struct ccdpm25zentra zentra_;
617  extern struct ccdpm25bufueh bufueh_;
618  extern struct ccdpm25bufues bufues_;
619  extern struct ccdpm25ncouch ncouch_;
620  extern struct ccdpm25ncoucs ncoucs_;
621  extern struct ccdpm25dshm dshm_;
622  extern struct ccdpm25rptshm rptshm_;
623  extern struct ccdpm25dtumat dtumat_;
624  extern struct ccdpm25collap collap_;
625  extern struct ccdpm25diqi diqi_;
626  extern struct ccdpm25dpar dpar_;
627  extern struct ccdpm25extevt extevt_;
628  extern struct ccdpm25hkkevt hkkevt_;
629  extern struct ccdpm25ifroto ifroto_;
630  extern struct ccdpm25paname paname_;
631  extern struct ccdpm25shmakl shmakl_;
632  extern struct ccdpm25sigma sigma_;
633  extern struct ccdpm25xsecpt xsecpt_;
634  extern struct ccdpm25nucros nucros_;
635  extern struct ccdpm25hboo hboo_;
636  extern struct ccdpm25xsecnu xsecnu_;
637  extern struct ccdpm25glaber glaber_;
638 }
639 // NOTE Should there be a semicolon after the close-curly bracket ?? Some
640 // compilers think yes, others no!
641 #endif