Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4UrQMD1_3Interface.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 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 #ifndef G4UrQMD1_3Interface_hh
36 #define G4UrQMD1_3Interface_hh
37 
38 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
39 //
40 // MODULE: G4UrQMD1_3Model.hh
41 //
42 // Version: 0.B
43 // Date: 20/12/12
44 // Author: Kh. Abdel-Waged and Nuha Felemban
45 // Revised by: V.V. Uzhinskii
46 // SPONSERED BY
47 // Customer: KAUST/NCMP
48 // Contract: 31-465
49 //
50 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 //
52 //
53 // Class Description
54 //
55 //
56 // Class Description - End
57 //
58 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
60 #include "globals.hh"
61 // coms
62 //
63 const G4int nmax = 500;
64 const G4int nspl = 500;
65 const G4int smax = 500;
66 // comres
67 const G4int minnuc=1;
68 const G4int minmes=100;
69 const G4int maxmes=132;
70 const G4int numnuc=16;
71 const G4int numdel=10;
77 const G4int numlam=13;
78 const G4int numsig=9;
79 const G4int numcas=6;
80 const G4int numome=1;
93 const G4int maxbra=11;
94 const G4int maxbrm=25;
95 const G4int maxbrs1=10;
96 const G4int maxbrs2=3;
97 const G4int nsigs = 10;
98 const G4int itblsz= 100;
99 const G4int maxreac = 13;
100 const G4int maxpsig = 12;
101 //
102 //comwid
103 //
104 const G4int widnsp=120;
105 const G4double mintab=0.10;
106 const G4double maxtab1=5.0;
107 const G4double maxtab2=50.0;
108 const G4int tabver=9;
109 //
110 // options
111 //
112 const G4int numcto=400;
113 const G4int numctp=400;
114 const G4int maxstables=20;
115 //
116 // colltab (collision tables)
117 //
118 const G4int ncollmax = 100;
119 //
120 // inputs
121 //
122 const G4int aamax=300;
123 //
124 // newpart (new created particles)
125 //
126 const G4int mprt=200;
127 const G4int oprt=2;
128 //
129 // boxinc
130 //
131 const G4int bptmax=20;
132 //
133 
134 // This next line is required as the default version of FORTRAN LOGICAL is
135 // four bytes long, whereas storage for G4bool is one byte.
136 //
137 // comnorm
138 const G4int n = 400;
139 //
140 // comstr
141 const G4int njspin=8;
142 //
143 //iso
144 const G4int jmax=7;
145 
146 // This next line is required as the default version of FORTRAN LOGICAL is
147 // four bytes long, whereas storage for G4bool is one byte.
148 //
149 
151 
152 //
153 // Standard common block for UrQMD
154 // Common options for coms.f
155 // 20 commons
156 //
157 //
159 {
163 };
164 
166 {
167 
171 };
172 
173 
175 {
177 };
178 
180 {
181  ftnlogical
183 };
184 
185 
186 
188 {
189  ftnlogical
191 
192 };
193 
195 {
196  G4double
198 };
199 
200 
202 {
203  G4double
205 };
206 
207 
209 {
210  G4double
212  spCby[nspl], outCb[nspl],
213  spYuky[nspl], outYuk[nspl],
214  spSkyy[nspl], outSky[nspl],
215  spdwwy[nspl], outdww[nspl];
216 };
217 
218 
220 {
221 
223  lstcoll[nmax],
225 };
226 
227 
229 {
230 G4double
232  p0[nmax], px[nmax], py[nmax], pz[nmax],
234 };
235 
237 {
238 G4double
240 };
241 
243 {
244 G4double
246  aipx[nmax], aipy[nmax], aipz[nmax],
247  aorx [4][nmax], aory[4][nmax], aorz[4][nmax],
248  aopx[4][nmax], aopy[4][nmax], aopz[4][nmax];
249 };
250 
251 
253 {
254 
255 G4double
257  gamYuk, drPau, dpPau, gw, sgw, delr, fdel,
258  dt,da, db,dtimestep;
259 };
260 
262 {
263 
264 G4double
266  p0s[smax], pxs[smax], pys[smax], pzs[smax],
267  sfmass[smax];
268 };
269 
271 {
272  G4int
274  suid[smax];
275 };
276 
277 
279 {
281 };
282 
284 {
285 G4double
286  p0td[nmax][2],pxtd[nmax][2],pytd[nmax][2],pztd[nmax][2],
287  fmasstd[nmax][2];
288 };
289 
290 
292 {
293 G4int
295 };
296 
298 {
299 G4int
300  itypt[2],uidt[2],origint[2],iso3t[2];
301 };
302 
303 
305 {
306 G4double
308 };
309 
311 {
313 };
314 
315 //
316 // Definition for Collision Term
317 // Commons comres
318 // 4 commons
319 //
320 
322 {
323 char versiontag[45];
324 };
325 
326 
328 {
329 
336 
339 
344 
354 };
355 
357 {
360 };
361 
362 
364 {
365 
367 };
368 
369 //comwid
371 {
378 
379 };
380 
381 
383 {
386 };
387 
388 
390 {
393 };
394 
395 
397 {
398 char tabname[77];
399 };
400 //-----------------
401 //
402 // options
403 //
405 {
407 
409 };
410 
411 
413 {
414 char ctodc[numcto][2];
415 char ctpdc[numctp][2];
416 };
417 
419 {
422  bf20;
423 };
424 
426 {
429 };
430 
431 //
432 //colltab
433 //
435 {
436 G4double
439 G4int
441 G4int
443 ftnlogical
445 G4int
447 G4int
449 G4double
451 };
452 
453 //
454 // inputs
455 //
457 {
461 };
462 
464 {
467 };
468 
470 {
471 
473 
475 };
476 
478 {
482  pt_pz[2][aamax];
485 };
486 // newpart
488 {
492 };
493 
495 {
497  pold[oprt][5],p0nn,pxnn,pynn,pznn,pnn, mstring[2],
499 
500 };
501 
503 {
505 };
506 //
507 // boxinc
508 //
510 {
516 };
517 
519 {
526 };
527 // comnorm
529 {
531 G4double y2a[n][4],y2b[n][4], dx;
532 };
533 // comstr
535 {
536 G4double
538  , pbars, parqls, parrs;
539 };
541 {
542 G4double
544 };
545 
547 {
549 };
550 
552 {
554 };
556 //
558 {
560  frp0[nmax], frpx[nmax], frpy[nmax], frpz[nmax];
561 };
562 
563 // input
565 {
567 };
568 
569 // cascinit
571 {
573 };
574 
575 
576 // iso
578 {
580 };
582 {
583 
584 G4double cgktab[jmax+1][2*jmax+1][2*jmax+1][jmax+1][jmax+1];
585 };
586 
587 // UrQMD
588 //
590 {
592  eyuk, ecb, epau;
593 };
594 
595 
596 
597 // urqmd
598 extern "C"
599 {
600 extern int time_ ();
601 extern void loginit_();
602 extern void sseed_ (int*);
603 extern void uinit_ (int*);
604 extern void urqmd_ ();
605 extern int pdgid_ (int*, int*); //ityp
606 
607 extern void g4urqmdblockdata_ ();
608 
609 // urqmdparams
610 extern struct ccurqmd13urqmdparams urqmdparams_;
611 //coms
612 extern struct ccurqmd13sys sys_;
613 extern struct ccurqmd13rsys rsys_;
614 extern struct ccurqmd13comseed comseed_;
615 extern struct ccurqmd13logic logic_;
616 extern struct ccurqmd13mdprop mdprop_;
617 extern struct ccurqmd13cuts cuts_;
618 extern struct ccurqmd13spdata spdata_;
619 extern struct ccurqmd13isys isys_;
620 extern struct ccurqmd13coor coor_;
621 extern struct ccurqmd13frag frag_;
622 extern struct ccurqmd13aios aios_;
623 extern struct ccurqmd13pots pots_;
624 extern struct ccurqmd13scoor scoor_;
625 extern struct ccurqmd13sisys sisys_;
626 extern struct ccurqmd13ssys ssys_;
627 extern struct ccurqmd13rtdelay rtdelay_;
628 extern struct ccurqmd13itdelay itdelay_;
629 extern struct ccurqmd13svinfo svinfo_;
630 extern struct ccurqmd13ffermi ffermi_;
631 extern struct ccurqmd13peq peq_;
632 //comres
633 extern struct ccurqmd13versioning versioning_;
634 extern struct ccurqmd13resonances resonances_;
635 extern struct ccurqmd13sigtabi sigtabi_;
636 extern struct ccurqmd13sigtabr sigtabr_;
637 
638 //comwid
639 extern struct ccurqmd13decaywidth decaywidth_;
640 extern struct ccurqmd13brwignorm brwignorm_;
641 extern struct ccurqmd13xsections xsections_;
642 extern struct ccurqmd13tabnames tabnames_;
643 //options
644 extern struct ccurqmd13options options_;
645 extern struct ccurqmd13optstrings optstrings_;
646 extern struct ccurqmd13loptions loptions_;
647 extern struct ccurqmd13stables stables_;
648 //colltab
649 extern struct ccurqmd13colltab colltab_;
650 //inputs
651 extern struct ccurqmd13inputs inputs_;
652 extern struct ccurqmd13input2 input2_;
653 extern struct ccurqmd13protarints protarints_;
654 extern struct ccurqmd13protarreals protarreals_;
655 //newpart
656 extern struct ccurqmd13inewpart inewpart_;
657 extern struct ccurqmd13rnewpart rnewpart_;
658 extern struct ccurqmd13fnewpart fnewpart_;
659 //bocinc
660 extern struct ccurqmd13boxic boxic_;
661 extern struct ccurqmd13boxrc boxrc_;
662 // comnorm
664 //comstr
669 // freezeout
671 //urqmd
672 extern struct ccurqmd13energies energies_;
673 //input
674 extern struct ccurqmd13values values_;
675 // cascinit
676 extern struct ccurqmd13ini ini_;
677 //iso
678 extern struct ccurqmd13factorials factorials_;
679 extern struct ccurqmd13cgks cgks_;
680 
681 }
682 
683 #endif