Switch to negative values of logical output units to obtain binary output
[u/mrichter/AliRoot.git] / TFluka / Fflkmat.h
1 #include "cfortran.h"
2 #include "Rtypes.h"
3
4 #include "Fdimpar.h"
5
6 extern "C" {
7 /*$ CREATE FLKMAT.ADD
8 *COPY FLKMAT
9 *
10 *=== Flkmat ===========================================================*
11 *
12 *----------------------------------------------------------------------*
13 *                                                                      *
14 *     Partial (some variables come from FLUKA87)                       *
15 *     Copyright (C) 1996-2005      by        Alfredo Ferrari           *
16 *     All Rights Reserved.                                             *
17 *                                                                      *
18 *                                                                      *
19 *     FLuKa MATerial properties and atomic data                        *
20 *                                                                      *
21 *     Version for Fluka91/.../2005/...:                                *
22 *                                                                      *
23 *     Last change on  28-Apr-05    by  Alfredo Ferrari, INFN-Milan     *
24 *                                                                      *
25 *                                                                      *
26 *     This common contains the basic properties of the materials used  *
27 *     in the FLUKA run. Other properties are recorded in specialized   *
28 *     commons (ie for dE/dx etc)                                       *
29 *                                                                      *
30 *     Aocmbm(i) = Atomic density of the i_th material in barn^-1 cm^-1 *
31 *                 (Atoms Over Cm times Barn for Materials)             *
32 *     Eocmbm(i) = Electron density of the i_th material in barn^-1cm^-1*
33 *                 (Atoms Over Cm times Barn for Materials)             *
34 *       Amss(i) = Atomic weight (g/mole) of the i_th material          *
35 *     Amssem(i) = "Effective" i_th material atomic weight for the para-*
36 *                 metrized EM cascade                                  *
37 *        Rho(i) = Density of the i_th material                         *
38 *       Ztar(i) = Atomic number of the i_th material                   *
39 *     Zsqtar(i) = Squared atomic number of the i_th material           *
40 *     Ztarem(i) = "Effective" atomic number for the i_th material for  *
41 *                 the parametrized EM cascade                          *
42 *     Ainlng(i) = Inelastic scattering length of the i_th material     *
43 *                 for beam particles at the average beam energy in cm  *
44 *     Aellng(i) = Elastic scattering length of the i_th material for   *
45 *                 beam particles at average beam energy in cm          *
46 *      X0rad(i) = Radiation lengths of the materials in cm             *
47 *     Ainnth(i) = Inelastic scattering length of the i_th material     *
48 *                 for neutrons at threshold energy in cm               *
49 *     Medium(k) = Material number of the k_th region                   *
50 *     Mulflg(i) = Flags for multiple scattering options for the i_th   *
51 *                 material                                             *
52 *      Icomp(i) = Starting address in the Matnum array if the i_th     *
53 *                 material is a compound/mixture, 0 otherwise          *
54 *     Mssnum(i) = Mass number of the target nucleus for the i_th mater-*
55 *                 ial, if =< 0 it means that it is in the natural isot-*
56 *                 opic composition                                     *
57 *     Msindx(i) = Index for tabulations for the given isotope of the   *
58 *                 target nucleus (meaningful only for mssnum > 0)      *
59 *                 that it is in the natural isotopic composition       *
60 *     Lcmpnd(i) = logical flag for real compounds versus mixtures      *
61 *     Matnam(i) = Alphabetical name of the i_th material number        *
62 *        Nregs  = total number of regions                              *
63 *        Nregcg = total number of combinatorial geometry regions       *
64 *        Nmat   = total number of materials used in the problem        *
65 *        Mtbsnm = medium for which inelastic interaction biasing must  *
66 *                 be done                                              *
67 *                                                                      *
68 *                        Mxxmdf = maximum number of materials          *
69 *                        Mxxrgn = maximum number of regions            *
70 *                                                                      *
71 *----------------------------------------------------------------------*
72 *
73       CHARACTER*8 MATNAM
74       LOGICAL     LCMPND
75       COMMON / FLKMAT / AOCMBM(MXXMDF), EOCMBM(MXXMDF), AMSS  (MXXMDF),
76      &                  AMSSEM(MXXMDF), RHO   (MXXMDF), ZTAR  (MXXMDF),
77      &                  ZTAREM(MXXMDF), ZSQTAR(MXXMDF), AINLNG(MXXMDF),
78      &                  AELLNG(MXXMDF), X0RAD (MXXMDF), AINNTH(MXXMDF),
79      &                  MEDIUM(MXXRGN), MULFLG(MXXMDF), ICOMP (MXXMDF),
80      &                  MSSNUM(MXXMDF), MSINDX(MXXMDF), LCMPND(MXXMDF),
81      &                  NREGS , NMAT  , MTBSNM, NREGCG
82       COMMON / CHFLKM / MATNAM(MXXMDF)
83       SAVE / FLKMAT /
84       SAVE / CHFLKM /
85 */
86
87     typedef struct {
88         Double_t aocmbm[mxxmdf];
89         Double_t eocmbm[mxxmdf];
90         Double_t amss  [mxxmdf];
91         Double_t amssem[mxxmdf];
92         Double_t rho   [mxxmdf];
93         Double_t ztar  [mxxmdf];
94         Double_t ztarem[mxxmdf];
95         Double_t zsqtar[mxxmdf];
96         Double_t ainlng[mxxmdf];
97         Double_t aellng[mxxmdf];
98         Double_t x0rad [mxxmdf];
99         Double_t ainnth[mxxmdf];
100         Int_t    medium[mxxrgn];
101         Int_t    mulflg[mxxmdf];
102         Int_t    icomp [mxxmdf];
103         Int_t    mssnum[mxxmdf];
104         Int_t    msindx[mxxmdf];
105         Int_t    lcmpnd[mxxmdf];
106         Int_t    nregs;
107         Int_t    nmat;
108         Int_t    mtbsnm;
109         Int_t    nregcg;
110     } flkmatCommon;
111 #define FLKMAT COMMON_BLOCK(FLKMAT,flkmat)
112     COMMON_BLOCK_DEF(flkmatCommon, FLKMAT);
113 }