Updates needed for geant4.6 and fluka2004.
[u/mrichter/AliRoot.git] / TFluka / Fpaprop.h
1 #ifndef FPAPROP_H
2 #define FPAPROP_H 1
3
4 #include "Rtypes.h"
5 #include "cfortran.h"
6
7 #include "Fdimpar.h"
8
9 extern "C" {
10 //*$ create paprop.add
11 //*copy paprop
12 //*
13 //*=== paprop ===========================================================*
14 //*
15 //*----------------------------------------------------------------------*
16 //*                                                                      *
17 //*     include file: paprop copy                                        *
18 //*                                                                      *
19 //*     !!!!    n e w   v e r s i o n   !!!!                             *
20 //*                                                                      *
21 //*     created on    07 may 1991    by    alfredo ferrari & paola sala  *
22 //*                                                   infn - milan       *
23 //*                                                                      *
24 //*     last change on 03-jul-97     by    alfredo ferrari               *
25 //*                                                                      *
26 //*     included in the following subroutines or functions: not updated  *
27 //*                                                                      *
28 //*     description of the common block(s) and variable(s)               *
29 //*                                                                      *
30 //*     /paprop/ contains particle properties                            *
31 //*        btype  = literal name of the particle                         *
32 //*        am     = particle mass in gev                                 *
33 //*        ichrge = electric charge of the particle                      *
34 //*        ibarch = baryonic charge of the particle                      *
35 //*        iscore = explanations for the scored distribution             *
36 //*        genpar = names of the generalized particles                   *
37 //*        ijdisc = list of the particle types to be discarded           *
38 //*        thalf  = half life of the particle in sec                     *
39 //*        biasdc = decay biasing factors                                *
40 //*        biasin = inelastic interaction biasing factors                *
41 //*        lhadro = flag for hadrons                                     *
42 //*        jspinp = particle spin (in units of 1/2)                      *
43 //*        iparty = particle parity (when defined)                       *
44 //*        iparid = flag used to identify particle types                 *
45 //*        lbsdcy = logical flag for biased decay: if .true. the biasing *
46 //*                 factor is used as an upper limit to the decay length *
47 //*        lprbsd = logical flag for biased decay: if .true. the biasing *
48 //*                 factor is applied only to primaries                  *
49 //*        lprbsi = logical flag for inelastic interaction biasing: if   *
50 //*                 .true. the biasing factor is applied only to prima-  *
51 //*                 ries                                                 *
52 //*        lsclwf = logical flag for low energy neutron fission scoring  *
53 //*        lscnbl = logical flag for neutron balance scoring             *
54 //*                                                                      *
55 //*----------------------------------------------------------------------*
56 //*
57
58 const Int_t mxgnpr =  33;
59 typedef struct {
60    Double_t am[nallwp+7];         //(-6:NALLWP)
61    Double_t amdisc[nallwp+7];     //(-6:NALLWP)
62    Double_t thalf[nallwp+7];      //(-6:NALLWP)
63    Double_t biasdc[nallwp+7];     //(-6:NALLWP)
64    Double_t biasin[nallwp+7];     //(-6:NALLWP)
65    Int_t    ichrge[nallwp+7];     //(-6:NALLWP)
66    Int_t    ibarch[nallwp+7];     //(-6:NALLWP)
67    Int_t    ijdisc[nallwp+7];     //(-6:NALLWP)
68    Int_t    jspinp[nallwp+7];     //(-6:NALLWP)
69    Int_t    iparty[nallwp+7];     //(-6:NALLWP)
70    Int_t    iparid[nallwp+7];     //(-6:NALLWP)
71    Int_t    lhadro[nallwp+7];     //(-6:NALLWP)
72    Int_t    lbsdcy[nallwp+7];     //(-6:NALLWP)
73    Int_t    iscore[10];
74    Int_t    lprbsd;
75    Int_t    lprbsi;
76    Int_t    lsclwf;
77    Int_t    lscnbl;
78 } papropCommon;
79 #define PAPROP COMMON_BLOCK(PAPROP,paprop)
80 COMMON_BLOCK_DEF(papropCommon,PAPROP);
81
82 typedef struct {
83    Char_t   btype[nallwp+7][8];     //(-6:NALLWP)
84    Char_t   genpar[mxgnpr][8];          //(30)
85 } chpprpCommon;
86 #define CHPPRP COMMON_BLOCK(CHPPRP,chpprp)
87 COMMON_BLOCK_DEF(chpprpCommon,CHPPRP);
88 }
89
90 //Get functions
91 //inline Double_t GetFlukaAM(unsigned int i) {return PAPROP.am[i+6];}
92 //inline Double_t GetFlukaAMDISC(unsigned int i) {return PAPROP.amdisc[i+6];}
93 //inline Double_t GetFlukaTHALH(unsigned int i) {return PAPROP.thalf[i+6];}
94 //inline Double_t GetFlukaBIASDC(unsigned int i) {return PAPROP.biasdc[i+6];}
95 //inline Double_t GetFlukaBIASIN(unsigned int i) {return PAPROP.biasin[i+6];}
96 //inline Int_t    GetFlukaICHRGE(unsigned int i) {return PAPROP.ichrge[i+6];}
97 //inline Int_t    GetFlukaIBARCH(unsigned int i) {return PAPROP.ibarch[i+6];}
98 //inline Int_t    GetFlukaIJDISC(unsigned int i) {return PAPROP.ijdisc[i+6];}
99 //inline Int_t    GetFlukaJSPINP(unsigned int i) {return PAPROP.jspinp[i+6];}
100 //inline Int_t    GetFlukaIPARTY(unsigned int i) {return PAPROP.iparty[i+6];}
101 //inline Int_t    GetFlukaIPARID(unsigned int i) {return PAPROP.iparid[i+6];}
102 //inline Int_t    GetFlukaLHADRO(unsigned int i) {return PAPROP.lhadro[i+6];}
103 //inline Int_t    GetFlukaLBSDCY(unsigned int i) {return PAPROP.lbsdcy[i+6];}
104 #endif