]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TFluka/Fdpdxcm.h
- Improved support for heavy fragment transport
[u/mrichter/AliRoot.git] / TFluka / Fdpdxcm.h
1 #include "cfortran.h"
2 #include "Rtypes.h"
3
4 #include "Fdimpar.h"
5
6 extern "C" {
7 /*$ CREATE DPDXCM.ADD
8 *COPY DPDXCM
9 *
10 *=== dpdxcm ===========================================================*
11 *
12 *----------------------------------------------------------------------*
13 *                                                                      *
14 *     Copyright (C) 1989-2006         by        Alfredo Ferrari        *
15 *     All Rights Reserved.                                             *
16 *                                                                      *
17 *                                                                      *
18 *     Include file: dpdxcm  (DP/DX CoMmon)                             *
19 *                                                                      *
20 *     Created  on  10 february 1991   by        Alfredo Ferrari        *
21 *                                                INFN - Milan          *
22 *                                                                      *
23 *     Last change on  21-may-06       by        Alfredo Ferrari        *
24 *                                                                      *
25 *     Included in the following routines:                              *
26 *                                                                      *
27 *              blockmvax/bdtrns.f                                      *
28 *              dedxmvax/dedsdv.f                                       *
29 *              dedxmvax/dedx.f                                         *
30 *              dedxmvax/dedxfl.f                                       *
31 *              dedxmvax/deltad.f                                       *
32 *              dedxmvax/deltar.f                                       *
33 *              dedxmvax/deltas.f                                       *
34 *              dedxmvax/delthr.f                                       *
35 *              dedxmvax/delths.f                                       *
36 *              dedxmvax/dpdx.f                                         *
37 *              dedxmvax/dpdxio.f                                       *
38 *              dedxmvax/enion.f                                        *
39 *              dedxmvax/enionf.f                                       *
40 *              dedxmvax/gdedxc.f                                       *
41 *              dedxmvax/heabre.f                                       *
42 *              dedxmvax/hosufl.f                                       *
43 *              dedxmvax/hvbrem.f                                       *
44 *              dedxmvax/hvpair.f                                       *
45 *              dedxmvax/t0zffc.f                                       *
46 *              elsmvax/sigtab.f                                        *
47 *              emfmvax/ededxf.f                                        *
48 *              emfmvax/emfin.f                                         *
49 *              emfmvax/emfret.f                                        *
50 *              emfmvax/emfsco.f                                        *
51 *              emfmvax/emfstp.f                                        *
52 *              emfmvax/pdedxf.f                                        *
53 *              kaskadmvax/hmsnsc.f                                     *
54 *              kaskadmvax/kashea.f                                     *
55 *              kaskadmvax/kaskad.f                                     *
56 *              kaskadmvax/mulhad.f                                     *
57 *              kaskadmvax/omegah.f                                     *
58 *              kaskadmvax/sgttot.f                                     *
59 *              kaskadmvax/stepop.f                                     *
60 *              mainmvax/deflts.f                                       *
61 *              mainmvax/dltcrd.f                                       *
62 *              mainmvax/matcrd.f                                       *
63 *              mainmvax/zeroin.f                                       *
64 *                                                                      *
65 *           Avionp (m) = average ionization potential (eV) of medium m *
66 *           Ccster (m) = Sternheimer cbar   parameter for medium m     *
67 *           X0ster (m) = Sternheimer x0     parameter for medium m     *
68 *           Xester (m) = Sternheimer x1     parameter for medium m     *
69 *           Amster (m) = Sternheimer m      parameter for medium m     *
70 *           Aaster (m) = Sternheimer a      parameter for medium m     *
71 *           D0ster (m) = Sternheimer delta0 parameter for medium m     *
72 *           Aviont (m) = auxiliary ionization potential of medium m    *
73 *           T0dpdx (m) = delta ray production threshold of medium m    *
74 *                        (all particle but e+/e-)                      *
75 *           Tedpdx (m) = delta ray production threshold of medium m    *
76 *                        (electrons and positrons)                     *
77 *           Gaspfl (m) = pressure (atm) if a gas                       *
78 *           Pthrmx     = maximum momentum of the tabulations           *
79 *           Anpicm (m) = average number of primary ionization per cm   *
80 *                        for a mip for medium m (at NTP for a gas)     *
81 *           Frstip (m) = first ionization potential for medium m (GeV) *
82 *           Faltmt (m) = density modifying factor for a possible alt-  *
83 *                        ernate material for medium m                  *
84 *           Maltmt (m) = alternate material for medium m               *
85 *           Msdpdx (m) = possible "special material" flag for medium m *
86 *                        0: no special treatment                       *
87 *                        1: implicit delta production down to Avionr   *
88 *                           inside ..dedxf.. routines with recording   *
89 *                           of the selected values activated           *
90 *----------------------------------------------------------------------*
91 *
92       PARAMETER ( MNDPDX = 50 )
93       PARAMETER ( RMDPDX = 1.15D+00 )
94       PARAMETER ( DPDXR1 = 0.15D+00 )
95       PARAMETER ( DPDXR2 = 0.70D+00 )
96       PARAMETER ( ERDEDX = 0.15D+00 * 0.15D+00 )
97       PARAMETER ( MDPDXH =  4 )
98 *  Toln10 = 2 x log (10)
99       PARAMETER ( TOLN10 = 4.605170185988091 D+00 )
100 *
101       LOGICAL LDELTA, LPDETB, LETFUN
102       COMMON / DPDXCM / P0DPDX (MPDPDX,MXXMDF), P1DPDX (MPDPDX,MXXMDF),
103      &                  TMDPDX (MXXMDF), T0DPDX (MXXMDF),
104      &                  TEDPDX (MXXMDF), D0DPDX (MXXMDF),
105      &                  AVIONP (MXXMDF), RHORFL (MXXMDF),
106      &                  GASPFL (MXXMDF), CCSTER (MXXMDF),
107      &                  AMSTER (MXXMDF), XOSTER (MXXMDF),
108      &                  XESTER (MXXMDF), AASTER (MXXMDF),
109      &                  D0STER (MXXMDF), AVIONT (MXXMDF),
110      &                  ETDPDX (MXXMDF), ALMASS (MPDPDX), PTHRMX,
111      &                  FRSTIP (MXXMDF), ANPICM (MXXMDF),
112      &                  FALTMT (MXXMDF), MALTMT (MXXMDF),
113      &                  MSDPDX (MXXMDF), NBDPDX (MXXMDF),
114      &                  KDPDXT (MPDPDX,MXXMDF),
115      &                  LDELTA (MXXMDF), LPDETB (MXXMDF),
116      &                  IJDPDX (-6:NALLWP), LETFUN
117       SAVE / DPDXCM /
118 */
119
120     const Int_t     mndpdx = 50;
121     const Double_t  rmdpdx = 1.15e0;
122     const Double_t  dpdxr1 = 0.15e0;
123     const Double_t  dpdxr2 = 0.70e0;
124     const Double_t  erdedx = 0.15e0 * 0.15e0;
125     const Int_t     mdpdxh = 4;
126
127     typedef struct {
128         Double_t p0dpdx [mxxmdf][mpdpdx];
129         Double_t p1dpdx [mxxmdf][mpdpdx];
130         Double_t tmdpdx [mxxmdf];
131         Double_t t0dpdx [mxxmdf];
132         Double_t tedpdx [mxxmdf];
133         Double_t d0dpdx [mxxmdf];
134         Double_t avionp [mxxmdf];
135         Double_t rhorfl [mxxmdf];
136         Double_t gaspfl [mxxmdf];
137         Double_t ccster [mxxmdf];
138         Double_t amster [mxxmdf];
139         Double_t xoster [mxxmdf];
140         Double_t xester [mxxmdf];
141         Double_t aaster [mxxmdf];
142         Double_t d0ster [mxxmdf];
143         Double_t aviont [mxxmdf];
144         Double_t etdpdx [mxxmdf];
145         Double_t almass [mpdpdx];
146         Double_t pthrmx;
147         Double_t frstip [mxxmdf];
148         Double_t anpicm [mxxmdf];
149         Double_t faltmt [mxxmdf];
150         Int_t    maltmt [mxxmdf];
151         Int_t    msdpdx [mxxmdf];
152         Int_t    nbdpdx [mxxmdf];
153         Int_t    kdpdxt [mxxmdf][mpdpdx];
154         Int_t    ldelta [mxxmdf];
155         Int_t    lpdetb [mxxmdf];
156         Int_t    ijdpdx [nallwp + 7];
157         Int_t    letfun;
158     } dpdxcmCommon;
159 #define DPDXCM COMMON_BLOCK(DPDXCM,dpdxcm)
160 COMMON_BLOCK_DEF(dpdxcmCommon, DPDXCM);
161 }