Common blocks to access material properties and
[u/mrichter/AliRoot.git] / TFluka / Ffheavy.h
1 extern "C" {
2 //*$ create fheavy.add
3 //*copy fheavy
4 //*
5 //*=== fheavy ===========================================================*
6 //*
7 //*----------------------------------------------------------------------*
8 //*                                                                      *
9 //*     include file: fheavy                                             *
10 //*                                                                      *
11 //*     created  on  5 april 1990     by   alfredo ferrari, infn milan   *
12 //*                                                                      *
13 //*     last change on   26-jul-97    by   alfredo ferrari, infn milan   *
14 //*                                                                      *
15 //*     included in the following subroutines or functions: not updated  *
16 //*                                                                      *
17 //*     description of the common block(s) and variable(s)               *
18 //*                                                                      *
19 //*     /fheavy/ is the storage for heavy secondaries created in the     *
20 //*              nuclear evaporation                                     *
21 //*        npheav     = number of secondaries                            *
22 //*        kheavy(ip) = type of the secondary ip                         *
23 //*                   ( 3 = deuteron, 4 = 3-h, 5 = 3-he, 6 = 4-he,       *
24 //*                     7-12 = "heavy" fragment specified by ibheav and  *
25 //*                     icheav )                                         *
26 //*        cxheav(ip) = direction cosine of the secondary ip             *
27 //*                     with respect to x-axis                           *
28 //*        cyheav(ip) = direction cosine of the secondary ip             *
29 //*                     with respect to y-axis                           *
30 //*        czheav(ip) = direction cosine of the secondary ip             *
31 //*                     with respect to z-axis                           *
32 //*        tkheav(ip) = kinetic energy of secondary ip                   *
33 //*        pheavy(ip) = momentum of the secondary ip                     *
34 //*        wheavy(ip) = weight of the secondary ip                       *
35 //*        agheav(ip) = "age" of the secondary ip with respect to the    *
36 //*                     interaction time                                 *
37 //*        amheav(kp) = atomic masses of the twelve types of evaporated  *
38 //*                     or fragmented or fissioned particles             *
39 //*        amnhea(kp) = nuclear masses of the twelve types of evaporated *
40 //*                     or fragmented or fissioned particles             *
41 //*     bhheav(jp,kp) = (nuclear) binding energy of the jp_th hyperon of *
42 //*                     the kp-type heavy particle                       *
43 //*        anheav(kp) = name of the kp-type heavy particle               *
44 //*        icheav(kp) = charge of the kp-type heavy particle             *
45 //*        ibheav(kp) = mass number of the kp-type heavy particle        *
46 //*        imheav(kp) = isomeric state of the kp-type heavy particle     *
47 //*        ihheav(kp) = number of hyperons of the kp-type heavy particle *
48 //*     khheav(jp,kp) = id of the jp_th hyperon of the kp-type heavy     *
49 //*                     particle                                         *
50 //*        infhea(ip) = possible extra infos for the ip_th secondary     * 2006.3
51 //*   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   *
52 //*   !!! there is now the possibility to produce up to 6 "heavy" !!!!   *
53 //*   !!! fragments besides the residual nucleus recorded in      !!!!   *
54 //*   !!! resnuc: they are identified by indeces 7-12, of course  !!!!   *
55 //*   !!! the corresponding physical properties (z,a,m..) must be !!!!   *
56 //*   !!! updated every time they are produced                    !!!!   *
57 //*   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   *
58 //*----------------------------------------------------------------------*
59 //*
60 const Int_t mxheav = 100;
61 const Int_t kxheav = 30;
62
63 typedef struct {
64     Double_t cxheav[mxheav];
65     Double_t cyheav[mxheav];
66     Double_t czheav[mxheav];
67     Double_t tkheav[mxheav];
68     Double_t pheavy[mxheav];
69     Double_t wheavy[mxheav];
70     Double_t agheav[mxheav];
71     Double_t bhheav[kxheav][ihypmx];
72     Double_t amheav[kxheav];
73     Double_t amnhea[kxheav];
74     Int_t    kheavy[mxheav];
75     Int_t    infhea[mxheav]; // 2006.3
76     Int_t    icheav[kxheav];
77     Int_t    ibheav[kxheav];
78     Int_t    imheav[kxheav];
79     Int_t    ihheav[kxheav];
80     Int_t    khheav[kxheav][ihypmx];
81     Int_t    npheav;
82 } fheavyCommon;
83 #define FHEAVY COMMON_BLOCK(FHEAVY,fheavy)
84 COMMON_BLOCK_DEF(fheavyCommon,FHEAVY);
85
86 typedef struct {
87    Char_t   anheav[kxheav][8];
88 } fheavcCommon;
89 #define FHEAVC COMMON_BLOCK(FHEAVC,fheavc)
90 COMMON_BLOCK_DEF(fheavcCommon,FHEAVC);
91 }