Update to FLUKA 2006.3b.
[u/mrichter/AliRoot.git] / TFluka / Fdpdxcm.h
CommitLineData
f5957fe9 1#include "cfortran.h"
2#include "Rtypes.h"
3
4#include "Fdimpar.h"
5
6extern "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)
160COMMON_BLOCK_DEF(dpdxcmCommon, DPDXCM);
161}