source: trunk/source/processes/hadronic/models/incl/include/G4InclDataDefs.hh@ 866

Last change on this file since 866 was 819, checked in by garnier, 17 years ago

import all except CVS

File size: 10.3 KB
Line 
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// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// $Id: G4InclDataDefs.hh,v 1.2 2007/09/11 13:18:43 miheikki Exp $
27// Translation of INCL4.2/ABLA V3
28// Pekka Kaitaniemi, HIP (translation)
29// Christelle Schmidt, IPNL (fission code)
30// Alain Boudard, CEA (contact person INCL/ABLA)
31// Aatos Heikkinen, HIP (project coordination)
32
33// All data structures needed by INCL4 are defined here.
34
35#ifndef InclDataDefs_hh
36#define InclDataDefs_hh 1
37
38#define FSIZE 15
39/**
40 * Initial values of a hadronic cascade problem.
41 */
42class G4Calincl {
43public:
44 G4Calincl() {};
45 ~G4Calincl() {};
46
47 /**
48 * Here f is an array containing the following initial values:
49 * - f[0] : target mass number
50 * - f[1] : target charge number
51 * - f[2] : bullet energy
52 * - f[3] : minimum proton energy to leave the target (default: 0.0)
53 * - f[4] : nuclear potential (default: 45.0 MeV)
54 * - f[5] : time scale (default: 1.0)
55 * - f[6] : bullet type (1: proton, 2: neutron, 3: pi+, 4: pi0 5: pi-, 6:H2, 7: H3, 8: He3, 9: He4
56 * - f[7] : minimum neutron energy to leave the target (default: 0.0)
57 * - f[8] : target material identifier (G4Mat)
58 * - f[9] : not used
59 * - f[10] : not used
60 * - f[11] : not used
61 * - f[12] : not used
62 * - f[13] : not used
63 * - f[14] : not used
64 */
65 G4double f[FSIZE];
66
67 /**
68 * Number of events to be processed.
69 */
70 G4int icoup;
71};
72
73#define IGRAINESIZE 19
74/**
75 * Random seeds used by internal random number generators.
76 * @see G4Incl::standardRandom
77 * @see G4Incl::gaussianRandom
78 */
79class G4Hazard{
80public:
81 G4Hazard() {};
82 ~G4Hazard() {};
83
84 /**
85 * Random seed
86 */
87 G4long ial;
88
89 /**
90 * An array of random seeds.
91 */
92 G4long igraine[IGRAINESIZE];
93};
94
95#define MATSIZE 500
96#define MATGEOSIZE 6
97/**
98 * Target nuclei to be taken into account in the cascade problem.
99 */
100class G4Mat {
101public:
102 G4Mat() { };
103 ~G4Mat() { };
104
105 /**
106 * Charge numbers.
107 */
108 G4int zmat[MATSIZE];
109
110 /**
111 * Mass number
112 */
113 G4int amat[MATSIZE];
114
115 /**
116 *
117 */
118 G4double bmax_geo[MATGEOSIZE][MATSIZE];
119
120 /**
121 * Number of materials.
122 */
123 G4int nbmat;
124};
125
126#define LGNSIZE 9
127/**
128 * Properties of light nucleus used as a bullet.
129 */
130class G4LightGausNuc {
131public:
132 G4LightGausNuc() {};
133 ~G4LightGausNuc() {};
134
135 G4double rms1t[LGNSIZE];
136 G4double pf1t[LGNSIZE];
137 G4double pfln[LGNSIZE];
138 G4double tfln[LGNSIZE];
139 G4double vnuc[LGNSIZE];
140};
141
142#define LNSIZE 30
143/**
144 * Data of light nuclei.
145 */
146class G4LightNuc {
147public:
148 G4LightNuc() {};
149 ~G4LightNuc() {};
150
151 /**
152 * r
153 */
154 G4double r[LNSIZE];
155
156 /**
157 * a
158 */
159 G4double a[LNSIZE];
160};
161
162#define SAXWROWS 30
163#define SAXWCOLS 500
164/**
165 * Woods-Saxon density and its first derivative.
166 */
167class G4Saxw {
168public:
169 G4Saxw() {};
170 ~G4Saxw() {};
171
172 /**
173 * x
174 */
175 G4double x[SAXWROWS][SAXWCOLS];
176
177 /**
178 * y
179 */
180 G4double y[SAXWROWS][SAXWCOLS];
181
182 /**
183 * s
184 */
185 G4double s[SAXWROWS][SAXWCOLS];
186
187 /**
188 * imat
189 */
190 G4int imat;
191
192 /**
193 * n
194 */
195 G4int n;
196
197 /**
198 * k
199 */
200 G4int k;
201};
202
203/**
204 * Parameters for INCL4 model.
205 */
206class G4Ws {
207public:
208 G4Ws() {};
209 ~G4Ws() {};
210
211 /**
212 * r0
213 */
214 G4double r0;
215
216 /**
217 * adif
218 */
219 G4double adif;
220
221 /**
222 * Maximum radius of the nucleus
223 */
224 G4double rmaxws;
225
226 /**
227 * drws
228 */
229 G4double drws;
230
231 /**
232 * Shape of the surface of the nucleus:
233 * - -1: Woods-Saxon density with impact parameter dependence
234 * - 0: Woods-Saxon density without impact parameter dependence
235 * - 1: Sharp surface (hard sphere)
236 */
237 G4double nosurf;
238
239 /**
240 * Parameter related to the maximum radius of the nucleus.
241 *
242 * rmaxws = r0 + xfoisa*A
243 */
244 G4double xfoisa;
245
246 /**
247 * Pauli blocking used in the simulation:
248 * - 0: statistic Pauli blocking
249 * - 1: strict Pauli blocking
250 * - 2: no Pauli blocking
251 */
252 G4double npaulstr;
253
254 /**
255 * Maximum impact parameter
256 */
257 G4double bmax;
258};
259
260#define DTONSIZE 13
261/**
262 * Random seeds used by internal random number generators.
263 * @see G4Incl::standardRandom
264 * @see G4Incl::gaussianRandom
265 */
266class G4Dton {
267public:
268 G4Dton() {};
269 ~G4Dton() {};
270
271 G4double c[DTONSIZE];
272 G4double d[DTONSIZE];
273 G4double fn;
274};
275
276#define SPL2SIZE 100
277/**
278 * Random seeds used by internal random number generators.
279 * @see G4Incl::standardRandom
280 * @see G4Incl::gaussianRandom
281 */
282class G4Spl2 {
283public:
284 G4Spl2() {};
285 ~G4Spl2() {};
286
287 G4double x[SPL2SIZE];
288 G4double y[SPL2SIZE];
289 G4double a[SPL2SIZE];
290 G4double b[SPL2SIZE];
291 G4double c[SPL2SIZE];
292 G4int n;
293};
294
295// incl4.2.cc:
296
297//#define BL1SIZE 300
298#define BL1SIZE 3000
299/**
300 * Random seeds used by internal random number generators.
301 * @see G4Incl::standardRandom
302 * @see G4Incl::gaussianRandom
303 */
304class G4Bl1 {
305public:
306 G4Bl1() {};
307 ~G4Bl1() {};
308
309 G4double p1[BL1SIZE],p2[BL1SIZE],p3[BL1SIZE];
310 G4double eps[BL1SIZE];
311 G4int ind1[BL1SIZE],ind2[BL1SIZE];
312 G4double ta;
313};
314
315#define BL2CROISSIZE 19900
316#define BL2INDSIZE 19900
317/**
318 *
319 */
320class G4Bl2 {
321public:
322 G4Bl2() {};
323 ~G4Bl2() {};
324
325 /**
326 *
327 */
328 G4double crois[BL2CROISSIZE];
329
330 /**
331 *
332 */
333 G4int k;
334
335 /**
336 *
337 */
338 G4int ind[BL2INDSIZE];
339
340 /**
341 *
342 */
343 G4int jnd[BL2INDSIZE];
344};
345
346//#define BL3SIZE 300
347#define BL3SIZE 3000
348/**
349 *
350 */
351class G4Bl3 {
352public:
353 G4Bl3() {};
354 ~G4Bl3() {};
355
356 /**
357 * r1 and r2
358 */
359 G4double r1,r2;
360
361 /**
362 * Nucleon positions
363 */
364 G4double x1[BL3SIZE], x2[BL3SIZE],x3[BL3SIZE];
365
366 /**
367 * Mass numbers
368 */
369 G4int ia1,ia2;
370
371 /**
372 * rab2
373 */
374 G4double rab2;
375};
376
377/**
378 * G4Bl4
379 */
380class G4Bl4 {
381public:
382 G4Bl4() {};
383 ~G4Bl4() {};
384
385 /**
386 * tmax5
387 */
388 G4double tmax5;
389};
390
391//#define BL5SIZE 300
392#define BL5SIZE 3000
393/**
394 * G4Bl5
395 */
396class G4Bl5 {
397public:
398 G4Bl5() {};
399 ~G4Bl5() {};
400
401 /**
402 * tlg
403 */
404 G4double tlg[BL5SIZE];
405
406 /**
407 * nesc
408 */
409 G4int nesc[BL5SIZE];
410};
411
412/**
413 * G4Bl6
414 */
415class G4Bl6 {
416public:
417 G4Bl6() {};
418 ~G4Bl6() {};
419
420 /**
421 * xx10
422 */
423 G4double xx10;
424
425 /**
426 * isa
427 */
428 G4double isa;
429};
430
431/**
432 * G4Bl8
433 */
434class G4Bl8 {
435public:
436 G4Bl8() {};
437 ~G4Bl8() {};
438
439 /**
440 * rathr
441 */
442 G4double rathr;
443
444 /**
445 * ramass
446 */
447 G4double ramass;
448};
449
450//#define BL9SIZE 300
451#define BL9SIZE 3000
452/**
453 * G4Bl9
454 */
455class G4Bl9 {
456public:
457 G4Bl9() {
458 l1 = 0;
459 l2 = 0;
460 };
461 ~G4Bl9() {};
462
463 /**
464 * hel
465 */
466 G4double hel[BL9SIZE];
467
468 /**
469 * l1 and l2
470 */
471 G4int l1,l2;
472};
473
474/**
475 * G4Bl10
476 */
477class G4Bl10 {
478public:
479 G4Bl10() {};
480 ~G4Bl10() {};
481
482 /**
483 * ri4, rs4, r2i, r2s, pdummy, pf
484 */
485 G4double ri4,rs4,r2i,r2s,pdummy,pf;
486};
487
488/**
489 * G4Kind
490 */
491class G4Kind {
492public:
493 G4Kind() {};
494 ~G4Kind() {};
495
496 /**
497 * kindf7
498 */
499 G4int kindf7;
500};
501
502#define VARSIZE 3
503#define VAEPSSIZE 250
504#define VAAVM 1000
505/**
506 * Extra information on collisions between nucleons.
507 */
508class G4VarAvat {
509public:
510 G4VarAvat() {};
511 ~G4VarAvat() {};
512
513 /**
514 *
515 */
516 G4int kveux;
517
518 /**
519 *
520 */
521 G4double bavat;
522
523 /**
524 *
525 */
526 G4int nopartavat,ncolavat;
527
528 /**
529 *
530 */
531 G4double r1_in[VARSIZE],r1_first_avat[VARSIZE];
532
533 /**
534 *
535 */
536 G4double epsd[VAEPSSIZE],eps2[VAEPSSIZE],eps4[VAEPSSIZE],eps6[VAEPSSIZE],epsf[VAEPSSIZE];
537
538 /**
539 *
540 */
541 G4int nb_avat;
542
543 /**
544 *
545 */
546 G4double timeavat[VAAVM],l1avat[VAAVM],l2avat[VAAVM],jpartl1[VAAVM],jpartl2[VAAVM];
547
548 /**
549 *
550 */
551 G4double del1avat[VAAVM],del2avat[VAAVM],energyavat[VAAVM];
552
553 /**
554 *
555 */
556 G4double bloc_paul[VAAVM],bloc_cdpp[VAAVM],go_out[VAAVM];
557};
558
559#define VARNTPSIZE 255
560class G4VarNtp {
561public:
562 G4VarNtp() {};
563 ~G4VarNtp() {};
564
565 /**
566 * A of the remnant.
567 */
568 G4double massini;
569
570 /**
571 * Z of the remnant.
572 */
573 G4double mzini;
574
575 /**
576 * Excitation energy.
577 */
578 G4double exini;
579
580 /**
581 * Cascade n multip.
582 */
583 G4int mulncasc;
584
585 /**
586 * Evaporation n multip.
587 */
588 G4int mulnevap;
589
590 /**
591 * Total n multip.
592 */
593 G4int mulntot;
594
595 /**
596 * Impact parameter.
597 */
598 G4double bimpact;
599
600 /**
601 * Remnant Intrinsic Spin.
602 */
603 G4int jremn;
604
605 /**
606 * Fission 1/0=Y/N.
607 */
608 G4int kfis;
609
610 /**
611 * Excit energy at fis.
612 */
613 G4double estfis;
614
615 /**
616 * Z of fiss nucleus.
617 */
618 G4int izfis;
619
620 /**
621 * A of fiss nucleus.
622 */
623 G4int iafis;
624
625 /**
626 * Number of particles.
627 */
628 G4int ntrack;
629
630 /**
631 * emitted in cascade (0) or evaporation (1).
632 */
633 G4int itypcasc[VARNTPSIZE];
634
635
636 /**
637 * A (-1 for pions).
638 */
639 G4int avv[VARNTPSIZE];
640
641 /**
642 * Z
643 */
644 G4int zvv[VARNTPSIZE];
645
646 /**
647 * Kinetic energy.
648 */
649 G4double enerj[VARNTPSIZE];
650
651 /**
652 * Momentum.
653 */
654 G4double plab[VARNTPSIZE];
655
656 /**
657 * Theta angle.
658 */
659 G4double tetlab[VARNTPSIZE];
660
661 /**
662 * Phi angle.
663 */
664 G4double philab[VARNTPSIZE];
665};
666
667/**
668 * Pauli blocking.
669 */
670class G4Paul {
671public:
672 G4Paul() {};
673 ~G4Paul() {};
674
675 /**
676 *
677 */
678 G4double ct0,ct1,ct2,ct3,ct4,ct5,ct6,pr,pr2,xrr,xrr2;
679
680 /**
681 *
682 */
683 G4double cp0,cp1,cp2,cp3,cp4,cp5,cp6;
684};
685
686
687#endif
Note: See TracBrowser for help on using the repository browser.