Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4HadronCrossSections.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// G4 Hadron Physics class G4HadronCrossSections
27// F.W. Jones, TRIUMF, 03-DEC-96
28//
29// This class encapsulates cross section data and calculations
30// from the Geant3/Gheisha routine GHESIG.
31// The overloaded method MakePhysicsVector can be used to Generate
32// Physics Tables for different processes.
33//
34// Note: this is implemented as a SINGLETON class
35//
36
38#include "G4ios.hh"
39#include "G4SystemOfUnits.hh"
40#include "G4Pow.hh"
41#include "G4Threading.hh"
42
43// Initialize static pointer for singleton instance
44G4ThreadLocal G4HadronCrossSections* G4HadronCrossSections::instance = nullptr;
45
46// Cross section tables from G3.21/GHEISHA routine GHESIG
47
48//---------------------------------------------------------------------
49// Lab Momentum in GeV/c
50//---------------------------------------------------------------------
51const G4float G4HadronCrossSections::plab[TSIZE] = {
52 0.00000f , 0.10000f , 0.15000f , 0.20000f , 0.25000f ,
53 0.30000f , 0.35000f , 0.40000f , 0.45000f , 0.50000f ,
54 0.55000f , 0.60000f , 0.65000f , 0.70000f , 0.75000f ,
55 0.80000f , 0.85000f , 0.90000f , 0.95000f , 1.0000f ,
56 1.1000f , 1.2000f , 1.3000f , 1.4000f , 1.5000f ,
57 1.6000f , 1.8000f , 2.0000f , 2.2000f , 2.4000f ,
58 2.6000f , 2.8000f , 3.0000f , 4.0000f , 5.0000f ,
59 6.0000f , 8.0000f , 10.000f , 20.000f , 100.00f ,
60 1000.0f
61};
62
63//---------------------------------------------------------------------
64// Elastic scattering on free protons
65//---------------------------------------------------------------------
66
67const G4float G4HadronCrossSections::csel[NPARTS][TSIZE] = {
68 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //1
69 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
70 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
71 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
72 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
73 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
74 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
75 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
76 0.00000f },
77
78 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //2
79 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
80 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
81 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
82 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
83 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
84 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
85 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
86 0.00000f },
87
88 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //3
89 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
90 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
91 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
92 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
93 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
94 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
95 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
96 0.00000f },
97
98 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //4
99 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
100 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
101 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
102 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
103 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
104 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
105 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
106 0.00000f },
107
108 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //5
109 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
110 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
111 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
112 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
113 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
114 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
115 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
116 0.00000f },
117
118 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //6
119 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
120 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
121 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
122 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
123 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
124 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
125 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
126 0.00000f },
127
128// Elastic cross section for piplus - p
129 {0.00000f , 6.0000f , 20.000f , 71.000f , 155.00f , //7
130 195.00f , 130.00f , 78.000f , 60.000f , 32.000f ,
131 23.500f , 18.500f , 15.000f , 12.500f , 10.000f ,
132 9.1000f , 8.6000f , 8.8000f , 9.5000f , 10.600f ,
133 13.000f , 15.500f , 17.100f , 17.200f , 16.200f ,
134 15.000f , 12.300f , 10.200f , 9.0000f , 8.0000f ,
135 7.3000f , 6.8000f , 6.5000f , 5.8000f , 5.4000f ,
136 5.2000f , 5.0000f , 4.9000f , 3.8000f , 3.2000f ,
137 3.5000f},
138
139 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //8
140 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
141 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
142 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
143 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
144 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
145 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
146 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
147 0.00000f },
148
149// Elastic cross section for piminus - p
150 {0.00000f , 1.0000f , 3.0000f , 8.0000f , 18.000f , //9
151 25.000f , 27.500f , 12.300f , 10.600f , 11.000f ,
152 12.500f , 14.500f , 17.000f , 19.400f , 19.800f ,
153 16.800f , 14.000f , 14.800f , 20.000f , 26.100f ,
154 19.500f , 15.000f , 12.800f , 11.500f , 10.500f ,
155 9.8000f , 8.8000f , 8.2000f , 7.8000f , 7.5000f ,
156 7.2000f , 7.0000f , 6.8000f , 6.1000f , 5.7000f ,
157 5.4000f , 4.9000f , 4.6000f , 4.0000f , 3.3000f ,
158 3.5000f},
159
160 {10.000f , 11.200f , 11.300f , 11.400f , 11.500f , //10
161 11.600f , 11.800f , 12.000f , 12.100f , 12.200f ,
162 12.300f , 12.400f , 12.500f , 12.500f , 12.500f ,
163 12.400f , 12.300f , 12.200f , 12.000f , 11.800f ,
164 11.200f , 11.500f , 9.9000f , 9.4000f , 8.8000f ,
165 8.4000f , 7.5000f , 6.9000f , 6.3000f , 5.9000f ,
166 5.5000f , 5.2000f , 5.0000f , 4.0000f , 3.5000f ,
167 3.3000f , 3.1000f , 3.1000f , 3.0000f , 2.5000f ,
168 3.0000f},
169
170 {10.000f , 11.200f , 11.300f , 11.400f , 11.500f , //11
171 11.600f , 11.800f , 12.000f , 12.100f , 12.200f ,
172 12.300f , 12.400f , 12.500f , 12.500f , 12.500f ,
173 12.400f , 12.300f , 12.200f , 12.000f , 11.800f ,
174 11.200f , 11.500f , 9.9000f , 9.4000f , 8.8000f ,
175 8.4000f , 7.5000f , 6.9000f , 6.3000f , 5.9000f ,
176 5.5000f , 5.2000f , 5.0000f , 4.0000f , 3.5000f ,
177 3.3000f , 3.1000f , 3.1000f , 3.0000f , 2.5000f ,
178 3.0000f},
179
180 {160.83f , 82.800f , 58.575f , 43.683f , 34.792f , //12
181 28.650f , 24.367f , 20.917f , 18.192f , 16.300f ,
182 14.608f , 13.017f , 12.250f , 11.700f , 12.017f ,
183 14.075f , 15.842f , 16.433f , 16.042f , 15.008f ,
184 12.575f , 10.708f , 9.2000f , 8.0167f , 7.2833f ,
185 7.0750f , 6.6333f , 6.1250f , 5.6583f , 5.2750f ,
186 4.9333f , 4.6250f , 4.4583f , 3.7333f , 3.3833f ,
187 3.1833f , 2.9833f , 2.7500f , 2.3667f , 2.2000f ,
188 2.6000f},
189
190 {300.00f , 140.00f , 97.000f , 70.000f , 55.000f , //13
191 45.000f , 37.000f , 31.000f , 26.000f , 23.000f ,
192 20.000f , 17.000f , 15.500f , 14.500f , 14.700f ,
193 18.500f , 22.000f , 23.000f , 22.500f , 20.700f ,
194 16.500f , 14.000f , 11.500f , 9.6000f , 8.6000f ,
195 8.5000f , 8.3000f , 7.6000f , 7.0000f , 6.4000f ,
196 5.9000f , 5.5000f , 5.3000f , 4.4000f , 4.1000f ,
197 3.9000f , 3.7000f , 3.3000f , 2.6000f , 2.5000f ,
198 3.0000f},
199
200// Elastic cross section for p-p
201 {1100.0f , 115.00f , 105.00f , 100.00f , 56.000f , //14
202 40.000f , 27.000f , 22.000f , 21.000f , 20.000f ,
203 20.000f , 20.000f , 20.500f , 21.000f , 22.000f ,
204 23.000f , 24.000f , 24.000f , 24.400f , 24.500f ,
205 25.000f , 25.500f , 26.000f , 26.500f , 27.000f ,
206 27.000f , 26.000f , 23.000f , 21.500f , 20.000f ,
207 19.000f , 18.000f , 17.000f , 13.000f , 11.500f ,
208 10.300f , 9.4000f , 9.0000f , 8.8000f , 7.0000f ,
209 7.5000f},
210
211 {200.00f , 163.00f , 141.00f , 120.00f , 111.00f , //15
212 99.500f , 92.500f , 86.500f , 82.000f , 78.000f ,
213 74.000f , 71.000f , 67.500f , 65.000f , 62.500f ,
214 59.700f , 58.100f , 56.300f , 54.700f , 52.700f ,
215 50.000f , 48.400f , 47.000f , 46.000f , 45.200f ,
216 42.800f , 39.200f , 36.300f , 32.800f , 30.400f ,
217 28.100f , 26.300f , 24.500f , 19.250f , 16.840f ,
218 14.600f , 12.340f , 11.210f , 8.8500f , 7.5000f ,
219 7.5000f} ,
220
221 {4200.0f , 440.00f , 420.00f , 400.00f , 230.00f , //16
222 160.00f , 105.00f , 80.000f , 62.000f , 50.000f ,
223 45.000f , 41.000f , 38.000f , 36.000f , 35.000f ,
224 34.000f , 33.000f , 32.000f , 31.500f , 31.000f ,
225 30.500f , 30.000f , 29.500f , 29.000f , 28.500f ,
226 28.000f , 26.000f , 23.000f , 21.500f , 20.000f ,
227 19.000f , 18.000f , 17.000f , 13.000f , 11.500f ,
228 10.300f , 9.4000f , 9.0000f , 8.8000f , 7.0000f ,
229 7.5000f} ,
230
231 {185.88f , 133.23f , 119.37f , 102.86f , 93.102f , //17
232 82.752f , 76.205f , 71.008f , 67.366f , 64.096f ,
233 60.891f , 58.501f , 55.735f , 53.773f , 51.839f ,
234 49.671f , 48.485f , 47.045f , 45.803f , 44.306f ,
235 42.623f , 41.786f , 41.115f , 40.630f , 40.129f ,
236 38.242f , 35.233f , 32.662f , 29.639f , 27.573f ,
237 25.536f , 23.948f , 22.356f , 17.723f , 15.614f ,
238 13.653f , 11.675f , 10.653f , 8.6198f , 7.4464f ,
239 7.4821f} ,
240
241 {1100.0f , 115.00f , 105.00f , 100.00f , 56.000f , //18
242 40.000f , 27.000f , 22.000f , 21.000f , 20.000f ,
243 20.000f , 19.067f , 19.333f , 19.500f , 19.833f ,
244 20.567f , 21.800f , 22.900f , 23.869f , 23.809f ,
245 22.161f , 21.488f , 19.732f , 19.433f , 19.345f ,
246 19.029f , 18.121f , 16.280f , 15.258f , 14.280f ,
247 13.644f , 12.963f , 12.316f , 9.5333f , 8.4333f ,
248 7.5728f , 6.9696f , 6.7518f , 6.6175f , 5.6000f ,
249 6.1145f} ,
250
251 {157.65f , 73.701f , 76.096f , 68.571f , 57.305f , //19
252 49.257f , 43.616f , 40.024f , 38.098f , 36.287f ,
253 34.674f , 33.105f , 31.712f , 30.685f , 29.613f ,
254 28.602f , 28.336f , 28.075f , 27.786f , 27.215f ,
255 26.380f , 26.146f , 25.108f , 24.783f , 24.360f ,
256 23.219f , 21.431f , 20.095f , 18.382f , 17.267f ,
257 16.100f , 15.175f , 14.271f , 11.573f , 10.305f ,
258 9.1471f , 8.0149f , 7.4349f , 6.2499f , 5.8928f ,
259 6.0774f} ,
260
261 {1100.0f , 115.00f , 105.00f , 100.00f , 56.000f , //20
262 40.000f , 27.000f , 22.000f , 21.000f , 20.000f ,
263 20.000f , 19.067f , 19.333f , 19.500f , 19.833f ,
264 20.567f , 21.800f , 22.900f , 23.869f , 23.809f ,
265 22.161f , 21.488f , 19.732f , 19.433f , 19.345f ,
266 19.029f , 18.121f , 16.280f , 15.258f , 14.280f ,
267 13.644f , 12.963f , 12.316f , 9.5333f , 8.4333f ,
268 7.5728f , 6.9696f , 6.7518f , 6.6175f , 5.6000f ,
269 6.1145f} ,
270
271 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //21
272 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
273 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
274 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
275 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
276 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
277 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
278 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
279 0.00000f },
280
281 {1100.0f , 115.00f , 105.00f , 100.00f , 56.000f , //22
282 40.000f , 27.000f , 22.000f , 21.000f , 20.000f ,
283 20.000f , 19.067f , 19.333f , 19.500f , 19.833f ,
284 20.567f , 21.800f , 22.900f , 23.869f , 23.809f ,
285 22.161f , 21.488f , 19.732f , 19.433f , 19.345f ,
286 19.029f , 18.121f , 16.280f , 15.258f , 14.280f ,
287 13.644f , 12.963f , 12.316f , 9.5333f , 8.4333f ,
288 7.5728f , 6.9696f , 6.7518f , 6.6175f , 5.6000f ,
289 6.1145f} ,
290
291 {185.88f , 133.23f , 119.37f , 102.86f , 93.102f , //23
292 82.752f , 76.205f , 71.008f , 67.366f , 64.096f ,
293 60.891f , 58.104f , 55.241f , 53.140f , 50.934f ,
294 48.660f , 47.566f , 46.585f , 45.581f , 44.003f ,
295 41.134f , 39.374f , 36.878f , 35.523f , 34.503f ,
296 32.334f , 29.365f , 27.370f , 24.705f , 22.921f ,
297 21.229f , 19.879f , 18.559f , 14.625f , 12.758f ,
298 11.041f , 9.3440f , 8.5484f , 6.7104f , 6.0000f ,
299 6.1131f} ,
300
301 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //24
302 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
303 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
304 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
305 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
306 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
307 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
308 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
309 0.00000f },
310
311 {157.65f , 73.701f , 76.096f , 68.571f , 57.305f , //25
312 49.257f , 43.616f , 40.024f , 38.098f , 36.287f ,
313 34.674f , 33.105f , 31.712f , 30.685f , 29.613f ,
314 28.602f , 28.336f , 28.075f , 27.786f , 27.215f ,
315 26.380f , 26.146f , 25.108f , 24.783f , 24.360f ,
316 23.219f , 21.431f , 20.095f , 18.382f , 17.267f ,
317 16.100f , 15.175f , 14.271f , 11.573f , 10.305f ,
318 9.1471f , 8.0149f , 7.4349f , 6.2499f , 5.8928f ,
319 6.0774f} ,
320
321 {1100.0f , 115.00f , 105.00f , 100.00f , 56.000f , //26
322 40.000f , 27.000f , 22.000f , 21.000f , 20.000f ,
323 20.000f , 18.133f , 18.167f , 18.000f , 17.667f ,
324 18.133f , 19.600f , 21.800f , 23.338f , 23.118f ,
325 19.323f , 17.476f , 13.464f , 12.367f , 11.691f ,
326 11.057f , 10.242f , 9.5593f , 9.0151f , 8.5591f ,
327 8.2884f , 7.9253f , 7.6311f , 6.0667f , 5.3667f ,
328 4.8456f , 4.5392f , 4.5036f , 4.4351f , 4.2000f ,
329 4.7289f} ,
330
331 {1100.0f , 115.00f , 105.00f , 100.00f , 56.000f , //27
332 40.000f , 27.000f , 22.000f , 21.000f , 20.000f ,
333 20.000f , 18.133f , 18.167f , 18.000f , 17.667f ,
334 18.133f , 19.600f , 21.800f , 23.338f , 23.118f ,
335 19.323f , 17.476f , 13.464f , 12.367f , 11.691f ,
336 11.057f , 10.242f , 9.5593f , 9.0151f , 8.5591f ,
337 8.2884f , 7.9253f , 7.6311f , 6.0667f , 5.3667f ,
338 4.8456f , 4.5392f , 4.5036f , 4.4351f , 4.2000f ,
339 4.7289f} ,
340
341 {157.65f , 73.701f , 76.096f , 68.571f , 57.305f , //28
342 49.257f , 43.616f , 40.024f , 38.098f , 36.287f ,
343 34.674f , 32.708f , 31.218f , 30.052f , 28.707f ,
344 27.591f , 27.417f , 27.615f , 27.564f , 26.913f ,
345 24.891f , 23.734f , 20.871f , 19.677f , 18.734f ,
346 17.311f , 15.563f , 14.803f , 13.448f , 12.615f ,
347 11.794f , 11.106f , 10.474f , 8.4745f , 7.4498f ,
348 6.5350f , 5.6835f , 5.3300f , 4.3406f , 4.4464f ,
349 4.7083f} ,
350
351 {143.53f , 43.935f , 54.462f , 51.429f , 39.407f , //29
352 32.510f , 27.321f , 24.532f , 23.465f , 22.383f ,
353 21.566f , 20.209f , 19.453f , 18.825f , 18.046f ,
354 17.562f , 17.802f , 18.360f , 18.667f , 18.519f ,
355 17.514f , 17.120f , 14.985f , 14.306f , 13.663f ,
356 12.753f , 11.596f , 11.165f , 10.287f , 9.7882f ,
357 9.2294f , 8.7539f , 8.3300f , 6.9480f , 6.2234f ,
358 5.5881f , 5.0189f , 4.7733f , 4.1104f , 4.3929f ,
359 4.6905f} ,
360
361 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //30
362 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
363 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
364 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
365 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
366 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
367 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
368 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
369 0.00000f },
370
371 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //31
372 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
373 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
374 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
375 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
376 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
377 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
378 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
379 0.00000f },
380
381 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //32
382 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
383 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
384 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
385 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
386 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
387 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
388 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
389 0.00000f },
390
391 {1100.0f , 115.00f , 105.00f , 100.00f , 56.000f , //33
392 40.000f , 27.000f , 22.000f , 21.000f , 20.000f ,
393 20.000f , 18.133f , 18.167f , 18.000f , 17.667f ,
394 18.133f , 19.600f , 21.800f , 23.338f , 23.118f ,
395 19.323f , 17.476f , 13.464f , 12.367f , 11.691f ,
396 11.057f , 10.242f , 9.5593f , 9.0151f , 8.5591f ,
397 8.2884f , 7.9253f , 7.6311f , 6.0667f , 5.3667f ,
398 4.8456f , 4.5392f , 4.5036f , 4.4351f , 4.2000f ,
399 4.7289f} ,
400
401 {143.53f , 43.935f , 54.462f , 51.429f , 39.407f , //34
402 32.510f , 27.321f , 24.532f , 23.465f , 22.383f ,
403 21.566f , 20.209f , 19.453f , 18.825f , 18.046f ,
404 17.562f , 17.802f , 18.360f , 18.667f , 18.519f ,
405 17.514f , 17.120f , 14.985f , 14.306f , 13.663f ,
406 12.753f , 11.596f , 11.165f , 10.287f , 9.7882f ,
407 9.2294f , 8.7539f , 8.3300f , 6.9480f , 6.2234f ,
408 5.5881f , 5.0189f , 4.7733f , 4.1104f , 4.3929f ,
409 4.6905f} ,
410
411 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //35
412 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
413 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
414 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
415 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
416 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
417 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
418 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
419 0.00000f }
420};
421
422//---------------------------------------------------------------------
423// Inelastic scattering on free protons
424//---------------------------------------------------------------------
425
426const G4float G4HadronCrossSections::csin[NPARTS][TSIZE] = {
427
428 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //1
429 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
430 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
431 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
432 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
433 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
434 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
435 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
436 0.00000f },
437
438 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //2
439 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
440 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
441 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
442 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
443 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
444 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
445 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
446 0.00000f },
447
448 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //3
449 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
450 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
451 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
452 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
453 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
454 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
455 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
456 0.00000f },
457
458 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //4
459 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
460 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
461 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
462 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
463 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
464 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
465 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
466 0.00000f },
467
468 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //5
469 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
470 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
471 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
472 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
473 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
474 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
475 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
476 0.00000f },
477
478 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //6
479 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
480 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
481 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
482 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
483 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
484 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
485 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
486 0.00000f },
487
488// Inelastic cross section for piplus - p
489 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //7
490 0.00000f , 0.00000f , 0.50000f , 1.2000f , 1.7000f ,
491 2.2500f , 3.0000f , 3.6000f , 4.5000f , 5.4000f ,
492 6.3000f , 8.6000f , 9.0000f , 10.000f , 11.500f ,
493 14.000f , 17.000f , 19.500f , 22.000f , 24.000f ,
494 21.500f , 18.500f , 19.000f , 20.500f , 22.200f ,
495 23.000f , 23.300f , 23.000f , 21.000f , 20.500f ,
496 20.200f , 20.100f , 20.000f , 20.000f , 20.000f ,
497 21.000f} ,
498
499
500 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //8
501 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
502 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
503 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
504 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
505 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
506 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
507 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
508 0.00000f },
509
510// Inelastic cross section for piminus - p
511 {0.00000f , 3.0000f , 9.2000f , 20.500f , 36.500f , //9
512 45.000f , 28.000f , 19.500f , 15.500f , 14.200f ,
513 15.500f , 17.500f , 20.000f , 23.000f , 26.000f ,
514 20.000f , 23.000f , 26.500f , 32.000f , 35.000f ,
515 28.500f , 22.000f , 22.500f , 23.500f , 24.000f ,
516 24.500f , 26.000f , 27.500f , 27.500f , 27.000f ,
517 26.500f , 25.500f , 25.000f , 23.000f , 22.500f ,
518 22.200f , 22.000f , 22.000f , 21.200f , 20.700f ,
519 21.000f} ,
520
521 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //10
522 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
523 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
524 0.50000f , 1.5000f , 2.7000f , 3.8000f , 4.8000f ,
525 6.5000f , 7.6000f , 8.4000f , 9.0000f , 9.4000f ,
526 9.8000f , 10.500f , 11.000f , 11.500f , 11.800f ,
527 12.200f , 12.400f , 12.600f , 13.200f , 13.500f ,
528 13.700f , 14.000f , 14.200f , 14.500f , 16.400f ,
529 17.000f} ,
530
531 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //11
532 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
533 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
534 0.50000f , 1.5000f , 2.7000f , 3.8000f , 4.8000f ,
535 6.5000f , 7.6000f , 8.4000f , 9.0000f , 9.4000f ,
536 9.8000f , 10.500f , 11.000f , 11.500f , 11.800f ,
537 12.200f , 12.400f , 12.600f , 13.200f , 13.500f ,
538 13.700f , 14.000f , 14.200f , 14.500f , 16.400f ,
539 17.000f} ,
540
541 {266.67f , 133.33f , 83.333f , 57.083f , 44.500f , //12
542 33.250f , 24.583f , 20.833f , 18.333f , 16.083f ,
543 15.625f , 15.083f , 14.833f , 15.083f , 15.833f ,
544 17.042f , 18.958f , 20.758f , 22.533f , 22.825f ,
545 21.250f , 18.567f , 17.767f , 18.100f , 19.933f ,
546 20.783f , 21.225f , 21.000f , 20.558f , 20.258f ,
547 20.017f , 19.767f , 19.600f , 19.183f , 18.850f ,
548 18.575f , 18.350f , 18.175f , 17.808f , 17.558f ,
549 19.250f} ,
550
551 {400.00f , 200.00f , 120.00f , 81.000f , 62.000f , //13
552 47.000f , 35.000f , 28.000f , 24.000f , 21.000f ,
553 19.500f , 19.000f , 18.800f , 19.000f , 20.000f ,
554 21.000f , 23.000f , 25.000f , 27.000f , 27.500f ,
555 25.500f , 22.000f , 20.800f , 21.000f , 23.000f ,
556 24.000f , 24.000f , 23.800f , 23.000f , 22.500f ,
557 22.000f , 21.600f , 21.400f , 21.000f , 20.500f ,
558 20.200f , 19.800f , 19.500f , 18.600f , 17.500f ,
559 20.000f} ,
560
561// Inelastic cross section for p - p
562 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //14
563 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
564 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
565 0.00000f , 0.00000f , 0.00000f , 0.10000f , 1.5000f ,
566 7.0000f , 12.000f , 17.000f , 19.500f , 20.500f ,
567 22.000f , 23.500f , 24.800f , 25.800f , 26.500f ,
568 27.000f , 27.500f , 28.000f , 30.000f , 31.000f ,
569 32.000f , 32.500f , 32.500f , 33.000f , 33.500f ,
570 33.500f} ,
571
572 {1500.0f , 1160.0f , 310.00f , 230.00f , 178.00f , //15
573 153.00f , 134.00f , 124.00f , 113.00f , 106.00f ,
574 101.00f , 96.000f , 92.000f , 89.000f , 87.000f ,
575 84.000f , 81.000f , 78.500f , 76.500f , 75.000f ,
576 72.000f , 70.000f , 68.000f , 64.500f , 63.000f ,
577 62.000f , 61.000f , 59.500f , 58.500f , 56.500f ,
578 56.500f , 56.000f , 55.500f , 52.000f , 50.000f ,
579 48.000f , 45.000f , 44.000f , 39.200f , 34.500f ,
580 34.500f} ,
581
582 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //16
583 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
584 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
585 0.00000f , 0.00000f , 0.00000f , 0.10000f , 1.5000f ,
586 7.0000f , 12.000f , 17.000f , 19.500f , 20.500f ,
587 22.000f , 23.500f , 24.800f , 25.800f , 26.500f ,
588 27.000f , 27.500f , 28.000f , 30.000f , 31.000f ,
589 32.000f , 32.500f , 32.500f , 33.000f , 33.500f ,
590 34.000f} ,
591
592 {1394.1f , 948.17f , 262.43f , 197.14f , 149.30f , //17
593 127.25f , 110.39f , 101.79f , 92.834f , 87.104f ,
594 83.109f , 79.099f , 75.965f , 73.627f , 72.161f ,
595 69.889f , 67.595f , 65.595f , 64.057f , 63.054f ,
596 61.377f , 60.434f , 59.485f , 56.970f , 55.931f ,
597 55.398f , 54.827f , 53.538f , 52.861f , 51.247f ,
598 51.344f , 50.992f , 50.644f , 47.876f , 46.358f ,
599 44.887f , 42.577f , 41.815f , 38.180f , 34.254f ,
600 34.418f} ,
601
602 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //18
603 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
604 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
605 0.00000f , 0.00000f , 0.00000f , 0.97815E-01f, 1.4577f ,
606 6.2052f , 10.112f , 12.902f , 14.300f , 14.688f ,
607 15.505f , 16.379f , 17.554f , 18.309f , 18.920f ,
608 19.389f , 19.804f , 20.284f , 22.000f , 22.733f ,
609 23.527f , 24.097f , 24.382f , 24.816f , 26.800f ,
610 27.719f} ,
611
612 {1182.4f , 524.50f , 167.30f , 131.43f , 91.895f , //19
613 75.743f , 63.184f , 57.376f , 52.502f , 49.313f ,
614 47.326f , 44.762f , 43.222f , 42.015f , 41.221f ,
615 40.244f , 39.504f , 39.145f , 38.860f , 38.731f ,
616 37.987f , 37.814f , 36.326f , 34.750f , 33.953f ,
617 33.635f , 33.349f , 32.938f , 32.785f , 32.092f ,
618 32.373f , 32.312f , 32.329f , 31.261f , 30.597f ,
619 30.073f , 29.228f , 29.182f , 27.683f , 27.107f ,
620 27.956f} ,
621
622 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //20
623 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
624 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
625 0.00000f , 0.00000f , 0.00000f , 0.97815E-01f, 1.4577f ,
626 6.2052f , 10.112f , 12.902f , 14.300f , 14.688f ,
627 15.505f , 16.379f , 17.554f , 18.309f , 18.920f ,
628 19.389f , 19.804f , 20.284f , 22.000f , 22.733f ,
629 23.527f , 24.097f , 24.382f , 24.816f , 26.800f ,
630 27.719f} ,
631
632 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //21
633 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
634 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
635 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
636 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
637 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
638 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
639 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
640 0.00000f },
641
642 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //22
643 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
644 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
645 0.00000f , 0.00000f , 0.00000f , 0.97815E-01f, 1.4577f ,
646 6.2052f , 10.112f , 12.902f , 14.300f , 14.688f ,
647 15.505f , 16.379f , 17.554f , 18.309f , 18.920f ,
648 19.389f , 19.804f , 20.284f , 22.000f , 22.733f ,
649 23.527f , 24.097f , 24.382f , 24.816f , 26.800f ,
650 27.719f} ,
651
652 {1394.1f , 948.17f , 262.43f , 197.14f , 149.30f , //23
653 127.25f , 110.39f , 101.79f , 92.834f , 87.104f ,
654 83.109f , 78.563f , 75.292f , 72.760f , 70.900f ,
655 68.467f , 66.314f , 64.955f , 63.746f , 62.623f ,
656 59.233f , 56.946f , 53.355f , 49.810f , 48.090f ,
657 46.839f , 45.695f , 44.863f , 44.062f , 42.599f ,
658 42.684f , 42.328f , 42.041f , 39.508f , 37.880f ,
659 36.299f , 34.075f , 33.553f , 29.723f , 27.600f ,
660 28.120f} ,
661
662 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //24
663 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
664 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
665 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
666 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
667 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
668 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
669 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
670 0.00000 },
671
672 {1182.4f , 524.50f , 167.30f , 131.43f , 91.895f , //25
673 75.743f , 63.184f , 57.376f , 52.502f , 49.313f ,
674 47.326f , 44.762f , 43.222f , 42.015f , 41.221f ,
675 40.244f , 39.504f , 39.145f , 38.860f , 38.731f ,
676 37.987f , 37.814f , 36.326f , 34.750f , 33.953f ,
677 33.635f , 33.349f , 32.938f , 32.785f , 32.092f ,
678 32.373f , 32.312f , 32.329f , 31.261f , 30.597f ,
679 30.073f , 29.228f , 29.182f , 27.683f , 27.107f ,
680 27.956f} ,
681
682 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //26
683 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
684 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
685 0.00000f , 0.00000f , 0.00000f , 0.95639E-01f, 1.4154f ,
686 5.4104f , 8.2240f , 8.8031f , 9.1000f , 8.8761f ,
687 9.0095f , 9.2576f , 10.307f , 10.818f , 11.341f ,
688 11.778f , 12.108f , 12.569f , 14.000f , 14.467f ,
689 15.054f , 15.694f , 16.263f , 16.632f , 20.100f ,
690 21.438f} ,
691
692 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //27
693 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
694 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
695 0.00000f , 0.00000f , 0.00000f , 0.95639E-01f, 1.4154f ,
696 5.4104f , 8.2240f , 8.8031f , 9.1000f , 8.8761f ,
697 9.0095f , 9.2576f , 10.307f , 10.818f , 11.341f ,
698 11.778f , 12.108f , 12.569f , 14.000f , 14.467f ,
699 15.054f , 15.694f , 16.263f , 16.632f , 20.100f ,
700 21.438f} ,
701
702 {1182.4f , 524.50f , 167.30f , 131.43f , 91.895f , //28
703 75.743f , 63.184f , 57.376f , 52.502f , 49.313f ,
704 47.326f , 44.225f , 42.549f , 41.148f , 39.960f ,
705 38.822f , 38.223f , 38.505f , 38.549f , 38.301f ,
706 35.843f , 34.326f , 30.196f , 27.590f , 26.112f ,
707 25.076f , 24.217f , 24.264f , 23.985f , 23.445f ,
708 23.713f , 23.647f , 23.726f , 22.892f , 22.119f ,
709 21.485f , 20.726f , 20.921f , 19.226f , 20.454f ,
710 21.658f} ,
711
712 {1076.5f , 312.66f , 119.74f , 98.571f , 63.193f , //29
713 49.990f , 39.579f , 35.168f , 32.335f , 30.417f ,
714 29.434f , 27.325f , 26.514f , 25.775f , 25.120f ,
715 24.711f , 24.818f , 25.600f , 26.106f , 26.355f ,
716 25.220f , 24.760f , 21.681f , 20.060f , 19.044f ,
717 18.474f , 18.044f , 18.301f , 18.347f , 18.192f ,
718 18.557f , 18.639f , 18.870f , 18.769f , 18.478f ,
719 18.372f , 18.302f , 18.735f , 18.206f , 20.207f ,
720 21.576f} ,
721
722 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //30
723 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
724 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
725 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
726 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
727 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
728 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
729 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
730 0.00000f },
731
732 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //31
733 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
734 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
735 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
736 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
737 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
738 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
739 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
740 0.00000f },
741
742 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //32
743 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
744 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
745 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
746 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
747 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
748 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
749 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
750 0.00000f },
751
752 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //33
753 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
754 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
755 0.00000f , 0.00000f , 0.00000f , 0.95639E-01f, 1.4154f ,
756 5.4104f , 8.2240f , 8.8031f , 9.1000f , 8.8761f ,
757 9.0095f , 9.2576f , 10.307f , 10.818f , 11.341f ,
758 11.778f , 12.108f , 12.569f , 14.000f , 14.467f ,
759 15.054f , 15.694f , 16.263f , 16.632f , 20.100f ,
760 21.438f} ,
761
762 {1076.5f , 312.66f , 119.74f , 98.571f , 63.193f , //34
763 49.990f , 39.579f , 35.168f , 32.335f , 30.417f ,
764 29.434f , 27.325f , 26.514f , 25.775f , 25.120f ,
765 24.711f , 24.818f , 25.600f , 26.106f , 26.355f ,
766 25.220f , 24.760f , 21.681f , 20.060f , 19.044f ,
767 18.474f , 18.044f , 18.301f , 18.347f , 18.192f ,
768 18.557f , 18.639f , 18.870f , 18.769f , 18.478f ,
769 18.372f , 18.302f , 18.735f , 18.206f , 20.207f ,
770 21.576f} ,
771
772 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //35
773 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
774 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
775 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
776 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
777 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
778 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
779 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
780 0.00000f }
781
782};
783
784//---------------------------------------------------------------------
785// Elastic scattering of pion on nucleus
786//---------------------------------------------------------------------
787
788const G4float G4HadronCrossSections::cspiel[3][TSIZE] = {
789
790// Elastic cross section for Pi on Al (mb)
791 {0.00000f , 350.00f , 580.00f , 600.00f , 550.00f , //1
792 450.00f , 410.00f , 370.00f , 340.00f , 230.00f ,
793 220.00f , 205.00f , 180.00f , 155.00f , 145.00f ,
794 140.00f , 160.00f , 195.00f , 235.00f , 250.00f ,
795 270.00f , 280.00f , 300.00f , 300.00f , 290.00f ,
796 285.00f , 265.00f , 240.00f , 230.00f , 222.00f ,
797 204.00f , 196.00f , 190.00f , 170.00f , 170.00f ,
798 160.00f , 150.00f , 140.00f , 120.00f , 80.000f ,
799 80.000f},
800
801// Elastic cross section for Pi on Cu (mb)
802 {0.00000f , 700.00f , 1000.0f , 1200.0f , 1300.0f , //2
803 1300.0f , 1250.0f , 1250.0f , 1100.0f , 1000.0f ,
804 940.00f , 740.00f , 700.00f , 670.00f , 660.00f ,
805 670.00f , 680.00f , 700.00f , 735.00f , 800.00f ,
806 810.00f , 820.00f , 820.00f , 810.00f , 800.00f ,
807 800.00f , 700.00f , 600.00f , 500.00f , 470.00f ,
808 440.00f , 410.00f , 380.00f , 330.00f , 330.00f ,
809 330.00f , 330.00f , 330.00f , 285.00f , 240.00f ,
810 240.00f},
811
812// Elastic cross section for Pi on Pb (mb)
813 {0.00000f , 1700.0f , 2200.0f , 2200.0f , 1800.0f , //3
814 1300.0f , 1200.0f , 900.00f , 900.00f , 1000.0f ,
815 1100.0f , 1300.0f , 1400.0f , 1420.0f , 1490.0f ,
816 1560.0f , 1580.0f , 1690.0f , 1795.0f , 2000.0f ,
817 2070.0f , 2140.0f , 2050.0f , 2010.0f , 1970.0f ,
818 1880.0f , 1690.0f , 1500.0f , 1420.0f , 1390.0f ,
819 1350.0f , 1360.0f , 1370.0f , 1280.0f , 1290.0f ,
820 1295.0f , 1250.0f , 1200.0f , 1050.0f , 900.00f ,
821 900.00f}
822};
823
824//---------------------------------------------------------------------
825// Inelastic scattering of pion on nucleus
826//---------------------------------------------------------------------
827
828const G4float G4HadronCrossSections::cspiin[3][TSIZE] = {
829
830// Inelastic cross section for Pi on Al (mb)
831 {0.00000f , 200.00f , 320.00f , 500.00f , 600.00f , //1
832 600.00f , 590.00f , 530.00f , 510.00f , 470.00f ,
833 430.00f , 425.00f , 420.00f , 425.00f , 425.00f ,
834 430.00f , 430.00f , 435.00f , 435.00f , 440.00f ,
835 430.00f , 430.00f , 420.00f , 420.00f , 420.00f ,
836 415.00f , 415.00f , 410.00f , 410.00f , 408.00f ,
837 406.00f , 404.00f , 400.00f , 380.00f , 340.00f ,
838 340.00f , 340.00f , 340.00f , 340.00f , 340.00f ,
839 340.00f} ,
840
841// Inelastic cross section for Pi on Cu (mb)
842 {0.00000f , 400.00f , 800.00f , 1000.0f , 1100.0f , //2
843 1200.0f , 1150.0f , 1050.0f , 1000.0f , 900.00f ,
844 860.00f , 860.00f , 850.00f , 850.00f , 840.00f ,
845 830.00f , 820.00f , 810.00f , 805.00f , 800.00f ,
846 800.00f , 800.00f , 800.00f , 800.00f , 800.00f ,
847 800.00f , 800.00f , 800.00f , 800.00f , 780.00f ,
848 760.00f , 740.00f , 720.00f , 720.00f , 700.00f ,
849 690.00f , 680.00f , 670.00f , 665.00f , 660.00f ,
850 660.00f} ,
851
852// Inelastic cross section for Pi on Pb (mb)
853 {0.00000f , 1000.0f , 1900.0f , 2600.0f , 2900.0f , //3
854 3000.0f , 2800.0f , 2600.0f , 2500.0f , 2300.0f ,
855 2200.0f , 2000.0f , 1900.0f , 1880.0f , 1860.0f ,
856 1840.0f , 1820.0f , 1810.0f , 1805.0f , 1800.0f ,
857 1780.0f , 1760.0f , 1750.0f , 1740.0f , 1730.0f ,
858 1720.0f , 1710.0f , 1700.0f , 1680.0f , 1660.0f ,
859 1650.0f , 1640.0f , 1630.0f , 1620.0f , 1610.0f ,
860 1605.0f , 1600.0f , 1600.0f , 1550.0f , 1500.0f ,
861 1500.0f}
862};
863
864//---------------------------------------------------------------------
865// Elastic scattering of proton on nucleus
866//---------------------------------------------------------------------
867
868const G4float G4HadronCrossSections::cspnel[3][TSIZE] = {
869
870// Elastic cross section for P on Al (mb)
871 {2100.0f , 1800.0f , 1500.0f , 1050.0f , 900.00f , //1
872 950.00f , 800.00f , 650.00f , 570.00f , 390.00f ,
873 300.00f , 240.00f , 230.00f , 230.00f , 220.00f ,
874 220.00f , 225.00f , 225.00f , 240.00f , 240.00f ,
875 290.00f , 330.00f , 335.00f , 350.00f , 355.00f ,
876 370.00f , 350.00f , 330.00f , 310.00f , 290.00f ,
877 270.00f , 265.00f , 260.00f , 230.00f , 210.00f ,
878 210.00f , 200.00f , 200.00f , 190.00f , 180.00f ,
879 180.00f},
880
881// Elastic cross section for P on Cu (mb)
882 {3800.0f , 2900.0f , 1850.0f , 1550.0f , 1450.0f , //2
883 1520.0f , 1460.0f , 1300.0f , 1140.0f , 880.00f ,
884 700.00f , 620.00f , 540.00f , 560.00f , 460.00f ,
885 460.00f , 470.00f , 470.00f , 480.00f , 480.00f ,
886 580.00f , 600.00f , 610.00f , 620.00f , 620.00f ,
887 620.00f , 590.00f , 580.00f , 460.00f , 440.00f ,
888 420.00f , 400.00f , 480.00f , 430.00f , 380.00f ,
889 380.00f , 380.00f , 380.00f , 380.00f , 380.00f ,
890 380.00f},
891
892// Elastic cross section for P on Pb (mb)
893 {7000.0f , 6000.0f , 4500.0f , 3350.0f , 2700.0f , //3
894 3000.0f , 3550.0f , 3970.0f , 3280.0f , 2490.0f ,
895 2100.0f , 1510.0f , 1440.0f , 1370.0f , 1370.0f ,
896 1370.0f , 1400.0f , 1400.0f , 1420.0f , 1420.0f ,
897 1440.0f , 1460.0f , 1460.0f , 1450.0f , 1450.0f ,
898 1470.0f , 1400.0f , 1400.0f , 1380.0f , 1370.0f ,
899 1360.0f , 1350.0f , 1340.0f , 1330.0f , 1320.0f ,
900 1310.0f , 1305.0f , 1300.0f , 1300.0f , 1300.0f ,
901 1300.0f}
902};
903
904//---------------------------------------------------------------------
905// Inelastic scattering of proton on nucleus
906//---------------------------------------------------------------------
907
908const G4float G4HadronCrossSections::cspnin[3][TSIZE] = {
909
910// Inelastic cross section for P on Al (mb)
911 {0.00000f , 200.00f , 400.00f , 800.00f , 800.00f , //1
912 550.00f , 500.00f , 450.00f , 430.00f , 410.00f ,
913 400.00f , 390.00f , 380.00f , 370.00f , 370.00f ,
914 370.00f , 365.00f , 365.00f , 360.00f , 360.00f ,
915 360.00f , 360.00f , 365.00f , 370.00f , 375.00f ,
916 380.00f , 400.00f , 410.00f , 420.00f , 430.00f ,
917 440.00f , 440.00f , 440.00f , 440.00f , 440.00f ,
918 440.00f , 440.00f , 440.00f , 440.00f , 440.00f ,
919 440.00f} ,
920
921// Inelastic cross section for P on Cu (mb)
922 {0.00000f , 400.00f , 950.00f , 1050.0f , 1050.0f , //2
923 980.00f , 940.00f , 900.00f , 860.00f , 820.00f ,
924 800.00f , 780.00f , 760.00f , 740.00f , 740.00f ,
925 740.00f , 730.00f , 730.00f , 720.00f , 720.00f ,
926 720.00f , 720.00f , 730.00f , 740.00f , 750.00f ,
927 760.00f , 800.00f , 820.00f , 820.00f , 820.00f ,
928 820.00f , 820.00f , 820.00f , 820.00f , 820.00f ,
929 820.00f , 820.00f , 820.00f , 820.00f , 820.00f ,
930 820.00f} ,
931
932// Inelastic cross section for P on Pb (mb)
933 {0.00000f , 0.00000f , 500.00f , 1450.0f , 1700.0f , //3
934 1800.0f , 1750.0f , 1730.0f , 1720.0f , 1710.0f ,
935 1700.0f , 1690.0f , 1660.0f , 1630.0f , 1630.0f ,
936 1630.0f , 1600.0f , 1600.0f , 1580.0f , 1580.0f ,
937 1580.0f , 1580.0f , 1600.0f , 1630.0f , 1650.0f ,
938 1670.0f , 1760.0f , 1800.0f , 1800.0f , 1800.0f ,
939 1800.0f , 1800.0f , 1800.0f , 1800.0f , 1800.0f ,
940 1800.0f , 1800.0f , 1800.0f , 1800.0f , 1800.0f ,
941 1800.0f}
942};
943
944//---------------------------------------------------------------------
945// Lab kinetic energy in GeV
946//---------------------------------------------------------------------
947const G4float G4HadronCrossSections::elab[NELAB] = {
948 0.10000E-03f, 0.20000E-03f, 0.30000E-03f, 0.40000E-03f, 0.50000E-03f,
949 0.70000E-03f, 0.10000E-02f, 0.20000E-02f, 0.30000E-02f, 0.40000E-02f,
950 0.50000E-02f, 0.70000E-02f, 0.10000E-01f, 0.15000E-01f, 0.20000E-01f,
951 0.25000E-01f, 0.32700E-01f
952};
953
954//---------------------------------------------------------------------
955// Tables for low-energy (< 32.7 MeV) neutrons
956//---------------------------------------------------------------------
957
958// Atomic weight
959const G4float G4HadronCrossSections::cnlwat[NCNLW] = {
960 1.0000f , 16.000f , 27.000f , 56.000f , 59.000f ,
961 64.000f , 91.000f , 112.00f , 119.00f , 127.00f ,
962 137.00f , 181.00f , 207.00f , 209.00f , 238.00f
963};
964// Elastic cross section
965const G4float G4HadronCrossSections::cnlwel[NCNLW][NELAB] = {
966 {6000.0f , 5500.0f , 5200.0f , 4900.0f , 4800.0f , //1
967 4400.0f , 4000.0f , 2900.0f , 2200.0f , 1800.0f ,
968 1400.0f , 1100.0f , 900.00f , 700.00f , 600.00f ,
969 560.00f , 520.00f} ,
970 {5400.0f , 5050.0f , 4800.0f , 4600.0f , 4399.0f , //2
971 4090.0f , 3700.0f , 2600.0f , 1950.0f , 1600.0f ,
972 1300.0f , 900.00f , 700.00f , 800.00f , 1050.0f ,
973 1250.0f , 1320.0f} ,
974 {5500.0f , 5150.0f , 4900.0f , 4699.0f , 4490.0f , //3
975 4150.0f , 3750.0f , 2790.0f , 2100.0f , 1650.0f ,
976 1300.0f , 950.00f , 800.00f , 860.00f , 1000.0f ,
977 1090.0f , 1080.0f} ,
978 {5499.0f , 4970.0f , 4450.0f , 4080.0f , 3750.0f , //4
979 3380.0f , 2900.0f , 2400.0f , 2380.0f , 2350.0f ,
980 2300.0f , 2100.0f , 1720.0f , 1370.0f , 1200.0f ,
981 1060.0f , 870.00f} ,
982 {5399.0f , 4710.0f , 4180.0f , 3760.0f , 3460.0f , //5
983 3150.0f , 2730.0f , 2270.0f , 1850.0f , 1850.0f ,
984 2130.0f , 2330.0f , 2120.0f , 1640.0f , 1310.0f ,
985 1100.0f , 1050.0f} ,
986 {5099.0f , 4405.0f , 3825.0f , 3455.0f , 3125.0f , //6
987 2695.0f , 2350.0f , 1850.0f , 1580.0f , 1820.0f ,
988 2050.0f , 2210.0f , 2000.0f , 1590.0f , 1310.0f ,
989 1120.0f , 1040.0f} ,
990 {6290.0f , 5960.0f , 5640.0f , 5370.0f , 5150.0f , //7
991 4800.0f , 4250.0f , 3150.0f , 2470.0f , 2100.0f ,
992 2230.0f , 2420.0f , 2450.0f , 2050.0f , 1760.0f ,
993 1550.0f , 1330.0f} ,
994 {6885.0f , 6650.0f , 6350.0f , 6150.0f , 6000.0f , //8
995 5700.0f , 5360.0f , 4250.0f , 2800.0f , 1870.0f ,
996 1810.0f , 1820.0f , 2170.0f , 2450.0f , 2150.0f ,
997 1700.0f , 1390.0f} ,
998 {6600.0f , 6500.0f , 6400.0f , 6249.0f , 6190.0f , //9
999 5950.0f , 5520.0f , 4250.0f , 2750.0f , 1900.0f ,
1000 1850.0f , 1950.0f , 2340.0f , 2800.0f , 2540.0f ,
1001 2100.0f , 1760.0f} ,
1002 {7400.0f , 7200.0f , 6999.0f , 6840.0f , 6655.0f , //10
1003 6320.0f , 5820.0f , 4400.0f , 2850.0f , 2000.0f ,
1004 1800.0f , 1800.0f , 2150.0f , 2600.0f , 2350.0f ,
1005 1950.0f , 2100.0f} ,
1006 {7900.0f , 7700.0f , 7499.0f , 7390.0f , 7202.0f , //11
1007 6810.0f , 6360.0f , 4920.0f , 3450.0f , 2600.0f ,
1008 2200.0f , 1950.0f , 2300.0f , 2800.0f , 2650.0f ,
1009 2250.0f , 2050.0f} ,
1010 {7900.0f , 7750.0f , 7699.0f , 7590.0f , 7450.0f , //12
1011 7200.0f , 6850.0f , 5650.0f , 4400.0f , 3700.0f ,
1012 3400.0f , 2800.0f , 2700.0f , 3100.0f , 3250.0f ,
1013 3100.0f , 2750.0f} ,
1014 {6100.0f , 5950.0f , 5750.0f , 5599.0f , 5440.0f , //13
1015 5200.0f , 4800.0f , 4300.0f , 5800.0f , 5750.0f ,
1016 4800.0f , 3420.0f , 2650.0f , 3200.0f , 3650.0f ,
1017 3500.0f , 2980.0f} ,
1018 {6100.0f , 5950.0f , 5750.0f , 5599.0f , 5440.0f , //14
1019 5200.0f , 4800.0f , 4300.0f , 5800.0f , 5750.0f ,
1020 4800.0f , 3420.0f , 2650.0f , 3200.0f , 3650.0f ,
1021 3500.0f , 2980.0f} ,
1022 {6600.0f , 6350.0f , 6100.0f , 5899.0f , 5690.0f , //15
1023 5300.0f , 4850.0f , 4450.0f , 5650.0f , 5700.0f ,
1024 4950.0f , 3850.0f , 3050.0f , 3050.0f , 3460.0f ,
1025 3650.0f , 3340.0f}
1026};
1027// Inelastic cross section
1028const G4float G4HadronCrossSections::cnlwin[NCNLW][NELAB] = {
1029 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //1
1030 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
1031 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
1032 0.00000f , 0.00000f },
1033 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 1.0000f , //2
1034 10.000f , 50.000f , 100.00f , 200.00f , 300.00f ,
1035 400.00f , 600.00f , 700.00f , 750.00f , 700.00f ,
1036 700.00f , 680.00f} ,
1037 {0.00000f , 0.00000f , 0.00000f , 1.0000f , 10.000f , //3
1038 50.000f , 100.00f , 260.00f , 450.00f , 600.00f ,
1039 700.00f , 800.00f , 900.00f , 940.00f , 900.00f ,
1040 860.00f , 820.00f} ,
1041 {1.0000f , 80.000f , 200.00f , 320.00f , 400.00f , //4
1042 520.00f , 700.00f , 1000.0f , 1120.0f , 1200.0f ,
1043 1200.0f , 1200.0f , 1180.0f , 1130.0f , 1100.0f ,
1044 1090.0f , 1080.0f} ,
1045 {1.0000f , 90.000f , 220.00f , 340.00f , 420.00f , //5
1046 550.00f , 720.00f , 1080.0f , 1300.0f , 1400.0f ,
1047 1420.0f , 1420.0f , 1380.0f , 1260.0f , 1190.0f ,
1048 1150.0f , 1100.0f} ,
1049 {1.0000f , 95.000f , 225.00f , 345.00f , 425.00f , //6
1050 555.00f , 750.00f , 1150.0f , 1500.0f , 1680.0f ,
1051 1700.0f , 1690.0f , 1550.0f , 1360.0f , 1240.0f ,
1052 1180.0f , 1120.0f} ,
1053 {10.000f , 140.00f , 260.00f , 380.00f , 450.00f , //7
1054 600.00f , 750.00f , 1200.0f , 1580.0f , 1800.0f ,
1055 1820.0f , 1830.0f , 1800.0f , 1750.0f , 1690.0f ,
1056 1650.0f , 1620.0f} ,
1057 {15.000f , 150.00f , 300.00f , 400.00f , 500.00f , //8
1058 650.00f , 840.00f , 1500.0f , 2100.0f , 2130.0f ,
1059 2140.0f , 2130.0f , 2080.0f , 2000.0f , 1950.0f ,
1060 1900.0f , 1860.0f} ,
1061 {0.00000f , 0.00000f , 0.00000f , 1.0000f , 10.000f , //9
1062 150.00f , 380.00f , 1000.0f , 1650.0f , 2100.0f ,
1063 2100.0f , 2100.0f , 2060.0f , 1950.0f , 1860.0f ,
1064 1800.0f , 1740.0f} ,
1065 {0.00000f , 0.00000f , 1.0000f , 10.000f , 45.000f , //10
1066 180.00f , 380.00f , 1050.0f , 1900.0f , 2300.0f ,
1067 2300.0f , 2200.0f , 2150.0f , 2000.0f , 1900.0f ,
1068 1800.0f , 1750.0f} ,
1069 {0.00000f , 0.00000f , 1.0000f , 10.000f , 48.000f , //11
1070 190.00f , 390.00f , 1080.0f , 2000.0f , 2400.0f ,
1071 2400.0f , 2300.0f , 2200.0f , 2100.0f , 1950.0f ,
1072 1850.0f , 1800.0f} ,
1073 {0.00000f , 0.00000f , 1.0000f , 10.000f , 50.000f , //12
1074 200.00f , 400.00f , 1100.0f , 2100.0f , 2500.0f ,
1075 2500.0f , 2450.0f , 2300.0f , 2100.0f , 2000.0f ,
1076 1900.0f , 1850.0f} ,
1077 {0.00000f , 0.00000f , 0.00000f , 1.0000f , 10.000f , //13
1078 100.00f , 350.00f , 900.00f , 1400.0f , 2000.0f ,
1079 2300.0f , 2380.0f , 2400.0f , 2300.0f , 2250.0f ,
1080 2200.0f , 2120.0f} ,
1081 {0.00000f , 0.00000f , 0.00000f , 1.0000f , 10.000f , //14
1082 100.00f , 350.00f , 900.00f , 1400.0f , 2000.0f ,
1083 2300.0f , 2380.0f , 2400.0f , 2300.0f , 2250.0f ,
1084 2200.0f , 2120.0f} ,
1085 {0.00000f , 0.00000f , 0.00000f , 1.0000f , 10.000f , //15
1086 100.00f , 400.00f , 950.00f , 1600.0f , 2200.0f ,
1087 2550.0f , 2750.0f , 2700.0f , 2600.0f , 2540.0f ,
1088 2450.0f , 2360.0f}
1089};
1090// Capture cross section indexed by Z
1091const G4float G4HadronCrossSections::cscap[100] = {
1092 6.0000f , 5.7000f , 5.5000f , 5.3000f , 5.2000f ,
1093 5.1000f , 5.0000f , 4.9000f , 4.8000f , 4.8000f ,
1094 4.8000f , 4.8000f , 4.8000f , 4.8000f , 4.8000f ,
1095 4.8000f , 4.9000f , 5.0000f , 5.2000f , 5.5000f ,
1096 6.0000f , 6.7000f , 7.5000f , 8.5000f , 10.000f ,
1097 12.000f , 14.500f , 19.000f , 26.500f , 40.000f ,
1098 75.000f , 120.00f , 180.00f , 260.00f , 360.00f ,
1099 330.00f , 60.000f , 7.0000f , 9.5000f , 20.000f ,
1100 75.000f , 140.00f , 250.00f , 360.00f , 480.00f ,
1101 580.00f , 590.00f , 500.00f , 300.00f , 100.00f ,
1102 200.00f , 300.00f , 400.00f , 470.00f , 500.00f ,
1103 430.00f , 100.00f , 20.000f , 22.000f , 40.000f ,
1104 560.00f , 950.00f , 1000.0f , 1000.0f , 1000.0f ,
1105 990.00f , 920.00f , 860.00f , 790.00f , 740.00f ,
1106 650.00f , 600.00f , 540.00f , 470.00f , 440.00f ,
1107 390.00f , 360.00f , 340.00f , 320.00f , 310.00f ,
1108 280.00f , 2.0000f , 2.5000f , 6.0000f , 13.000f ,
1109 38.000f , 65.000f , 140.00f , 280.00f , 300.00f ,
1110 430.00f , 580.00f , 650.00f , 800.00f , 920.00f ,
1111 1100.0f , 1250.0f , 1400.0f , 1550.0f , 1700.0f
1112};
1113
1114//---------------------------------------------------------------------
1115// Tables for fission cross sections
1116//---------------------------------------------------------------------
1117
1118// Lab kinetic energy in GeV
1119const G4float G4HadronCrossSections::ekfiss[NFISS] = {
1120 0.10000E-03f, 0.20000E-03f, 0.30000E-03f, 0.50000E-03f, 0.70000E-03f,
1121 0.10000E-02f, 0.15000E-02f, 0.20000E-02f, 0.30000E-02f, 0.50000E-02f,
1122 0.70000E-02f, 0.10000E-01f, 0.15000E-01f, 0.20000E-01f, 0.50000E-01f,
1123 0.10000f , 0.20000f , 0.30000f , 0.40000f , 0.50000f ,
1124 1000.0f
1125};
1126// Fission cross sections
1127const G4float G4HadronCrossSections::csfiss[4][NFISS] = {
1128 {2600.0f , 2300.0f , 2300.0f , 2100.0f , 2000.0f , //1
1129 1950.0f , 1930.0f , 1900.0f , 1800.0f , 1600.0f ,
1130 2100.0f , 2300.0f , 0.00000f , 0.00000f , 0.00000f ,
1131 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
1132 0.00000f },
1133 {1850.0f , 1400.0f , 1300.0f , 1150.0f , 1100.0f , //2
1134 1200.0f , 1250.0f , 1300.0f , 1250.0f , 1150.0f ,
1135 1600.0f , 1900.0f , 0.00000f , 0.00000f , 0.00000f ,
1136 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
1137 0.00000f },
1138 {1700.0f , 1650.0f , 1650.0f , 1700.0f , 1700.0f , //3
1139 1800.0f , 1900.0f , 2000.0f , 1950.0f , 1800.0f ,
1140 2150.0f , 2450.0f , 0.00000f , 0.00000f , 0.00000f ,
1141 0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f ,
1142 0.00000f },
1143 {0.00000f , 0.00000f , 0.00000f , 0.00000f , 0.00000f , //4
1144 0.00000f , 250.00f , 550.00f , 550.00f , 550.00f ,
1145 550.00f , 550.00f , 1000.0f , 1400.0f , 1600.0f ,
1146 1500.0f , 1400.0f , 1300.0f , 1200.0f , 1100.0f ,
1147 1000.0f}
1148};
1149
1150const G4float G4HadronCrossSections::alpha[NPARTS] = {
1151 0.7f,0.7f,0.7f,0.7f,0.7f,0.7f,
1152 0.75f,0.75f,0.75f,
1153 0.76f,0.76f,0.76f,0.76f,
1154 0.685f,0.63f,0.685f,0.63f,0.685f,0.63f,
1155 0.685f,0.685f,0.685f,0.63f,0.63f,0.63f,0.685f,0.685f,0.63f,0.63f,
1156 0.7f,0.7f,0.7f,0.685f,0.63f,0.7f
1157};
1158
1159const G4float G4HadronCrossSections::alphac[TSIZE] = {
1160 1.2f,1.2f,1.2f,1.15f,0.90f,0.91f,0.98f,1.06f,1.10f,1.11f,
1161 1.10f,1.08f,1.05f,1.01f,0.985f,0.962f,0.945f,0.932f,
1162 0.925f,0.920f,0.920f,0.921f,0.922f,0.923f,0.928f,0.931f,
1163 0.940f,0.945f,0.950f,0.955f,0.958f,0.962f,0.965f,0.976f,
1164 0.982f,0.988f,0.992f,1.010f,1.020f,1.030f,1.040f
1165};
1166
1167const G4float G4HadronCrossSections::partel[NPARTS] = {
1168 0.f,0.f,0.f,0.f,0.f,0.f,
1169 1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,
1170 1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,
1171 1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f
1172};
1173
1174const G4float G4HadronCrossSections::partin[NPARTS] = {
1175 0.f,0.f,0.f,0.f,0.f,0.f,
1176 1.00f,0.00f,1.05f,1.20f,1.35f,1.30f,1.20f,1.00f,1.30f,
1177 1.00f,1.30f,1.00f,1.30f,1.00f,1.00f,1.00f,1.30f,1.30f,1.30f,
1178 1.00f,1.00f,1.30f,1.30f,1.00f,1.f,1.f,1.f,1.3f,1.f
1179};
1180
1181// Enabling flags for corrections for compounds
1182const G4int G4HadronCrossSections::icorr[NPARTS] = {
1183 1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1184 0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1,0,0
1185};
1186
1187// Enabling flags for interaction to occur
1188const G4int G4HadronCrossSections::intrc[NPARTS] = {
1189 0,0,0,0,0,0,
1190 1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,0,
1191 1,1,1,1,1,1,1,1,1,1,0
1192};
1193
1194const G4float G4HadronCrossSections::csa[4] = {1.f, 27.00f, 63.54f, 207.19f};
1195
1196const G4int G4HadronCrossSections::ipart2[7] = {9, 8, 7, 11, 10, 13, 12};
1197
1198G4HadronCrossSections::G4HadronCrossSections()
1199 : prevParticleDefinition(0),
1200 prevZZ(0), prevAA(0),
1201 prevKineticEnergy(DBL_MAX), lastEkx(0.), lastEkxPower(0.), verboseLevel(0)
1202{
1203 siginelastic = sigelastic = 0.0;
1204 correctInelasticNearZero = false;
1205 g4pow = G4Pow::GetInstance();
1206}
1207
1209{}
1210
1212{
1213 if (!instance) {
1215 instance = inst.Instance();
1216 }
1217 return instance;
1218}
1219
1221{
1222 return (GetParticleCode(aParticle) > 0);
1223}
1224
1227 G4int ZZ, G4int AA)
1228{
1229 if (particle->GetDefinition() != prevParticleDefinition ||
1230 particle->GetKineticEnergy() != prevKineticEnergy ||
1231 ZZ != prevZZ || AA != prevAA)
1232 { CalcScatteringCrossSections(particle, ZZ, AA); }
1233 if (verboseLevel > 1) {
1234 G4cout << " x-section inelastic(mb)= "
1235 << siginelastic/millibarn << G4endl;
1236 }
1237
1238 return siginelastic;
1239}
1240
1241
1244 G4int ZZ, G4int AA)
1245{
1246 if (particle->GetDefinition() != prevParticleDefinition ||
1247 particle->GetKineticEnergy() != prevKineticEnergy ||
1248 ZZ != prevZZ || AA != prevAA)
1249 { CalcScatteringCrossSections(particle, ZZ, AA); }
1250
1251 if (verboseLevel > 1) {
1252 G4cout << " x-section elastic(mb)= "
1253 << sigelastic/millibarn << G4endl;
1254 }
1255 return sigelastic;
1256}
1257
1258
1259// Method to calculate cross sections for all processes.
1260// To facilitate comparison with the original Fortran source, and because
1261// of the interdependence of the elastic and inelastic cross section
1262// calculations, this has not been split into separate processes.
1263
1264void
1265G4HadronCrossSections::CalcScatteringCrossSections(
1266 const G4DynamicParticle* aParticle,
1267 G4int ZZ, G4int AA)
1268{
1269 G4double sigel, sigin, sigtot;
1270 G4double xsecel, xsecin=0;
1271 xsecel = 0;
1272 G4double dx, dy, rc, rca, b;
1273 G4double crel, crin;
1274 G4double xspiel, xspiin;
1275
1276 G4int ipart = GetParticleCode(aParticle);
1277
1278 // Protection in the case "IsApplicable" is not invoked
1279 if ( ipart <= 0 ) {
1281 ed << aParticle->GetDefinition()->GetParticleName() << " NOT allowed ! ";
1282 G4Exception( "G4HadronCrossSections::CalcScatteringCrossSections(...)",
1283 "hadXsec001", JustWarning, ed );
1284 return;
1285 }
1286
1287 prevAA = AA;
1288 prevZZ = ZZ;
1289 prevParticleDefinition = aParticle->GetDefinition();
1290 prevKineticEnergy = aParticle->GetKineticEnergy();
1291
1292 if (verboseLevel > 1) {
1293 G4cout << "G4HadronCrossSections::ScatteringCrossSections: "
1294 << aParticle->GetDefinition()->GetParticleName()
1295 << " E(MeV)= " << aParticle->GetKineticEnergy()/MeV
1296 << " Z= " << ZZ << " A= " << AA << G4endl;
1297 }
1298
1299 // Ions...
1300
1301 if (ipart >= 30 && ipart <= 32) {
1302
1303 G4double apart=0;
1304 if (ipart == 30) apart = g4pow->Z13(2);
1305 else if (ipart == 31) apart = g4pow->Z13(3);
1306 else if (ipart == 32) apart = g4pow->Z13(4);
1307
1308 G4double term = apart + g4pow->Z13(AA);
1309 sigin = 49.*term*term;
1310 // Convert cross section from mb to default units
1311 siginelastic = sigin*millibarn;
1312 if(prevKineticEnergy < 6*MeV) siginelastic = 0;
1313 sigelastic = 0.;
1314 return;
1315 }
1316
1317 G4double ek = prevKineticEnergy/GeV;
1318
1319// Low energy neutrons...
1320
1321 if (ipart == 16 && ek <= 0.0327) {
1322
1323 // G4int je2 = NELAB;
1324 // for (G4int j = 2; j <= NELAB; j++) {
1325 // if (ek < elab[j - 1]) {
1326 // je2 = j;
1327 // break;
1328 // }
1329 // }
1330 // G4int je1 = je2 -1;
1331 // je1 = je1 - 1; // For array indexing
1332 // je2 = je2 - 1; // For array indexing
1333
1334 G4int je1 = 0;
1335 G4int je2 = NELAB - 1;
1336 do {
1337 G4int midBin = (je1 + je2)/2;
1338 if (ek < elab[midBin])
1339 je2 = midBin;
1340 else
1341 je1 = midBin;
1342 } while (je2 - je1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */
1343
1344 G4double delab = elab[je2] - elab[je1];
1345
1346 // G4int ja2 = NCNLW;
1347 // for (G4int jj = 2; jj <= NCNLW; jj++) {
1348 // if (a < cnlwat[jj - 1]) {
1349 // ja2 = jj;
1350 // break;
1351 // }
1352 // }
1353 // G4int ja1 = ja2 - 1;
1354 // ja1 = ja1 - 1; // For array indexing
1355 // ja2 = ja2 - 1; // For array indexing
1356
1357 G4int ja1 = 0;
1358 G4int ja2 = NCNLW - 1;
1359 do {
1360 G4int midBin = (ja1 + ja2)/2;
1361 if (AA < cnlwat[midBin])
1362 ja2 = midBin;
1363 else
1364 ja1 = midBin;
1365 } while (ja2 - ja1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */
1366
1367 G4double dnlwat = cnlwat[ja2] - cnlwat[ja1];
1368
1369// Elastic cross section:
1370 // E interpolation or extrapolation at JA1
1371 dy = cnlwel[ja1][je2] - cnlwel[ja1][je1];
1372 G4double rce = dy/delab;
1373 // A interpolation or extrapolation at JE1
1374 dy = cnlwel[ja2][je1] - cnlwel[ja1][je1];
1375 rca = dy/dnlwat;
1376 b = cnlwel[ja1][je1] - rce*elab[je1] - rca*cnlwat[ja1];
1377 sigelastic = rce*ek + rca*AA + b;
1378// Inelastic cross section:
1379 // E interpolation or extrapolation at JA1
1380 dy = cnlwin[ja1][je2] - cnlwin[ja1][je1];
1381 rce = dy/delab;
1382 // A interpolation or extrapolation at JE1
1383 dy = cnlwin[ja2][je1] - cnlwin[ja1][je1];
1384 rca = dy/dnlwat;
1385 b = cnlwin[ja1][je1] - rce*elab[je1] - rca*cnlwat[ja1];
1386 siginelastic = rce*ek + rca*AA + b;
1387 // Convert cross sections from mb to default units
1388 sigelastic = sigelastic*millibarn;
1389 siginelastic = siginelastic*millibarn;
1390 return;
1391 }
1392
1393// Remaining particles...
1394
1395// Get momentum bin
1396 G4double p = aParticle->GetTotalMomentum()/GeV;
1397
1398 // G4int j = TSIZE - 1;
1399 // for (G4int i = 2; i <= TSIZE; i++) {
1400 // if (p < plab[i]) {
1401 // j = i - 1;
1402 // break;
1403 // }
1404 // }
1405 // j = j - 1; // For array indexing
1406
1407 G4int je1 = 0;
1408 G4int je2 = TSIZE - 1;
1409 do {
1410 G4int midBin = (je1 + je2)/2;
1411 if (p < plab[midBin])
1412 je2 = midBin;
1413 else
1414 je1 = midBin;
1415 } while (je2 - je1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */
1416
1417 G4int ipart1 = ipart - 1; // For array indexing
1418
1419// Get cross sections for scattering on free protons
1420 dx = plab[je2] - plab[je1];
1421// Elastic cross section
1422 dy = csel[ipart1][je2] - csel[ipart1][je1];
1423 rc = dy/dx;
1424 b = csel[ipart1][je1] - rc*plab[je1];
1425 sigel = rc*p + b;
1426// Inelastic cross section
1427 dy = csin[ipart1][je2] - csin[ipart1][je1];
1428 rc = dy/dx;
1429 b = csin[ipart1][je1] - rc*plab[je1];
1430 sigin = rc*p + b;
1431 if (verboseLevel > 1) {
1432 G4cout << "sigel " << sigel << G4endl;
1433 G4cout << "sigin " << sigin << G4endl;
1434 }
1435 G4double alph = alpha[ipart1];
1436 if (ipart < 14) {
1437 dy = alphac[je2] - alphac[je1];
1438 rc = dy/dx;
1439 b = alphac[je1] - rc*plab[je1];
1440 G4double corfac = rc*p + b;
1441 alph = alph*corfac;
1442 G4int ipart3 = ipart2[ipart - 7];
1443 ipart3 = ipart3 - 1; // For array indexing
1444 // Elastic cross section
1445 dy = csel[ipart3][je2] - csel[ipart3][je1];
1446 rc = dy/dx;
1447 b = csel[ipart3][je1] - rc*plab[je1];
1448 xsecel = rc*p + b;
1449 // Inelastic cross section
1450 dy = csin[ipart3][je2] - csin[ipart3][je1];
1451 rc = dy/dx;
1452 b = csin[ipart3][je1] - rc*plab[je1];
1453 xsecin = rc*p + b;
1454 }
1455
1456// A-dependence from parameterization...
1457
1458 if (AA >= 2) {
1459
1460 crel = 1.;
1461 crin = 1.;
1462
1463 G4int i = 2;
1464 if (AA < 50) i = 1;
1465 else if (AA > 100) i = 3;
1466
1467// Protons and neutrons
1468 if (ipart == 14 || ipart == 16) {
1469 dy = cspnel[i - 1][je2] - cspnel[i - 1][je1];
1470 rc = dy/dx;
1471 b = cspnel[i - 1][je1] - rc*plab[je1];
1472 xsecel = rc*p + b;
1473 dy = cspnin[i - 1][je2] - cspnin[i - 1][je1];
1474 rc = dy/dx;
1475 b = cspnin[i - 1][je1] - rc*plab[je1];
1476 xsecin = rc*p + b;
1477 // The following is a first-order correction to Gheisha (GHESIG)
1478 // behaviour, where for the lighter elements the inelastic cross
1479 // section is not realistic for particles in the first momentum
1480 // bin. In the first momentum bin, it better to interpolate
1481 // in K.E. Subject to further improvements.
1482 if (correctInelasticNearZero && je1 == 0 && i <= 3) {
1483 G4double m0 = aParticle->GetMass()/GeV;
1484 G4double T = std::sqrt(m0*m0 + p*p) - m0;
1485 dx = std::sqrt(m0*m0 + plab[1]*plab[1]) - m0;
1486 rc = dy/dx;
1487 xsecin = rc*T + b;
1488 }
1489
1490 if (sigel >= 0.001)
1491 crel = xsecel/(0.36*sigel*G4Pow::GetInstance()->powA(G4double(csa[i]), 1.17));
1492 sigtot = sigel + sigin;
1493 if (sigtot >= 0.001)
1494 crin = xsecin/(sigtot*G4Pow::GetInstance()->powA(G4double(csa[i]), alph));
1495 }
1496
1497 else if (ipart < 15) {
1498// Calculate correction factors (crel, crin) from values
1499// on Al, Cu, Pb. Note that data is only available for pions and protons.
1500 G4double wgch = 0.5;
1501 if (AA < 20) { wgch = 0.5 + 0.5*G4Exp(-G4double(AA - 1)); }
1502 sigel = wgch*sigel + (1. - wgch)*xsecel;
1503 sigin = wgch*sigin + (1. - wgch)*xsecin;
1504
1505// This section not for kaons
1506 if (ipart < 10) {
1507 dy = cspiel[i - 1][je2] - cspiel[i - 1][je1];
1508 rc = dy/dx;
1509 b = cspiel[i - 1][je1] - rc*plab[je1];
1510 xspiel = rc*p + b;
1511 dy = cspiin[i - 1][je2] - cspiin[i - 1][je1];
1512 rc = dy/dx;
1513 b = cspiin[i - 1][je1] - rc*plab[je1];
1514 xspiin = rc*p + b;
1515 if (verboseLevel > 1) {
1516 G4cout << "xspiel " << xspiel << G4endl;
1517 G4cout << "xspiin " << xspiin << G4endl;
1518 }
1519 if (sigel >= 0.001)
1520 crel = xspiel/(0.36*sigel*G4Pow::GetInstance()->powA(G4double(csa[i]),1.17));
1521 sigtot = sigel + sigin;
1522 if (sigtot >= 0.001)
1523 crin = xspiin/(sigtot*G4Pow::GetInstance()->powA(G4double(csa[i]), alph));
1524 }
1525 }
1526
1527// Apply correction factors
1528 sigin = crin*(sigin + sigel)*g4pow->powZ(AA, alph);
1529 sigel = crel*0.36*sigel*g4pow->powZ(AA, 1.17);
1530 sigel = sigel*partel[ipart1];
1531 sigin = sigin*partin[ipart1];
1532 }
1533
1534// Correction factor for high (p > 100 GeV/c) energies:
1535 G4double corh = 1.;
1536 if (p > 100.) corh = 0.1085736156*G4Log(p) + 0.5;
1537
1538 sigel = corh*sigel;
1539 sigin = corh*sigin;
1540 // Convert cross section from mb to default units
1541 sigelastic = sigel*millibarn;
1542 siginelastic = sigin*millibarn;
1543
1544 return;
1545}
1546
1547
1550 G4int ZZ)
1551{
1552 if (GetParticleCode(aParticle) != 16) return 0.;
1553 G4double ek = aParticle->GetKineticEnergy()/GeV;
1554 if (ek > 0.0327) { return 0.; }
1555
1556 G4double ekx = std::max(ek, 1.e-9);
1557 if (ekx != lastEkx) {
1558 lastEkx = ekx;
1559 lastEkxPower = G4Pow::GetInstance()->powA(ekx*1.e6, 0.577);
1560 }
1561
1562 G4int izno = ZZ;
1563 if (izno > 100) izno = 100; // Not in GHESIG
1564 izno = izno - 1; // For array indexing
1565 G4double sigcap = 11.12*cscap[izno]/lastEkxPower;
1566
1567 // Convert cross section from mb to default units
1568 sigcap = sigcap*millibarn;
1569 return sigcap;
1570}
1571
1572
1575 G4int ZZ, G4int AA)
1576{
1577 if (AA < 230) return 0;
1578
1579 G4double ek = aParticle->GetKineticEnergy()/GeV;
1580
1581 G4int ie1 = 0;
1582 G4int ie2 = NFISS - 1;
1583 do {
1584 G4int midBin = (ie1 + ie2)/2;
1585 if (ek < ekfiss[midBin])
1586 ie2 = midBin;
1587 else
1588 ie1 = midBin;
1589 } while (ie2 - ie1 > 1); /* Loop checking, 08.01.2016, W. Pokorski */
1590 G4int i = ie2;
1591 if (ek < ekfiss[0]) i = 0;
1592
1593 G4int j = 4;
1594 if (ek <= 0.01) {
1595 if (ZZ == 92 && AA == 233) j = 1;
1596 else if (ZZ == 92 && AA == 235) j = 2;
1597 else if (ZZ == 94 && AA == 239) j = 3;
1598 }
1599
1600 G4double z43ba;
1601 if (j == 4) {
1602 z43ba = ZZ*g4pow->Z13(ZZ)/G4double(AA);
1603 z43ba = std::max(-67. + 38.7*z43ba, 0.);
1604 } else {
1605 z43ba = 1.;
1606 }
1607 j = j - 1; // For array indexing
1608
1609 G4double sigfiss = csfiss[j][i]*z43ba;
1610 sigfiss = sigfiss*millibarn;
1611 return sigfiss;
1612}
1613
1614
1615G4int
1616G4HadronCrossSections::GetParticleCode(const G4DynamicParticle* aParticle)
1617{
1618 // Returns GHEISHA code for particle
1619 // Case entries ordered by estimated frequency
1620
1621 G4int ipart = 0;
1622
1623 switch( aParticle->GetPDGcode()) {
1624 case 111:
1625 ipart = 8; // pi0
1626 break;
1627 case 211:
1628 ipart = 7; // pi+
1629 break;
1630 case -211:
1631 ipart = 9; // pi-
1632 break;
1633 case 2112:
1634 ipart = 16; // neutron
1635 break;
1636 case 2212:
1637 ipart = 14; // proton
1638 break;
1639 case 321:
1640 ipart = 10; // K+
1641 break;
1642 case -321:
1643 ipart = 13; // K-
1644 break;
1645 case 130:
1646 ipart = 12; // K0L
1647 break;
1648 case 310:
1649 ipart = 11; // K0S
1650 break;
1651 case 1000010020:
1652 ipart = 30; // deuteron
1653 break;
1654 case 1000010030:
1655 ipart = 31; // triton
1656 break;
1657 case 1000020040:
1658 ipart = 32; // alpha
1659 break;
1660 case 3122:
1661 ipart = 18; // lambda
1662 break;
1663 case -2112:
1664 ipart = 17; // anti-neutron
1665 break;
1666 case -2212:
1667 ipart = 15; // anti-proton
1668 break;
1669 case -3122:
1670 ipart = 19; // anti-lambda
1671 break;
1672 case 3222:
1673 ipart = 20; // sigma+
1674 break;
1675 case 3212:
1676 ipart = 21; // sigma0
1677 break;
1678 case 3112:
1679 ipart = 22; // sigma-
1680 break;
1681 case 3322:
1682 ipart = 26; // xi0
1683 break;
1684 case 3312:
1685 ipart = 27; // xi-
1686 break;
1687 case 3334:
1688 ipart = 33; // omega-
1689 break;
1690 case -3222:
1691 ipart = 23; // anti-sigma+
1692 break;
1693 case -3212:
1694 ipart = 24; // anti-sigma0
1695 break;
1696 case -3112:
1697 ipart = 25; // anti-sigma-
1698 break;
1699 case -3322:
1700 ipart = 28; // anti-xi0
1701 break;
1702 case -3312:
1703 ipart = 29; // anti-xi-
1704 break;
1705 case -3334:
1706 ipart = 34; // anti-omega-
1707 break;
1708 }
1709
1710 return ipart;
1711}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
G4double G4Log(G4double x)
Definition: G4Log.hh:226
float G4float
Definition: G4Types.hh:84
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4double GetMass() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetTotalMomentum() const
G4int GetPDGcode() const
G4bool IsApplicable(const G4DynamicParticle *aParticle)
G4double GetElasticCrossSection(const G4DynamicParticle *, G4int, G4int)
G4double GetFissionCrossSection(const G4DynamicParticle *, G4int, G4int)
static G4HadronCrossSections * Instance()
G4double GetInelasticCrossSection(const G4DynamicParticle *, G4int, G4int)
G4double GetCaptureCrossSection(const G4DynamicParticle *, G4int)
const G4String & GetParticleName() const
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double powZ(G4int Z, G4double y) const
Definition: G4Pow.hh:225
G4double Z13(G4int Z) const
Definition: G4Pow.hh:123
G4double powA(G4double A, G4double y) const
Definition: G4Pow.hh:230
#define DBL_MAX
Definition: templates.hh:62
#define G4ThreadLocal
Definition: tls.hh:77