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