Coding conventions.
[u/mrichter/AliRoot.git] / TFluka / Fstack.h
1 #ifndef FSTACK_H
2 #define FSTACK_H 1
3
4 #include "cfortran.h"
5 #include "Rtypes.h"
6
7 #include "Fdimpar.h"
8
9 extern "C" {
10 //*$ create stack.add
11 //*copy stack
12 //*
13 //*=== stack ============================================================*
14 //*
15 //*----------------------------------------------------------------------*
16 //*                                                                      *
17 //*     include file: stack copy                    created 26/11/86 by p*
18 //*                                                                      *
19 //*     changes: last change on 16-sep-1999   by    alfredo ferrari      *
20 //*                                                  infn, milan         *
21 //*                                                                      *
22 //*     included in the following subroutines or functions: not updated  *
23 //*                                                                      *
24 //*            aemshh                                                    *
25 //*            beamdv                                                    *
26 //*            beamem                                                    *
27 //*            beamso                                                    *
28 //*            delthr                                                    *
29 //*            dplstk                                                    *
30 //*            epilog                                                    *
31 //*            feeder                                                    *
32 //*            flnwst                                                    *
33 //*            flukam                                                    *
34 //*            geofar                                                    *
35 //*            geomtr                                                    *
36 //*            kashea                                                    *
37 //*            kaskad                                                    *
38 //*            kasneu                                                    *
39 //*            kasray                                                    *
40 //*            mgdraw                                                    *
41 //*            pphnev                                                    *
42 //*            soevsv                                                    *
43 //*            source                                                    *
44 //*            stckad                                                    *
45 //*            stuprf                                                    *
46 //*            zeroin                                                    *
47 //*                                                                      *
48 //*     description of the common block(s) and variable(s)               *
49 //*                                                                      *
50 //*     /stack/ stack for the primaries                                  *
51 //*        wt     = weight of the particle                               *
52 //*        pmom   = laboratory momentum of the particle in gev/c         *
53 //*        tke    = laboratory kinetic energy of the particle in gev     *
54 //*        xa     = x-coordinate of the particle                         *
55 //*        ya     = y-coordinate of the particle                         *
56 //*        za     = z-coordinate of the particle                         *
57 //*        tx     = direction cosine of the particle                     *
58 //*                 with respect to x-axis                               *
59 //*        ty     = direction cosine of the particle                     *
60 //*                 with respect to y-axis                               *
61 //*        tz     = direction cosine of the particle                     *
62 //*                 with respect to z-axis                               *
63 //*        txpol  = direction cosine of the particle polarization        *
64 //*        typol  = direction cosine of the particle polarization        *
65 //*        tzpol  = direction cosine of the particle polarization        *
66 //*        txnor  = direction cosine of a (possible) surface normal      *
67 //*        tynor  = direction cosine of a (possible) surface normal      *
68 //*        tznor  = direction cosine of a (possible) surface normal      *
69 //*        dfnear = distance to the nearest boundary                     *
70 //*        agestk = age of the particle (seconds)                        *
71 //*        aknshr = kshort component of k0/k0bar                         *
72 //*        raddly = delay (s) in production wrt the nominal primary "0"  *
73 //*                 time for particle produced in radioactive decays     *
74 //*                (i.e. those coming from decays of daughter isotopes)  *
75 //*        cmpath = cumulative path travelled by the particle since it   *
76 //*                 was produced (cm)
77 //*        sparek = spare real variables available for k.w.burn          *
78 //*        ispark = spare integer variables available for k.w.burn       *
79 //*        ilo    = type of the particle (see btype in /paprop/)         *
80 //*        igroup = energy group for low energy neutrons                 *
81 //*        lo     = generation of the particle                           *
82 //*        louse  = user flag                                            *
83 //*        nreg   = number of the region of the particle                 *
84 //*        nlattc = number of the lattice cell of the particle           *
85 //*        nhspnt = pointer to the history object (geant4 geometry)      *
86 //*        nevent = number of the event which created the particle       *
87 //*        numpar = particle number                                      *
88 //*        lraddc = flag for particles generated in radioactive decyas   *
89 //*        nparma = biggest particle number encountered                  *
90 //*        mstack = size of the stack                                    *
91 //*        lstmax = highest value of the stack pointer encountered       *
92 //*                 in the run                                           *
93 //*        lstack = stack pointer                                        *
94 //*        lstaol = stack pointer of the last processed particle         *
95 //*        igroun = energy group number of the last processed particle   *
96 //*                 if it is a low energy neutron                        *
97 //*                                                                      *
98 //*----------------------------------------------------------------------*
99 //*
100
101 typedef struct {
102    Double_t xa[mfstck+1];             //(0:MFSTCK)
103    Double_t ya[mfstck+1];             //(0:MFSTCK)
104    Double_t za[mfstck+1];             //(0:MFSTCK)
105    Double_t tx[mfstck+1];             //(0:MFSTCK)
106    Double_t ty[mfstck+1];             //(0:MFSTCK)
107    Double_t tz[mfstck+1];             //(0:MFSTCK)
108    Double_t txpol[mfstck+1];          //(0:MFSTCK)
109    Double_t typol[mfstck+1];          //(0:MFSTCK)
110    Double_t tzpol[mfstck+1];          //(0:MFSTCK)
111    Double_t txnor[mfstck+1];          //(0:MFSTCK)
112    Double_t tynor[mfstck+1];          //(0:MFSTCK)
113    Double_t tznor[mfstck+1];          //(0:MFSTCK)
114    Double_t wt[mfstck+1];             //(0:MFSTCK)
115    Double_t pmom[mfstck+1];           //(0:MFSTCK)
116    Double_t tke[mfstck+1];            //(0:MFSTCK)
117    Double_t dfnear[mfstck+1];         //(0:MFSTCK)
118    Double_t agestk[mfstck+1];         //(0:MFSTCK)
119    Double_t aknshr[mfstck+1];         //(0:MFSTCK)
120    Double_t raddly[mfstck+1];         //(0:MFSTCK)
121    Double_t cmpath[mfstck+1];         //(0:MFSTCK)
122    Double_t sparek[mfstck+1][mkbmx1]; //(MKBMX1,0:MFSTCK)
123    Int_t    ispark[mfstck+1][mkbmx2]; //(MKBMX2,0:MFSTCK)
124    Int_t    ilo[mfstck+1];            //(0:MFSTCK)
125    Int_t    igroup[mfstck+1];         //(0:MFSTCK)
126    Int_t    lo[mfstck+1];             //(0:MFSTCK)
127    Int_t    louse[mfstck+1];          //(0:MFSTCK)
128    Int_t    nreg[mfstck+1];           //(0:MFSTCK)
129    Int_t    nlattc[mfstck+1];         //(0:MFSTCK)
130    Int_t    nhspnt[mfstck+1];         //(0:MFSTCK)
131    Int_t    nevent[mfstck+1];         //(0:MFSTCK)
132    Int_t    numpar[mfstck+1];         //(0:MFSTCK)
133    Int_t    lraddc[mfstck+1];         //(0:MFSTCK)
134    Int_t    nparma;
135    Int_t    mstack;
136    Int_t    lstmax;
137    Int_t    lstack;
138    Int_t    lstaol;
139    Int_t    igroun;
140 } stackCommon;
141 #define STACK COMMON_BLOCK(STACK,stack)
142 COMMON_BLOCK_DEF(stackCommon,STACK);
143 }
144
145 #endif