]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TFluka/Fflkstk.h
Data needed for radiation scoring. (B. Pastircak)
[u/mrichter/AliRoot.git] / TFluka / Fflkstk.h
1 #ifndef FFLKSTK_H
2 #define FFLKSTK_H 1
3
4 #include "cfortran.h"
5 #include "Rtypes.h"
6
7 #include "Fdimpar.h"
8
9 extern "C" {
10 //*$ create flkstk.add
11 //*copy flkstk
12 //*
13 //*=== flkstk ============================================================*
14 //*
15 //*----------------------------------------------------------------------*
16 //*                                                                      *
17 //*     FLUKA90-200x particle stack:                                     *
18 //*                                                                      *
19 //*     Changes: last change on 15-may-2005   by    Alfredo Ferrari      *
20 //*                                                  INFN, Milan         *
21 //*                                                                      *
22 //*                                                                      *
23 //*     description of the common block(s) and variable(s)               *
24 //*                                                                      *
25 //*     /Flkstk/ stack for the primaries                                  *
26 //*        Wtflk  = particle statistical weight                          *
27 //*        Pmoflk = particle (laboratory) momentum (GeV/c)               *
28 //*        Tkeflk = particle (laboratory) kinetic energy (GeV)           *
29 //*        Xflk   = particle position  x-coordinate                      *
30 //*        Yflk   = particle position  y-coordinate                      *
31 //*        Zflk   = particle position  z-coordinate                      *
32 //*        Txflk  = particle direction x-coordinate                      *
33 //*        Tyflk  = particle direction y-coordinate                      *
34 //*        Tzflk  = particle direction z-coordinate                      *
35 //*        Txpol  = x direction cosine of the particle polarization      *
36 //*        Typol  = y direction cosine of the particle polarization      *
37 //*        Tzpol  = z direction cosine of the particle polarization      *
38 //*        Txnor  = x direction cosine of a (possible) surface normal    *
39 //*        Tynor  = y direction cosine of a (possible) surface normal    *
40 //*        Tznor  = z direction cosine of a (possible) surface normal    *
41 //*        Dfnear = distance to the nearest boundary                     *
42 //*        Agestk = age of the particle (seconds)                        *
43 //*        Aknshr = Kshort component of K0/K0bar                         *
44 //*        Frcphn = cross section for force photonuclear interaction (if *
45 //*                 < 0), distance to a forced photonuclear interaction  *
46 //*                (if > 0)                                              *
47 //*        Lfrphn = flag for forced photonuclear interaction             *
48 //*        Raddly = delay (s) in production wrt the nominal primary "0"  *
49 //*                 time for particle produced in radioactive decays     *
50 //*                (i.e. those coming from decays of daughter isotopes), *
51 //*                 when in analogue mode, flag for position in the      *
52 //*                 activr array when in non-analogue mode               *
53 //*        Cmpath = cumulative path travelled by the particle since it   *
54 //*                 was produced (cm)                                    *
55 //*        Sparek = spare real variables available for K.W.Burn          *
56 //*        Ispark = spare integer variables available for K.W.Burn       *
57 //*        Iloflk = particle identity (Paprop numbering)                 *
58 //*        Igroup = energy group for low energy neutrons                 *
59 //*        Loflk  = particle generation                                  *
60 //*        Louse  = user flag                                            *
61 //*        Nrgflk = particle region number                               *
62 //*        Nlattc = particle lattice cell number                         *
63 //*        Nhspnt = pointer to the history object (Geant4 geometry)      *
64 //*        Nevent = number of the event which created the particle       *
65 //*        Numpar = particle number                                      *
66 //*        Lraddc = flag for particles generated in radioactive decays   *
67 //*        Nparma = largest particle number ever reached                 *
68 //*        Nstmax = highest value of the stack pointer ever reached      *
69 //*                 in the run                                           *
70 //*        Npflka = Fluka stack pointer                                  *
71 //*        Nstaol = stack pointer of the last processed particle         *
72 //*        Igroun = energy group number of the last processed particle   *
73 //*                 if it is a low energy neutron                        *
74 //*----------------------------------------------------------------------*
75 //*
76
77 typedef struct {
78    Double_t xflk[mfstck+1];           //(0:MFSTCK)
79    Double_t yflk[mfstck+1];           //(0:MFSTCK)
80    Double_t zflk[mfstck+1];           //(0:MFSTCK)
81    Double_t txflk[mfstck+1];          //(0:MFSTCK)
82    Double_t tyflk[mfstck+1];          //(0:MFSTCK)
83    Double_t tzflk[mfstck+1];          //(0:MFSTCK)
84    Double_t txpol[mfstck+1];          //(0:MFSTCK)
85    Double_t typol[mfstck+1];          //(0:MFSTCK)
86    Double_t tzpol[mfstck+1];          //(0:MFSTCK)
87    Double_t txnor[mfstck+1];          //(0:MFSTCK)
88    Double_t tynor[mfstck+1];          //(0:MFSTCK)
89    Double_t tznor[mfstck+1];          //(0:MFSTCK)
90    Double_t wtflk[mfstck+1];          //(0:MFSTCK)
91    Double_t pmoflk[mfstck+1];         //(0:MFSTCK)
92    Double_t tkeflk[mfstck+1];         //(0:MFSTCK)
93    Double_t dfnear[mfstck+1];         //(0:MFSTCK)
94    Double_t agestk[mfstck+1];         //(0:MFSTCK)
95    Double_t aknshr[mfstck+1];         //(0:MFSTCK)
96    Double_t raddly[mfstck+1];         //(0:MFSTCK)
97    Double_t cmpath[mfstck+1];         //(0:MFSTCK)
98    Double_t frcphn[mfstck+1];         //(0:MFSTCK)
99    Double_t sparek[mfstck+1][mkbmx1]; //(MKBMX1,0:MFSTCK)
100    Int_t    ispark[mfstck+1][mkbmx2]; //(MKBMX2,0:MFSTCK)
101    Int_t    iloflk[mfstck+1];         //(0:MFSTCK)
102    Int_t    igroup[mfstck+1];         //(0:MFSTCK)
103    Int_t    loflk[mfstck+1];          //(0:MFSTCK)
104    Int_t    louse[mfstck+1];          //(0:MFSTCK)
105    Int_t    nrgflk[mfstck+1];         //(0:MFSTCK)
106    Int_t    nlattc[mfstck+1];         //(0:MFSTCK)
107    Int_t    nhspnt[mfstck+1];         //(0:MFSTCK)
108    Int_t    nevent[mfstck+1];         //(0:MFSTCK)
109    Int_t    numpar[mfstck+1];         //(0:MFSTCK)
110    Int_t    lraddc[mfstck+1];         //(0:MFSTCK)
111    Int_t    lfrphn[mfstck+1];         //(0:MFSTCK)
112    Int_t    nparma;
113    Int_t    nstmax;
114    Int_t    npflka;
115    Int_t    nstaol;
116    Int_t    igroun;
117 } flkstkCommon;
118 #define FLKSTK COMMON_BLOCK(FLKSTK,flkstk)
119 COMMON_BLOCK_DEF(flkstkCommon,FLKSTK);
120 }
121
122 #endif