ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4UrQMD1_3Interface.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4UrQMD1_3Interface.hh
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 //
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 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62 
63 #include "globals.hh"
64 #include "G4SystemOfUnits.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;
82 const G4int numlam=13;
83 const G4int numsig=9;
84 const G4int numcas=6;
85 const G4int numome=1;
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 
156 
157 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
158 //
159 // Standard common block for UrQMD
160 // Common options for coms.f
161 // 20 commons
162 //
163 //
165 {
169 };
170 
171 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
172 
174 {
178 };
179 
180 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
181 
183 {
185 };
186 
188 {
190 };
191 
192 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
193 
195 {
197 };
198 
199 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
200 
202 {
204 };
205 
206 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
207 
209 {
211 };
212 
213 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
214 
216 {
218  spCby[nspl], outCb[nspl],
219  spYuky[nspl], outYuk[nspl],
220  spSkyy[nspl], outSky[nspl],
221  spdwwy[nspl], outdww[nspl];
222 };
223 
224 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
225 
227 {
228 
230  lstcoll[nmax],
232 };
233 
234 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
235 
237 {
239  p0[nmax], px[nmax], py[nmax], pz[nmax],
241 };
242 
243 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
244 
246 {
248 };
249 
250 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
251 
253 {
255  aipx[nmax], aipy[nmax], aipz[nmax],
256  aorx [4][nmax], aory[4][nmax], aorz[4][nmax],
257  aopx[4][nmax], aopy[4][nmax], aopz[4][nmax];
258 };
259 
260 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
261 
263 {
265  gamYuk, drPau, dpPau, gw, sgw, delr, fdel,
266  dt,da, db,dtimestep;
267 };
268 
269 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
270 
272 {
274  p0s[smax], pxs[smax], pys[smax], pzs[smax],
275  sfmass[smax];
276 };
277 
278 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
279 
281 {
283  suid[smax];
284 };
285 
286 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
287 
289 {
291 };
292 
293 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
294 
296 {
298  fmasstd[nmax][2];
299 };
300 
301 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
302 
304 {
306 };
307 
308 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
309 
311 {
313 };
314 
315 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
316 
318 {
320 };
321 
322 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
323 
325 {
327 };
328 
329 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
330 //
331 // Definition for Collision Term
332 // Commons comres
333 // 4 commons
334 //
335 
337 {
338 char versiontag[45];
339 };
340 
341 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
342 
344 {
345 
352 
355 
360 
370 };
371 
372 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
373 
375 {
378 };
379 
380 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
381 
383 {
385 };
386 
387 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
388 
389 //comwid
391 {
398 
399 };
400 
401 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
402 
404 {
407 };
408 
409 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
410 
412 {
415 };
416 
417 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
418 
420 {
421 char tabname[77];
422 };
423 
424 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
425 //
426 // options
427 //
429 {
432 };
433 
434 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
435 
437 {
438 char ctodc[numcto][2];
439 char ctpdc[numctp][2];
440 };
441 
442 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
443 
445 {
447  bf20;
448 };
449 
450 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
451 
453 {
456 };
457 
458 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
459 //
460 //colltab
461 //
463 {
472 };
473 
474 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
475 //
476 // inputs
477 //
479 {
483 };
484 
485 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
486 
488 {
491 };
492 
493 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
494 
496 {
499 };
500 
501 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
502 
504 {
508  pt_pz[2][aamax];
511 };
512 
513 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
514 
515 // newpart
517 {
521 };
522 
523 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
524 
526 {
528  pold[oprt][5],p0nn,pxnn,pynn,pznn,pnn, mstring[2],
530 };
531 
532 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
533 
535 {
537 };
538 
539 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
540 //
541 // boxinc
542 //
544 {
550 };
551 
552 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
553 
555 {
562 };
563 
564 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
565 // comnorm
567 {
569 G4double y2a[n][4],y2b[n][4], dx;
570 };
571 
572 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
573 // comstr
575 {
577 };
578 
579 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
580 
582 {
584 };
585 
586 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
587 
589 {
591 };
592 
593 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
594 
596 {
598 };
599 
600 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
602 //
604 {
606  frp0[nmax], frpx[nmax], frpy[nmax], frpz[nmax];
607 };
608 
609 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
610 // input
612 {
614 };
615 
616 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
617 // cascinit
619 {
621 };
622 
623 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
624 // iso
626 {
628 };
629 
630 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
632 {
633 G4double cgktab[jmax+1][2*jmax+1][2*jmax+1][jmax+1][jmax+1];
634 };
635 
636 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
637 // UrQMD
638 //
640 {
642 };
643 
644 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
645 // urqmd
646 extern "C"
647 {
648 extern int time_ ();
649 extern void loginit_();
650 extern void sseed_ (int*);
651 extern void uinit_ (int*);
652 extern void urqmd_ ();
653 extern int pdgid_ (int*, int*); //ityp
654 
655 extern void g4urqmdblockdata_ ();
656 
657 // urqmdparams
658 extern struct ccurqmd13urqmdparams urqmdparams_;
659 //coms
660 extern struct ccurqmd13sys sys_;
661 extern struct ccurqmd13rsys rsys_;
662 extern struct ccurqmd13comseed comseed_;
663 extern struct ccurqmd13logic logic_;
664 extern struct ccurqmd13mdprop mdprop_;
665 extern struct ccurqmd13cuts cuts_;
666 extern struct ccurqmd13spdata spdata_;
667 extern struct ccurqmd13isys isys_;
668 extern struct ccurqmd13coor coor_;
669 extern struct ccurqmd13frag frag_;
670 extern struct ccurqmd13aios aios_;
671 extern struct ccurqmd13pots pots_;
672 extern struct ccurqmd13scoor scoor_;
673 extern struct ccurqmd13sisys sisys_;
674 extern struct ccurqmd13ssys ssys_;
675 extern struct ccurqmd13rtdelay rtdelay_;
676 extern struct ccurqmd13itdelay itdelay_;
677 extern struct ccurqmd13svinfo svinfo_;
678 extern struct ccurqmd13ffermi ffermi_;
679 extern struct ccurqmd13peq peq_;
680 //comres
681 extern struct ccurqmd13versioning versioning_;
682 extern struct ccurqmd13resonances resonances_;
683 extern struct ccurqmd13sigtabi sigtabi_;
684 extern struct ccurqmd13sigtabr sigtabr_;
685 
686 //comwid
687 extern struct ccurqmd13decaywidth decaywidth_;
688 extern struct ccurqmd13brwignorm brwignorm_;
689 extern struct ccurqmd13xsections xsections_;
690 extern struct ccurqmd13tabnames tabnames_;
691 //options
692 extern struct ccurqmd13options options_;
693 extern struct ccurqmd13optstrings optstrings_;
694 extern struct ccurqmd13loptions loptions_;
695 extern struct ccurqmd13stables stables_;
696 //colltab
697 extern struct ccurqmd13colltab colltab_;
698 //inputs
699 extern struct ccurqmd13inputs inputs_;
700 extern struct ccurqmd13input2 input2_;
701 extern struct ccurqmd13protarints protarints_;
702 extern struct ccurqmd13protarreals protarreals_;
703 //newpart
704 extern struct ccurqmd13inewpart inewpart_;
705 extern struct ccurqmd13rnewpart rnewpart_;
706 extern struct ccurqmd13fnewpart fnewpart_;
707 //bocinc
708 extern struct ccurqmd13boxic boxic_;
709 extern struct ccurqmd13boxrc boxrc_;
710 // comnorm
712 //comstr
717 // freezeout
719 //urqmd
720 extern struct ccurqmd13energies energies_;
721 //input
722 extern struct ccurqmd13values values_;
723 // cascinit
724 extern struct ccurqmd13ini ini_;
725 //iso
726 extern struct ccurqmd13factorials factorials_;
727 extern struct ccurqmd13cgks cgks_;
728 
729 }
730 
731 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
732 #endif