]>
Commit | Line | Data |
---|---|---|
f5957fe9 | 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 | } |