ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4HadronCrossSections.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4HadronCrossSections.cc
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 
37 #include "G4HadronCrossSections.hh"
38 #include "G4ios.hh"
39 #include "G4SystemOfUnits.hh"
40 #include "G4Pow.hh"
41 #include "G4Threading.hh"
42 
43 // Initialize static pointer for singleton instance
45 
46 // Cross section tables from G3.21/GHEISHA routine GHESIG
47 
48 //---------------------------------------------------------------------
49 // Lab Momentum in GeV/c
50 //---------------------------------------------------------------------
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 
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 
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 
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 
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 
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 
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 //---------------------------------------------------------------------
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
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
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
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
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
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
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 
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 
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 
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 
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
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
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 
1194 const G4float G4HadronCrossSections::csa[4] = {1.f, 27.00f, 63.54f, 207.19f};
1195 
1196 const G4int G4HadronCrossSections::ipart2[7] = {9, 8, 7, 11, 10, 13, 12};
1197 
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;
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 
1225 G4double
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 
1242 G4double
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 
1264 void
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 
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
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 
1548 G4double
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 
1573 G4double
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 
1615 G4int
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 }