1 |
* |
2 |
* $Id: dblprc.inc,v 1.1.1.1 1995/10/24 10:20:38 cernlib Exp $ |
3 |
* |
4 |
* $Log: dblprc.inc,v $ |
5 |
* Revision 1.1.1.1 1995/10/24 10:20:38 cernlib |
6 |
* Geant |
7 |
* |
8 |
* |
9 |
#ifndef CERNLIB_GEANT321_DBLPRC_INC |
10 |
#define CERNLIB_GEANT321_DBLPRC_INC |
11 |
* |
12 |
* |
13 |
* dblprc.inc |
14 |
* |
15 |
#if !defined(GPAMELA_SINGLE) |
16 |
* * |
17 |
*=== dblprc ==========================================================* |
18 |
* * |
19 |
*---------------------------------------------------------------------* |
20 |
* * |
21 |
* Dblprc: included in any routine * |
22 |
* * |
23 |
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * |
24 |
* !!!! O N M A C H I N E S W H E R E T H E D O U B L E !!!! * |
25 |
* !!!! P R E C I S I O N I S N O T R E Q U I R E D R E -!!!! * |
26 |
* !!!! M O V E T H E D O U B L E P R E C I S I O N !!!! * |
27 |
* !!!! S T A T E M E N T, S E T K A L G N M = 1 A N D !!!! * |
28 |
* !!!! C H A N G E A L L N U M E R I C A L C O N S - !!!! * |
29 |
* !!!! T A N T S T O S I N G L E P R E C I S I O N !!!! * |
30 |
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * |
31 |
* * |
32 |
* Kalgnm = real address alignment, 2 for double precision, * |
33 |
* 1 for single precision * |
34 |
* Anglgb = this parameter should be set equal to the machine * |
35 |
* "zero" with respect to unit * |
36 |
* Anglsq = this parameter should be set equal to the square * |
37 |
* of Anglgb * |
38 |
* Axcssv = this parameter should be set equal to the number * |
39 |
* for which unity is negligible for the machine * |
40 |
* accuracy * |
41 |
* Andrfl = "underflow" of the machine for floating point * |
42 |
* operation * |
43 |
* Avrflw = "overflow" of the machine for floating point * |
44 |
* operation * |
45 |
* Ainfnt = code "infinite" * |
46 |
* Azrzrz = code "zero" * |
47 |
* Einfnt = natural logarithm of the code "infinite" * |
48 |
* Ezrzrz = natural logarithm of the code "zero" * |
49 |
* Onemns = 1- of the machine, it is 1 - 2 x Anglgb * |
50 |
* Onepls = 1+ of the machine, it is 1 + 2 x Anglgb * |
51 |
* Csnnrm = maximum tolerable error on cosine normalization, * |
52 |
* u**2+v**2+w**2: assuming a typical anglgb relative * |
53 |
* error on each component we would get 2xanglgb: use * |
54 |
* 4xanglgb to avoid too many normalizations * |
55 |
* Dmxtrn = "infinite" distance for transport (cm) * |
56 |
* * |
57 |
*---------------------------------------------------------------------* |
58 |
* * |
59 |
IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
60 |
PARAMETER ( KALGNM = 2 ) |
61 |
PARAMETER ( ANGLGB = 5.0D-16 ) |
62 |
PARAMETER ( ANGLSQ = 2.5D-31 ) |
63 |
PARAMETER ( AXCSSV = 0.2D+16 ) |
64 |
PARAMETER ( ANDRFL = 1.0D-38 ) |
65 |
PARAMETER ( AVRFLW = 1.0D+38 ) |
66 |
PARAMETER ( AINFNT = 1.0D+30 ) |
67 |
PARAMETER ( AZRZRZ = 1.0D-30 ) |
68 |
PARAMETER ( EINFNT = +69.07755278982137 D+00 ) |
69 |
PARAMETER ( EZRZRZ = -69.07755278982137 D+00 ) |
70 |
PARAMETER ( ONEMNS = 0.999999999999999 D+00 ) |
71 |
PARAMETER ( ONEPLS = 1.000000000000001 D+00 ) |
72 |
PARAMETER ( CSNNRM = 2.0D-15 ) |
73 |
PARAMETER ( DMXTRN = 1.0D+08 ) |
74 |
* |
75 |
*======================================================================* |
76 |
*======================================================================* |
77 |
*========= ==========* |
78 |
*========= M A T H E M A T I C A L C O N S T A N T S ==========* |
79 |
*========= ==========* |
80 |
*======================================================================* |
81 |
*======================================================================* |
82 |
* * |
83 |
* Numerical constants: * |
84 |
* * |
85 |
* Zerzer = 0 * |
86 |
* Oneone = 1 * |
87 |
* Twotwo = 2 * |
88 |
* Thrthr = 3 * |
89 |
* Foufou = 4 * |
90 |
* Fivfiv = 5 * |
91 |
* Sixsix = 6 * |
92 |
* Sevsev = 7 * |
93 |
* Eigeig = 8 * |
94 |
* Aninen = 9 * |
95 |
* Tenten = 10 * |
96 |
* Hlfhlf = 1/2 * |
97 |
* Onethi = 1/3 * |
98 |
* Twothi = 2/3 * |
99 |
* Pipipi = Circumference / diameter * |
100 |
* Eneper = "e", base of natural logarithm * |
101 |
* Sqrent = square root of "e" * |
102 |
* * |
103 |
*----------------------------------------------------------------------* |
104 |
* |
105 |
PARAMETER ( ZERZER = 0.D+00 ) |
106 |
PARAMETER ( ONEONE = 1.D+00 ) |
107 |
PARAMETER ( TWOTWO = 2.D+00 ) |
108 |
PARAMETER ( THRTHR = 3.D+00 ) |
109 |
PARAMETER ( FOUFOU = 4.D+00 ) |
110 |
PARAMETER ( FIVFIV = 5.D+00 ) |
111 |
PARAMETER ( SIXSIX = 6.D+00 ) |
112 |
PARAMETER ( SEVSEV = 7.D+00 ) |
113 |
PARAMETER ( EIGEIG = 8.D+00 ) |
114 |
PARAMETER ( ANINEN = 9.D+00 ) |
115 |
PARAMETER ( TENTEN = 10.D+00 ) |
116 |
PARAMETER ( HLFHLF = 0.5D+00 ) |
117 |
PARAMETER ( ONETHI = ONEONE / THRTHR ) |
118 |
PARAMETER ( TWOTHI = TWOTWO / THRTHR ) |
119 |
PARAMETER ( PIPIPI = 3.1415926535897932270 D+00 ) |
120 |
PARAMETER ( ENEPER = 2.7182818284590452354 D+00 ) |
121 |
PARAMETER ( SQRENT = 1.6487212707001281468 D+00 ) |
122 |
* |
123 |
*======================================================================* |
124 |
*======================================================================* |
125 |
*========= ==========* |
126 |
*========= P H Y S I C A L C O N S T A N T S ==========* |
127 |
*========= ==========* |
128 |
*======================================================================* |
129 |
*======================================================================* |
130 |
* * |
131 |
* Primary constants: * |
132 |
* * |
133 |
* Clight = speed of light in cm s-1 * |
134 |
* Avogad = Avogadro number * |
135 |
* Amelgr = electron mass (g) * |
136 |
* Plckbr = reduced Planck constant (erg s) * |
137 |
* Elccgs = elementary charge (CGS unit) * |
138 |
* Elcmks = elementary charge (MKS unit) * |
139 |
* Amugrm = Atomic mass unit (g) * |
140 |
* Ammumu = Muon mass (amu) * |
141 |
* * |
142 |
* Derived constants: * |
143 |
* * |
144 |
* Alpfsc = Fine structure constant = e^2/(hbar c) * |
145 |
* Amelct = Electron mass (GeV) = 10^-16Amelgr Clight^2 / Elcmks* |
146 |
* Amugev = Atomic mass unit (GeV) = 10^-16Amelgr Clight^2 * |
147 |
* / Elcmks * |
148 |
* Ammuon = Muon mass (GeV) = Ammumu * Amugev * |
149 |
* Fscto2 = (Fine structure constant)^2 * |
150 |
* Fscto3 = (Fine structure constant)^3 * |
151 |
* Fscto4 = (Fine structure constant)^4 * |
152 |
* Plabrc = Reduced Planck constant times the light velocity * |
153 |
* expressed in GeV fm * |
154 |
* Rclsel = Classical electron radius (cm) = e^2 / (m_e c^2) * |
155 |
* Conversion constants: * |
156 |
* GeVMeV = from GeV to MeV * |
157 |
* eMVGeV = from MeV to GeV * |
158 |
* Raddeg = from radians to degrees * |
159 |
* Degrad = from degrees to radians * |
160 |
* * |
161 |
*----------------------------------------------------------------------* |
162 |
* |
163 |
PARAMETER ( CLIGHT = 2.99792458 D+10 ) |
164 |
PARAMETER ( AVOGAD = 6.0221367 D+23 ) |
165 |
PARAMETER ( AMELGR = 9.1093897 D-28 ) |
166 |
PARAMETER ( PLCKBR = 1.05457266 D-27 ) |
167 |
PARAMETER ( ELCCGS = 4.8032068 D-10 ) |
168 |
PARAMETER ( ELCMKS = 1.60217733 D-19 ) |
169 |
PARAMETER ( AMUGRM = 1.6605402 D-24 ) |
170 |
PARAMETER ( AMMUMU = 0.113428913 D+00 ) |
171 |
* PARAMETER ( ALPFSC = 1.D+00 / 137.035989561D+00 ) |
172 |
* PARAMETER ( FSCTO2 = ALPFSC * ALPFSC ) |
173 |
* PARAMETER ( FSCTO3 = FSCTO2 * ALPFSC ) |
174 |
* PARAMETER ( FSCTO4 = FSCTO3 * ALPFSC ) |
175 |
* It is important to set the electron mass exactly with the same |
176 |
* rounding as in the mass tables, so use the explicit expression |
177 |
* PARAMETER ( AMELCT = 1.D-16 * AMELGR * CLIGHT * CLIGHT / ELCMKS ) |
178 |
* It is important to set the amu mass exactly with the same |
179 |
* rounding as in the mass tables, so use the explicit expression |
180 |
* PARAMETER ( AMUGEV = 1.D-16 * AMUGRM * CLIGHT * CLIGHT / ELCMKS ) |
181 |
* It is important to set the muon mass exactly with the same |
182 |
* rounding as in the mass tables, so use the explicit expression |
183 |
* PARAMETER ( AMMUON = AMMUMU * AMUGEV ELCMKS ) |
184 |
* PARAMETER ( RCLSEL = ELCCGS * ELCCGS / CLIGHT / CLIGHT / AMELGR ) |
185 |
PARAMETER ( ALPFSC = 7.2973530791728595 D-03 ) |
186 |
PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 ) |
187 |
PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 ) |
188 |
PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 ) |
189 |
PARAMETER ( PLABRC = 0.197327053 D+00 ) |
190 |
PARAMETER ( AMELCT = 0.51099906 D-03 ) |
191 |
PARAMETER ( AMUGEV = 0.93149432 D+00 ) |
192 |
PARAMETER ( AMMUON = 0.105658389 D+00 ) |
193 |
PARAMETER ( RCLSEL = 2.8179409183694872 D-13 ) |
194 |
PARAMETER ( GEVMEV = 1.0 D+03 ) |
195 |
PARAMETER ( EMVGEV = 1.0 D-03 ) |
196 |
PARAMETER ( RADDEG = 180.D+00 / PIPIPI ) |
197 |
PARAMETER ( DEGRAD = PIPIPI / 180.D+00 ) |
198 |
|
199 |
#endif |
200 |
#if defined(GPAMELA_SINGLE) |
201 |
IMPLICIT REAL (A-H,O-Z) |
202 |
PARAMETER ( KALGNM = 1 ) |
203 |
PARAMETER ( ANGLGB = 5.0e-16 ) |
204 |
PARAMETER ( ANGLSQ = 2.5e-31 ) |
205 |
PARAMETER ( AXCSSV = 0.2e+16 ) |
206 |
PARAMETER ( ANDRFL = 1.0e-38 ) |
207 |
PARAMETER ( AVRFLW = 1.0e+38 ) |
208 |
PARAMETER ( AINFNT = 1.0e+30 ) |
209 |
PARAMETER ( AZRZRZ = 1.0e-30 ) |
210 |
PARAMETER ( EINFNT = +69.07755278982137 e+00 ) |
211 |
PARAMETER ( EZRZRZ = -69.07755278982137 e+00 ) |
212 |
PARAMETER ( ONEMNS = 0.999999999999999 e+00 ) |
213 |
PARAMETER ( ONEPLS = 1.000000000000001 e+00 ) |
214 |
PARAMETER ( CSNNRM = 2.0e-15 ) |
215 |
PARAMETER ( DMXTRN = 1.0e+08 ) |
216 |
* |
217 |
PARAMETER ( ZERZER = 0.e+00 ) |
218 |
PARAMETER ( ONEONE = 1.e+00 ) |
219 |
PARAMETER ( TWOTWO = 2.e+00 ) |
220 |
PARAMETER ( THRTHR = 3.e+00 ) |
221 |
PARAMETER ( FOUFOU = 4.e+00 ) |
222 |
PARAMETER ( FIVFIV = 5.e+00 ) |
223 |
PARAMETER ( SIXSIX = 6.e+00 ) |
224 |
PARAMETER ( SEVSEV = 7.e+00 ) |
225 |
PARAMETER ( EIGEIG = 8.e+00 ) |
226 |
PARAMETER ( ANINEN = 9.e+00 ) |
227 |
PARAMETER ( TENTEN = 10.e+00 ) |
228 |
PARAMETER ( HLFHLF = 0.5e+00 ) |
229 |
PARAMETER ( ONETHI = ONEONE / THRTHR ) |
230 |
PARAMETER ( TWOTHI = TWOTWO / THRTHR ) |
231 |
PARAMETER ( PIPIPI = 3.1415926535897932270 e+00 ) |
232 |
PARAMETER ( ENEPER = 2.7182818284590452354 e+00 ) |
233 |
PARAMETER ( SQRENT = 1.6487212707001281468 e+00 ) |
234 |
* |
235 |
PARAMETER ( CLIGHT = 2.99792458 e+10 ) |
236 |
PARAMETER ( AVOGAD = 6.0221367 e+23 ) |
237 |
PARAMETER ( AMELGR = 9.1093897 e-28 ) |
238 |
PARAMETER ( PLCKBR = 1.05457266 e-27 ) |
239 |
PARAMETER ( ELCCGS = 4.8032068 e-10 ) |
240 |
PARAMETER ( ELCMKS = 1.60217733 e-19 ) |
241 |
PARAMETER ( AMUGRM = 1.6605402 e-24 ) |
242 |
PARAMETER ( AMMUMU = 0.113428913 e+00 ) |
243 |
* PARAMETER ( ALPFSC = 1.e+00 / 137.035989561e+00 ) |
244 |
* PARAMETER ( FSCTO2 = ALPFSC * ALPFSC ) |
245 |
* PARAMETER ( FSCTO3 = FSCTO2 * ALPFSC ) |
246 |
* PARAMETER ( FSCTO4 = FSCTO3 * ALPFSC ) |
247 |
* It is important to set the electron mass exactly with the same |
248 |
* rounding as in the mass tables, so use the explicit expression |
249 |
* PARAMETER ( AMELCT = 1.e-16 * AMELGR * CLIGHT * CLIGHT / ELCMKS ) |
250 |
* It is important to set the amu mass exactly with the same |
251 |
* rounding as in the mass tables, so use the explicit expression |
252 |
* PARAMETER ( AMUGEV = 1.e-16 * AMUGRM * CLIGHT * CLIGHT / ELCMKS ) |
253 |
* It is important to set the muon mass exactly with the same |
254 |
* rounding as in the mass tables, so use the explicit expression |
255 |
* PARAMETER ( AMMUON = AMMUMU * AMUGEV ELCMKS ) |
256 |
* PARAMETER ( RCLSEL = ELCCGS * ELCCGS / CLIGHT / CLIGHT / AMELGR ) |
257 |
PARAMETER ( ALPFSC = 7.2973530791728595 e-03 ) |
258 |
PARAMETER ( FSCTO2 = 5.3251361962113614 e-05 ) |
259 |
PARAMETER ( FSCTO3 = 3.8859399018437826 e-07 ) |
260 |
PARAMETER ( FSCTO4 = 2.8357075508200407 e-09 ) |
261 |
PARAMETER ( PLABRC = 0.197327053 e+00 ) |
262 |
PARAMETER ( AMELCT = 0.51099906 e-03 ) |
263 |
PARAMETER ( AMUGEV = 0.93149432 e+00 ) |
264 |
PARAMETER ( AMMUON = 0.105658389 e+00 ) |
265 |
PARAMETER ( RCLSEL = 2.8179409183694872 e-13 ) |
266 |
PARAMETER ( GEVMEV = 1.0 e+03 ) |
267 |
PARAMETER ( EMVGEV = 1.0 e-03 ) |
268 |
PARAMETER ( RADDEG = 180.e+00 / PIPIPI ) |
269 |
PARAMETER ( DEGRAD = PIPIPI / 180.e+00 ) |
270 |
|
271 |
#endif |
272 |
|
273 |
#endif |