Files
geant4/source/processes/hadronic/cross_sections/src/G4HadronCrossSections.cc
T
2016-06-01 15:25:35 +02:00

1597 lines
79 KiB
C++

// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4HadronCrossSections.cc,v 2.5 1998/11/07 03:27:53 fjones Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// G4 Hadron Physics class G4HadronCrossSections
// F.W. Jones, TRIUMF, 03-DEC-96
//
// This class encapsulates cross section data and calculations
// from the Geant3/Gheisha routine GHESIG.
// The overloaded method MakePhysicsVector can be used to Generate
// Physics Tables for different processes.
//
// Note: this is implemented as a SINGLETON class
//
// 27-MAR-97 FWJ: first version for Alpha release
// 14-APR-97 FWJ: class name changed from G4LCrossSectionData
// to G4HadronicCrossSections
// 23-Apr-97 Johannes Peter Wellisch: debugging, add the residual particles
// 23-MAY-97 FWJ: corrected problem with neutron cross sections
// 20-JUN-97 FWJ: added some missing elastic data (e.g. K+) and
// fixed a momentum/energy units problem in the physics vectors
// 14-APR-98 FWJ: rewritten as class G4HadronCrossSections
// and adapted to G4CrossSectionDataSet/DataStore class design.
// 25-JUN-98 FWJ: optimised bin selection.
// 06-NOV-98 FWJ: added first-order correction for low-energy
// inelastic cross sections
//
#include "G4HadronCrossSections.hh"
#include "G4ios.hh"
// Initialize static pointer for singleton instance
G4HadronCrossSections*
G4HadronCrossSections::theInstance = 0;
// Cross section tables from G3.21/GHEISHA routine GHESIG
//---------------------------------------------------------------------
// Lab Momentum in GeV/c
//---------------------------------------------------------------------
G4float G4HadronCrossSections::plab[TSIZE] = {
0.00000E+00 , 0.10000 , 0.15000 , 0.20000 , 0.25000 ,
0.30000 , 0.35000 , 0.40000 , 0.45000 , 0.50000 ,
0.55000 , 0.60000 , 0.65000 , 0.70000 , 0.75000 ,
0.80000 , 0.85000 , 0.90000 , 0.95000 , 1.0000 ,
1.1000 , 1.2000 , 1.3000 , 1.4000 , 1.5000 ,
1.6000 , 1.8000 , 2.0000 , 2.2000 , 2.4000 ,
2.6000 , 2.8000 , 3.0000 , 4.0000 , 5.0000 ,
6.0000 , 8.0000 , 10.000 , 20.000 , 100.00 ,
1000.0
};
//---------------------------------------------------------------------
// Elastic scattering on free protons
//---------------------------------------------------------------------
G4float G4HadronCrossSections::csel[PSIZE][TSIZE] = {
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //1
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //2
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //3
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //4
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //5
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //6
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
// Elastic cross section for piplus - p
0.00000E+00, 6.0000 , 20.000 , 71.000 , 155.00 , //7
195.00 , 130.00 , 78.000 , 60.000 , 32.000 ,
23.500 , 18.500 , 15.000 , 12.500 , 10.000 ,
9.1000 , 8.6000 , 8.8000 , 9.5000 , 10.600 ,
13.000 , 15.500 , 17.100 , 17.200 , 16.200 ,
15.000 , 12.300 , 10.200 , 9.0000 , 8.0000 ,
7.3000 , 6.8000 , 6.5000 , 5.8000 , 5.4000 ,
5.2000 , 5.0000 , 4.9000 , 3.8000 , 3.2000 ,
3.5000,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //8
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
// Elastic cross section for piminus - p
0.00000E+00, 1.0000 , 3.0000 , 8.0000 , 18.000 , //9
25.000 , 27.500 , 12.300 , 10.600 , 11.000 ,
12.500 , 14.500 , 17.000 , 19.400 , 19.800 ,
16.800 , 14.000 , 14.800 , 20.000 , 26.100 ,
19.500 , 15.000 , 12.800 , 11.500 , 10.500 ,
9.8000 , 8.8000 , 8.2000 , 7.8000 , 7.5000 ,
7.2000 , 7.0000 , 6.8000 , 6.1000 , 5.7000 ,
5.4000 , 4.9000 , 4.6000 , 4.0000 , 3.3000 ,
3.5000,
10.000 , 11.200 , 11.300 , 11.400 , 11.500 , //10
11.600 , 11.800 , 12.000 , 12.100 , 12.200 ,
12.300 , 12.400 , 12.500 , 12.500 , 12.500 ,
12.400 , 12.300 , 12.200 , 12.000 , 11.800 ,
11.200 , 11.500 , 9.9000 , 9.4000 , 8.8000 ,
8.4000 , 7.5000 , 6.9000 , 6.3000 , 5.9000 ,
5.5000 , 5.2000 , 5.0000 , 4.0000 , 3.5000 ,
3.3000 , 3.1000 , 3.1000 , 3.0000 , 2.5000 ,
3.0000,
10.000 , 11.200 , 11.300 , 11.400 , 11.500 , //11
11.600 , 11.800 , 12.000 , 12.100 , 12.200 ,
12.300 , 12.400 , 12.500 , 12.500 , 12.500 ,
12.400 , 12.300 , 12.200 , 12.000 , 11.800 ,
11.200 , 11.500 , 9.9000 , 9.4000 , 8.8000 ,
8.4000 , 7.5000 , 6.9000 , 6.3000 , 5.9000 ,
5.5000 , 5.2000 , 5.0000 , 4.0000 , 3.5000 ,
3.3000 , 3.1000 , 3.1000 , 3.0000 , 2.5000 ,
3.0000,
160.83 , 82.800 , 58.575 , 43.683 , 34.792 , //12
28.650 , 24.367 , 20.917 , 18.192 , 16.300 ,
14.608 , 13.017 , 12.250 , 11.700 , 12.017 ,
14.075 , 15.842 , 16.433 , 16.042 , 15.008 ,
12.575 , 10.708 , 9.2000 , 8.0167 , 7.2833 ,
7.0750 , 6.6333 , 6.1250 , 5.6583 , 5.2750 ,
4.9333 , 4.6250 , 4.4583 , 3.7333 , 3.3833 ,
3.1833 , 2.9833 , 2.7500 , 2.3667 , 2.2000 ,
2.6000,
300.00 , 140.00 , 97.000 , 70.000 , 55.000 , //13
45.000 , 37.000 , 31.000 , 26.000 , 23.000 ,
20.000 , 17.000 , 15.500 , 14.500 , 14.700 ,
18.500 , 22.000 , 23.000 , 22.500 , 20.700 ,
16.500 , 14.000 , 11.500 , 9.6000 , 8.6000 ,
8.5000 , 8.3000 , 7.6000 , 7.0000 , 6.4000 ,
5.9000 , 5.5000 , 5.3000 , 4.4000 , 4.1000 ,
3.9000 , 3.7000 , 3.3000 , 2.6000 , 2.5000 ,
3.0000,
// Elastic cross section for p-p
1100.0 , 115.00 , 105.00 , 100.00 , 56.000 , //14
40.000 , 27.000 , 22.000 , 21.000 , 20.000 ,
20.000 , 20.000 , 20.500 , 21.000 , 22.000 ,
23.000 , 24.000 , 24.000 , 24.400 , 24.500 ,
25.000 , 25.500 , 26.000 , 26.500 , 27.000 ,
27.000 , 26.000 , 23.000 , 21.500 , 20.000 ,
19.000 , 18.000 , 17.000 , 13.000 , 11.500 ,
10.300 , 9.4000 , 9.0000 , 8.8000 , 7.0000 ,
7.5000,
200.00 , 163.00 , 141.00 , 120.00 , 111.00 , //15
99.500 , 92.500 , 86.500 , 82.000 , 78.000 ,
74.000 , 71.000 , 67.500 , 65.000 , 62.500 ,
59.700 , 58.100 , 56.300 , 54.700 , 52.700 ,
50.000 , 48.400 , 47.000 , 46.000 , 45.200 ,
42.800 , 39.200 , 36.300 , 32.800 , 30.400 ,
28.100 , 26.300 , 24.500 , 19.250 , 16.840 ,
14.600 , 12.340 , 11.210 , 8.8500 , 7.5000 ,
7.5000 ,
4200.0 , 440.00 , 420.00 , 400.00 , 230.00 , //16
160.00 , 105.00 , 80.000 , 62.000 , 50.000 ,
45.000 , 41.000 , 38.000 , 36.000 , 35.000 ,
34.000 , 33.000 , 32.000 , 31.500 , 31.000 ,
30.500 , 30.000 , 29.500 , 29.000 , 28.500 ,
28.000 , 26.000 , 23.000 , 21.500 , 20.000 ,
19.000 , 18.000 , 17.000 , 13.000 , 11.500 ,
10.300 , 9.4000 , 9.0000 , 8.8000 , 7.0000 ,
7.5000 ,
185.88 , 133.23 , 119.37 , 102.86 , 93.102 , //17
82.752 , 76.205 , 71.008 , 67.366 , 64.096 ,
60.891 , 58.501 , 55.735 , 53.773 , 51.839 ,
49.671 , 48.485 , 47.045 , 45.803 , 44.306 ,
42.623 , 41.786 , 41.115 , 40.630 , 40.129 ,
38.242 , 35.233 , 32.662 , 29.639 , 27.573 ,
25.536 , 23.948 , 22.356 , 17.723 , 15.614 ,
13.653 , 11.675 , 10.653 , 8.6198 , 7.4464 ,
7.4821 ,
1100.0 , 115.00 , 105.00 , 100.00 , 56.000 , //18
40.000 , 27.000 , 22.000 , 21.000 , 20.000 ,
20.000 , 19.067 , 19.333 , 19.500 , 19.833 ,
20.567 , 21.800 , 22.900 , 23.869 , 23.809 ,
22.161 , 21.488 , 19.732 , 19.433 , 19.345 ,
19.029 , 18.121 , 16.280 , 15.258 , 14.280 ,
13.644 , 12.963 , 12.316 , 9.5333 , 8.4333 ,
7.5728 , 6.9696 , 6.7518 , 6.6175 , 5.6000 ,
6.1145 ,
157.65 , 73.701 , 76.096 , 68.571 , 57.305 , //19
49.257 , 43.616 , 40.024 , 38.098 , 36.287 ,
34.674 , 33.105 , 31.712 , 30.685 , 29.613 ,
28.602 , 28.336 , 28.075 , 27.786 , 27.215 ,
26.380 , 26.146 , 25.108 , 24.783 , 24.360 ,
23.219 , 21.431 , 20.095 , 18.382 , 17.267 ,
16.100 , 15.175 , 14.271 , 11.573 , 10.305 ,
9.1471 , 8.0149 , 7.4349 , 6.2499 , 5.8928 ,
6.0774 ,
1100.0 , 115.00 , 105.00 , 100.00 , 56.000 , //20
40.000 , 27.000 , 22.000 , 21.000 , 20.000 ,
20.000 , 19.067 , 19.333 , 19.500 , 19.833 ,
20.567 , 21.800 , 22.900 , 23.869 , 23.809 ,
22.161 , 21.488 , 19.732 , 19.433 , 19.345 ,
19.029 , 18.121 , 16.280 , 15.258 , 14.280 ,
13.644 , 12.963 , 12.316 , 9.5333 , 8.4333 ,
7.5728 , 6.9696 , 6.7518 , 6.6175 , 5.6000 ,
6.1145 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //21
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
1100.0 , 115.00 , 105.00 , 100.00 , 56.000 , //22
40.000 , 27.000 , 22.000 , 21.000 , 20.000 ,
20.000 , 19.067 , 19.333 , 19.500 , 19.833 ,
20.567 , 21.800 , 22.900 , 23.869 , 23.809 ,
22.161 , 21.488 , 19.732 , 19.433 , 19.345 ,
19.029 , 18.121 , 16.280 , 15.258 , 14.280 ,
13.644 , 12.963 , 12.316 , 9.5333 , 8.4333 ,
7.5728 , 6.9696 , 6.7518 , 6.6175 , 5.6000 ,
6.1145 ,
185.88 , 133.23 , 119.37 , 102.86 , 93.102 , //23
82.752 , 76.205 , 71.008 , 67.366 , 64.096 ,
60.891 , 58.104 , 55.241 , 53.140 , 50.934 ,
48.660 , 47.566 , 46.585 , 45.581 , 44.003 ,
41.134 , 39.374 , 36.878 , 35.523 , 34.503 ,
32.334 , 29.365 , 27.370 , 24.705 , 22.921 ,
21.229 , 19.879 , 18.559 , 14.625 , 12.758 ,
11.041 , 9.3440 , 8.5484 , 6.7104 , 6.0000 ,
6.1131 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //24
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
157.65 , 73.701 , 76.096 , 68.571 , 57.305 , //25
49.257 , 43.616 , 40.024 , 38.098 , 36.287 ,
34.674 , 33.105 , 31.712 , 30.685 , 29.613 ,
28.602 , 28.336 , 28.075 , 27.786 , 27.215 ,
26.380 , 26.146 , 25.108 , 24.783 , 24.360 ,
23.219 , 21.431 , 20.095 , 18.382 , 17.267 ,
16.100 , 15.175 , 14.271 , 11.573 , 10.305 ,
9.1471 , 8.0149 , 7.4349 , 6.2499 , 5.8928 ,
6.0774 ,
1100.0 , 115.00 , 105.00 , 100.00 , 56.000 , //26
40.000 , 27.000 , 22.000 , 21.000 , 20.000 ,
20.000 , 18.133 , 18.167 , 18.000 , 17.667 ,
18.133 , 19.600 , 21.800 , 23.338 , 23.118 ,
19.323 , 17.476 , 13.464 , 12.367 , 11.691 ,
11.057 , 10.242 , 9.5593 , 9.0151 , 8.5591 ,
8.2884 , 7.9253 , 7.6311 , 6.0667 , 5.3667 ,
4.8456 , 4.5392 , 4.5036 , 4.4351 , 4.2000 ,
4.7289 ,
1100.0 , 115.00 , 105.00 , 100.00 , 56.000 , //27
40.000 , 27.000 , 22.000 , 21.000 , 20.000 ,
20.000 , 18.133 , 18.167 , 18.000 , 17.667 ,
18.133 , 19.600 , 21.800 , 23.338 , 23.118 ,
19.323 , 17.476 , 13.464 , 12.367 , 11.691 ,
11.057 , 10.242 , 9.5593 , 9.0151 , 8.5591 ,
8.2884 , 7.9253 , 7.6311 , 6.0667 , 5.3667 ,
4.8456 , 4.5392 , 4.5036 , 4.4351 , 4.2000 ,
4.7289 ,
157.65 , 73.701 , 76.096 , 68.571 , 57.305 , //28
49.257 , 43.616 , 40.024 , 38.098 , 36.287 ,
34.674 , 32.708 , 31.218 , 30.052 , 28.707 ,
27.591 , 27.417 , 27.615 , 27.564 , 26.913 ,
24.891 , 23.734 , 20.871 , 19.677 , 18.734 ,
17.311 , 15.563 , 14.803 , 13.448 , 12.615 ,
11.794 , 11.106 , 10.474 , 8.4745 , 7.4498 ,
6.5350 , 5.6835 , 5.3300 , 4.3406 , 4.4464 ,
4.7083 ,
143.53 , 43.935 , 54.462 , 51.429 , 39.407 , //29
32.510 , 27.321 , 24.532 , 23.465 , 22.383 ,
21.566 , 20.209 , 19.453 , 18.825 , 18.046 ,
17.562 , 17.802 , 18.360 , 18.667 , 18.519 ,
17.514 , 17.120 , 14.985 , 14.306 , 13.663 ,
12.753 , 11.596 , 11.165 , 10.287 , 9.7882 ,
9.2294 , 8.7539 , 8.3300 , 6.9480 , 6.2234 ,
5.5881 , 5.0189 , 4.7733 , 4.1104 , 4.3929 ,
4.6905 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //30
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //31
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //32
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
1100.0 , 115.00 , 105.00 , 100.00 , 56.000 , //33
40.000 , 27.000 , 22.000 , 21.000 , 20.000 ,
20.000 , 18.133 , 18.167 , 18.000 , 17.667 ,
18.133 , 19.600 , 21.800 , 23.338 , 23.118 ,
19.323 , 17.476 , 13.464 , 12.367 , 11.691 ,
11.057 , 10.242 , 9.5593 , 9.0151 , 8.5591 ,
8.2884 , 7.9253 , 7.6311 , 6.0667 , 5.3667 ,
4.8456 , 4.5392 , 4.5036 , 4.4351 , 4.2000 ,
4.7289 ,
143.53 , 43.935 , 54.462 , 51.429 , 39.407 , //34
32.510 , 27.321 , 24.532 , 23.465 , 22.383 ,
21.566 , 20.209 , 19.453 , 18.825 , 18.046 ,
17.562 , 17.802 , 18.360 , 18.667 , 18.519 ,
17.514 , 17.120 , 14.985 , 14.306 , 13.663 ,
12.753 , 11.596 , 11.165 , 10.287 , 9.7882 ,
9.2294 , 8.7539 , 8.3300 , 6.9480 , 6.2234 ,
5.5881 , 5.0189 , 4.7733 , 4.1104 , 4.3929 ,
4.6905 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //35
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00
};
//---------------------------------------------------------------------
// Inelastic scattering on free protons
//---------------------------------------------------------------------
G4float G4HadronCrossSections::csin[PSIZE][TSIZE] = {
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //1
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //2
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //3
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //4
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //5
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //6
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
// Inelastic cross section for piplus - p
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //7
0.00000E+00, 0.00000E+00, 0.50000 , 1.2000 , 1.7000 ,
2.2500 , 3.0000 , 3.6000 , 4.5000 , 5.4000 ,
6.3000 , 8.6000 , 9.0000 , 10.000 , 11.500 ,
14.000 , 17.000 , 19.500 , 22.000 , 24.000 ,
21.500 , 18.500 , 19.000 , 20.500 , 22.200 ,
23.000 , 23.300 , 23.000 , 21.000 , 20.500 ,
20.200 , 20.100 , 20.000 , 20.000 , 20.000 ,
21.000,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //8
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
// Inelastic cross section for piminus - p
0.00000E+00, 3.0000 , 9.2000 , 20.500 , 36.500 , //9
45.000 , 28.000 , 19.500 , 15.500 , 14.200 ,
15.500 , 17.500 , 20.000 , 23.000 , 26.000 ,
20.000 , 23.000 , 26.500 , 32.000 , 35.000 ,
28.500 , 22.000 , 22.500 , 23.500 , 24.000 ,
24.500 , 26.000 , 27.500 , 27.500 , 27.000 ,
26.500 , 25.500 , 25.000 , 23.000 , 22.500 ,
22.200 , 22.000 , 22.000 , 21.200 , 20.700 ,
21.000 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //10
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.50000 , 1.5000 , 2.7000 , 3.8000 , 4.8000 ,
6.5000 , 7.6000 , 8.4000 , 9.0000 , 9.4000 ,
9.8000 , 10.500 , 11.000 , 11.500 , 11.800 ,
12.200 , 12.400 , 12.600 , 13.200 , 13.500 ,
13.700 , 14.000 , 14.200 , 14.500 , 16.400 ,
17.000 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //11
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.50000 , 1.5000 , 2.7000 , 3.8000 , 4.8000 ,
6.5000 , 7.6000 , 8.4000 , 9.0000 , 9.4000 ,
9.8000 , 10.500 , 11.000 , 11.500 , 11.800 ,
12.200 , 12.400 , 12.600 , 13.200 , 13.500 ,
13.700 , 14.000 , 14.200 , 14.500 , 16.400 ,
17.000 ,
266.67 , 133.33 , 83.333 , 57.083 , 44.500 , //12
33.250 , 24.583 , 20.833 , 18.333 , 16.083 ,
15.625 , 15.083 , 14.833 , 15.083 , 15.833 ,
17.042 , 18.958 , 20.758 , 22.533 , 22.825 ,
21.250 , 18.567 , 17.767 , 18.100 , 19.933 ,
20.783 , 21.225 , 21.000 , 20.558 , 20.258 ,
20.017 , 19.767 , 19.600 , 19.183 , 18.850 ,
18.575 , 18.350 , 18.175 , 17.808 , 17.558 ,
19.250 ,
400.00 , 200.00 , 120.00 , 81.000 , 62.000 , //13
47.000 , 35.000 , 28.000 , 24.000 , 21.000 ,
19.500 , 19.000 , 18.800 , 19.000 , 20.000 ,
21.000 , 23.000 , 25.000 , 27.000 , 27.500 ,
25.500 , 22.000 , 20.800 , 21.000 , 23.000 ,
24.000 , 24.000 , 23.800 , 23.000 , 22.500 ,
22.000 , 21.600 , 21.400 , 21.000 , 20.500 ,
20.200 , 19.800 , 19.500 , 18.600 , 17.500 ,
20.000 ,
// Inelastic cross section for p - p
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //14
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.10000 , 1.5000 ,
7.0000 , 12.000 , 17.000 , 19.500 , 20.500 ,
22.000 , 23.500 , 24.800 , 25.800 , 26.500 ,
27.000 , 27.500 , 28.000 , 30.000 , 31.000 ,
32.000 , 32.500 , 32.500 , 33.000 , 33.500 ,
34.000 ,
1500.0 , 1160.0 , 310.00 , 230.00 , 178.00 , //15
153.00 , 134.00 , 124.00 , 113.00 , 106.00 ,
101.00 , 96.000 , 92.000 , 89.000 , 87.000 ,
84.000 , 81.000 , 78.500 , 76.500 , 75.000 ,
72.000 , 70.000 , 68.000 , 64.500 , 63.000 ,
62.000 , 61.000 , 59.500 , 58.500 , 56.500 ,
56.500 , 56.000 , 55.500 , 52.000 , 50.000 ,
48.000 , 45.000 , 44.000 , 39.200 , 34.500 ,
34.500 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //16
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.10000 , 1.5000 ,
7.0000 , 12.000 , 17.000 , 19.500 , 20.500 ,
22.000 , 23.500 , 24.800 , 25.800 , 26.500 ,
27.000 , 27.500 , 28.000 , 30.000 , 31.000 ,
32.000 , 32.500 , 32.500 , 33.000 , 33.500 ,
34.000 ,
1394.1 , 948.17 , 262.43 , 197.14 , 149.30 , //17
127.25 , 110.39 , 101.79 , 92.834 , 87.104 ,
83.109 , 79.099 , 75.965 , 73.627 , 72.161 ,
69.889 , 67.595 , 65.595 , 64.057 , 63.054 ,
61.377 , 60.434 , 59.485 , 56.970 , 55.931 ,
55.398 , 54.827 , 53.538 , 52.861 , 51.247 ,
51.344 , 50.992 , 50.644 , 47.876 , 46.358 ,
44.887 , 42.577 , 41.815 , 38.180 , 34.254 ,
34.418 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //18
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.97815E-01, 1.4577 ,
6.2052 , 10.112 , 12.902 , 14.300 , 14.688 ,
15.505 , 16.379 , 17.554 , 18.309 , 18.920 ,
19.389 , 19.804 , 20.284 , 22.000 , 22.733 ,
23.527 , 24.097 , 24.382 , 24.816 , 26.800 ,
27.719 ,
1182.4 , 524.50 , 167.30 , 131.43 , 91.895 , //19
75.743 , 63.184 , 57.376 , 52.502 , 49.313 ,
47.326 , 44.762 , 43.222 , 42.015 , 41.221 ,
40.244 , 39.504 , 39.145 , 38.860 , 38.731 ,
37.987 , 37.814 , 36.326 , 34.750 , 33.953 ,
33.635 , 33.349 , 32.938 , 32.785 , 32.092 ,
32.373 , 32.312 , 32.329 , 31.261 , 30.597 ,
30.073 , 29.228 , 29.182 , 27.683 , 27.107 ,
27.956 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //20
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.97815E-01, 1.4577 ,
6.2052 , 10.112 , 12.902 , 14.300 , 14.688 ,
15.505 , 16.379 , 17.554 , 18.309 , 18.920 ,
19.389 , 19.804 , 20.284 , 22.000 , 22.733 ,
23.527 , 24.097 , 24.382 , 24.816 , 26.800 ,
27.719 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //21
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //22
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.97815E-01, 1.4577 ,
6.2052 , 10.112 , 12.902 , 14.300 , 14.688 ,
15.505 , 16.379 , 17.554 , 18.309 , 18.920 ,
19.389 , 19.804 , 20.284 , 22.000 , 22.733 ,
23.527 , 24.097 , 24.382 , 24.816 , 26.800 ,
27.719 ,
1394.1 , 948.17 , 262.43 , 197.14 , 149.30 , //23
127.25 , 110.39 , 101.79 , 92.834 , 87.104 ,
83.109 , 78.563 , 75.292 , 72.760 , 70.900 ,
68.467 , 66.314 , 64.955 , 63.746 , 62.623 ,
59.233 , 56.946 , 53.355 , 49.810 , 48.090 ,
46.839 , 45.695 , 44.863 , 44.062 , 42.599 ,
42.684 , 42.328 , 42.041 , 39.508 , 37.880 ,
36.299 , 34.075 , 33.553 , 29.723 , 27.600 ,
28.120 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //24
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
1182.4 , 524.50 , 167.30 , 131.43 , 91.895 , //25
75.743 , 63.184 , 57.376 , 52.502 , 49.313 ,
47.326 , 44.762 , 43.222 , 42.015 , 41.221 ,
40.244 , 39.504 , 39.145 , 38.860 , 38.731 ,
37.987 , 37.814 , 36.326 , 34.750 , 33.953 ,
33.635 , 33.349 , 32.938 , 32.785 , 32.092 ,
32.373 , 32.312 , 32.329 , 31.261 , 30.597 ,
30.073 , 29.228 , 29.182 , 27.683 , 27.107 ,
27.956 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //26
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.95639E-01, 1.4154 ,
5.4104 , 8.2240 , 8.8031 , 9.1000 , 8.8761 ,
9.0095 , 9.2576 , 10.307 , 10.818 , 11.341 ,
11.778 , 12.108 , 12.569 , 14.000 , 14.467 ,
15.054 , 15.694 , 16.263 , 16.632 , 20.100 ,
21.438 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //27
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.95639E-01, 1.4154 ,
5.4104 , 8.2240 , 8.8031 , 9.1000 , 8.8761 ,
9.0095 , 9.2576 , 10.307 , 10.818 , 11.341 ,
11.778 , 12.108 , 12.569 , 14.000 , 14.467 ,
15.054 , 15.694 , 16.263 , 16.632 , 20.100 ,
21.438 ,
1182.4 , 524.50 , 167.30 , 131.43 , 91.895 , //28
75.743 , 63.184 , 57.376 , 52.502 , 49.313 ,
47.326 , 44.225 , 42.549 , 41.148 , 39.960 ,
38.822 , 38.223 , 38.505 , 38.549 , 38.301 ,
35.843 , 34.326 , 30.196 , 27.590 , 26.112 ,
25.076 , 24.217 , 24.264 , 23.985 , 23.445 ,
23.713 , 23.647 , 23.726 , 22.892 , 22.119 ,
21.485 , 20.726 , 20.921 , 19.226 , 20.454 ,
21.658 ,
1076.5 , 312.66 , 119.74 , 98.571 , 63.193 , //29
49.990 , 39.579 , 35.168 , 32.335 , 30.417 ,
29.434 , 27.325 , 26.514 , 25.775 , 25.120 ,
24.711 , 24.818 , 25.600 , 26.106 , 26.355 ,
25.220 , 24.760 , 21.681 , 20.060 , 19.044 ,
18.474 , 18.044 , 18.301 , 18.347 , 18.192 ,
18.557 , 18.639 , 18.870 , 18.769 , 18.478 ,
18.372 , 18.302 , 18.735 , 18.206 , 20.207 ,
21.576 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //30
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //31
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //32
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //33
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.95639E-01, 1.4154 ,
5.4104 , 8.2240 , 8.8031 , 9.1000 , 8.8761 ,
9.0095 , 9.2576 , 10.307 , 10.818 , 11.341 ,
11.778 , 12.108 , 12.569 , 14.000 , 14.467 ,
15.054 , 15.694 , 16.263 , 16.632 , 20.100 ,
21.438 ,
1076.5 , 312.66 , 119.74 , 98.571 , 63.193 , //34
49.990 , 39.579 , 35.168 , 32.335 , 30.417 ,
29.434 , 27.325 , 26.514 , 25.775 , 25.120 ,
24.711 , 24.818 , 25.600 , 26.106 , 26.355 ,
25.220 , 24.760 , 21.681 , 20.060 , 19.044 ,
18.474 , 18.044 , 18.301 , 18.347 , 18.192 ,
18.557 , 18.639 , 18.870 , 18.769 , 18.478 ,
18.372 , 18.302 , 18.735 , 18.206 , 20.207 ,
21.576 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //35
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00
};
//---------------------------------------------------------------------
// Elastic scattering of pion on nucleus
//---------------------------------------------------------------------
G4float G4HadronCrossSections::cspiel[3][TSIZE] = {
// Elastic cross section for Pi on Al (mb)
0.00000E+00, 350.00 , 580.00 , 600.00 , 550.00 , //1
450.00 , 410.00 , 370.00 , 340.00 , 230.00 ,
220.00 , 205.00 , 180.00 , 155.00 , 145.00 ,
140.00 , 160.00 , 195.00 , 235.00 , 250.00 ,
270.00 , 280.00 , 300.00 , 300.00 , 290.00 ,
285.00 , 265.00 , 240.00 , 230.00 , 222.00 ,
204.00 , 196.00 , 190.00 , 170.00 , 170.00 ,
160.00 , 150.00 , 140.00 , 120.00 , 80.000 ,
80.000,
// Elastic cross section for Pi on Cu (mb)
0.00000E+00, 700.00 , 1000.0 , 1200.0 , 1300.0 , //2
1300.0 , 1250.0 , 1250.0 , 1100.0 , 1000.0 ,
940.00 , 740.00 , 700.00 , 670.00 , 660.00 ,
670.00 , 680.00 , 700.00 , 735.00 , 800.00 ,
810.00 , 820.00 , 820.00 , 810.00 , 800.00 ,
800.00 , 700.00 , 600.00 , 500.00 , 470.00 ,
440.00 , 410.00 , 380.00 , 330.00 , 330.00 ,
330.00 , 330.00 , 330.00 , 285.00 , 240.00 ,
240.00,
// Elastic cross section for Pi on Pb (mb)
0.00000E+00, 1700.0 , 2200.0 , 2200.0 , 1800.0 , //3
1300.0 , 1200.0 , 900.00 , 900.00 , 1000.0 ,
1100.0 , 1300.0 , 1400.0 , 1420.0 , 1490.0 ,
1560.0 , 1580.0 , 1690.0 , 1795.0 , 2000.0 ,
2070.0 , 2140.0 , 2050.0 , 2010.0 , 1970.0 ,
1880.0 , 1690.0 , 1500.0 , 1420.0 , 1390.0 ,
1350.0 , 1360.0 , 1370.0 , 1280.0 , 1290.0 ,
1295.0 , 1250.0 , 1200.0 , 1050.0 , 900.00 ,
900.00
};
//---------------------------------------------------------------------
// Inelastic scattering of pion on nucleus
//---------------------------------------------------------------------
G4float G4HadronCrossSections::cspiin[3][TSIZE] = {
// Inelastic cross section for Pi on Al (mb)
0.00000E+00, 200.00 , 320.00 , 500.00 , 600.00 , //1
600.00 , 590.00 , 530.00 , 510.00 , 470.00 ,
430.00 , 425.00 , 420.00 , 425.00 , 425.00 ,
430.00 , 430.00 , 435.00 , 435.00 , 440.00 ,
430.00 , 430.00 , 420.00 , 420.00 , 420.00 ,
415.00 , 415.00 , 410.00 , 410.00 , 408.00 ,
406.00 , 404.00 , 400.00 , 380.00 , 340.00 ,
340.00 , 340.00 , 340.00 , 340.00 , 340.00 ,
340.00 ,
// Inelastic cross section for Pi on Cu (mb)
0.00000E+00, 400.00 , 800.00 , 1000.0 , 1100.0 , //2
1200.0 , 1150.0 , 1050.0 , 1000.0 , 900.00 ,
860.00 , 860.00 , 850.00 , 850.00 , 840.00 ,
830.00 , 820.00 , 810.00 , 805.00 , 800.00 ,
800.00 , 800.00 , 800.00 , 800.00 , 800.00 ,
800.00 , 800.00 , 800.00 , 800.00 , 780.00 ,
760.00 , 740.00 , 720.00 , 720.00 , 700.00 ,
690.00 , 680.00 , 670.00 , 665.00 , 660.00 ,
660.00 ,
// Inelastic cross section for Pi on Pb (mb)
0.00000E+00, 1000.0 , 1900.0 , 2600.0 , 2900.0 , //3
3000.0 , 2800.0 , 2600.0 , 2500.0 , 2300.0 ,
2200.0 , 2000.0 , 1900.0 , 1880.0 , 1860.0 ,
1840.0 , 1820.0 , 1810.0 , 1805.0 , 1800.0 ,
1780.0 , 1760.0 , 1750.0 , 1740.0 , 1730.0 ,
1720.0 , 1710.0 , 1700.0 , 1680.0 , 1660.0 ,
1650.0 , 1640.0 , 1630.0 , 1620.0 , 1610.0 ,
1605.0 , 1600.0 , 1600.0 , 1550.0 , 1500.0 ,
1500.0
};
//---------------------------------------------------------------------
// Elastic scattering of proton on nucleus
//---------------------------------------------------------------------
G4float G4HadronCrossSections::cspnel[3][TSIZE] = {
// Elastic cross section for P on Al (mb)
2100.0 , 1800.0 , 1500.0 , 1050.0 , 900.00 , //1
950.00 , 800.00 , 650.00 , 570.00 , 390.00 ,
300.00 , 240.00 , 230.00 , 230.00 , 220.00 ,
220.00 , 225.00 , 225.00 , 240.00 , 240.00 ,
290.00 , 330.00 , 335.00 , 350.00 , 355.00 ,
370.00 , 350.00 , 330.00 , 310.00 , 290.00 ,
270.00 , 265.00 , 260.00 , 230.00 , 210.00 ,
210.00 , 200.00 , 200.00 , 190.00 , 180.00 ,
180.00,
// Elastic cross section for P on Cu (mb)
3800.0 , 2900.0 , 1850.0 , 1550.0 , 1450.0 , //2
1520.0 , 1460.0 , 1300.0 , 1140.0 , 880.00 ,
700.00 , 620.00 , 540.00 , 560.00 , 460.00 ,
460.00 , 470.00 , 470.00 , 480.00 , 480.00 ,
580.00 , 600.00 , 610.00 , 620.00 , 620.00 ,
620.00 , 590.00 , 580.00 , 460.00 , 440.00 ,
420.00 , 400.00 , 480.00 , 430.00 , 380.00 ,
380.00 , 380.00 , 380.00 , 380.00 , 380.00 ,
380.00,
// Elastic cross section for P on Pb (mb)
7000.0 , 6000.0 , 4500.0 , 3350.0 , 2700.0 , //3
3000.0 , 3550.0 , 3970.0 , 3280.0 , 2490.0 ,
2100.0 , 1510.0 , 1440.0 , 1370.0 , 1370.0 ,
1370.0 , 1400.0 , 1400.0 , 1420.0 , 1420.0 ,
1440.0 , 1460.0 , 1460.0 , 1450.0 , 1450.0 ,
1470.0 , 1400.0 , 1400.0 , 1380.0 , 1370.0 ,
1360.0 , 1350.0 , 1340.0 , 1330.0 , 1320.0 ,
1310.0 , 1305.0 , 1300.0 , 1300.0 , 1300.0 ,
1300.0
};
//---------------------------------------------------------------------
// Inelastic scattering of proton on nucleus
//---------------------------------------------------------------------
G4float G4HadronCrossSections::cspnin[3][TSIZE] = {
// Inelastic cross section for P on Al (mb)
0.00000E+00, 200.00 , 400.00 , 800.00 , 800.00 , //1
550.00 , 500.00 , 450.00 , 430.00 , 410.00 ,
400.00 , 390.00 , 380.00 , 370.00 , 370.00 ,
370.00 , 365.00 , 365.00 , 360.00 , 360.00 ,
360.00 , 360.00 , 365.00 , 370.00 , 375.00 ,
380.00 , 400.00 , 410.00 , 420.00 , 430.00 ,
440.00 , 440.00 , 440.00 , 440.00 , 440.00 ,
440.00 , 440.00 , 440.00 , 440.00 , 440.00 ,
440.00 ,
// Inelastic cross section for P on Cu (mb)
0.00000E+00, 400.00 , 950.00 , 1050.0 , 1050.0 , //2
980.00 , 940.00 , 900.00 , 860.00 , 820.00 ,
800.00 , 780.00 , 760.00 , 740.00 , 740.00 ,
740.00 , 730.00 , 730.00 , 720.00 , 720.00 ,
720.00 , 720.00 , 730.00 , 740.00 , 750.00 ,
760.00 , 800.00 , 820.00 , 820.00 , 820.00 ,
820.00 , 820.00 , 820.00 , 820.00 , 820.00 ,
820.00 , 820.00 , 820.00 , 820.00 , 820.00 ,
820.00 ,
// Inelastic cross section for P on Pb (mb)
0.00000E+00, 0.00000E+00, 500.00 , 1450.0 , 1700.0 , //3
1800.0 , 1750.0 , 1730.0 , 1720.0 , 1710.0 ,
1700.0 , 1690.0 , 1660.0 , 1630.0 , 1630.0 ,
1630.0 , 1600.0 , 1600.0 , 1580.0 , 1580.0 ,
1580.0 , 1580.0 , 1600.0 , 1630.0 , 1650.0 ,
1670.0 , 1760.0 , 1800.0 , 1800.0 , 1800.0 ,
1800.0 , 1800.0 , 1800.0 , 1800.0 , 1800.0 ,
1800.0 , 1800.0 , 1800.0 , 1800.0 , 1800.0 ,
1800.0
};
//---------------------------------------------------------------------
// Lab kinetic energy in GeV
//---------------------------------------------------------------------
G4float G4HadronCrossSections::elab[NELAB] = {
0.10000E-03, 0.20000E-03, 0.30000E-03, 0.40000E-03, 0.50000E-03,
0.70000E-03, 0.10000E-02, 0.20000E-02, 0.30000E-02, 0.40000E-02,
0.50000E-02, 0.70000E-02, 0.10000E-01, 0.15000E-01, 0.20000E-01,
0.25000E-01, 0.32700E-01
};
//---------------------------------------------------------------------
// Tables for low-energy (< 32.7 MeV) neutrons
//---------------------------------------------------------------------
// Atomic weight
G4float G4HadronCrossSections::cnlwat[NCNLW] = {
1.0000 , 16.000 , 27.000 , 56.000 , 59.000 ,
64.000 , 91.000 , 112.00 , 119.00 , 127.00 ,
137.00 , 181.00 , 207.00 , 209.00 , 238.00
};
// Elastic cross section
G4float G4HadronCrossSections::cnlwel[NCNLW][NELAB] = {
6000.0 , 5500.0 , 5200.0 , 4900.0 , 4800.0 , //1
4400.0 , 4000.0 , 2900.0 , 2200.0 , 1800.0 ,
1400.0 , 1100.0 , 900.00 , 700.00 , 600.00 ,
560.00 , 520.00 ,
5400.0 , 5050.0 , 4800.0 , 4600.0 , 4399.0 , //2
4090.0 , 3700.0 , 2600.0 , 1950.0 , 1600.0 ,
1300.0 , 900.00 , 700.00 , 800.00 , 1050.0 ,
1250.0 , 1320.0 ,
5500.0 , 5150.0 , 4900.0 , 4699.0 , 4490.0 , //3
4150.0 , 3750.0 , 2790.0 , 2100.0 , 1650.0 ,
1300.0 , 950.00 , 800.00 , 860.00 , 1000.0 ,
1090.0 , 1080.0 ,
5499.0 , 4970.0 , 4450.0 , 4080.0 , 3750.0 , //4
3380.0 , 2900.0 , 2400.0 , 2380.0 , 2350.0 ,
2300.0 , 2100.0 , 1720.0 , 1370.0 , 1200.0 ,
1060.0 , 870.00 ,
5399.0 , 4710.0 , 4180.0 , 3760.0 , 3460.0 , //5
3150.0 , 2730.0 , 2270.0 , 1850.0 , 1850.0 ,
2130.0 , 2330.0 , 2120.0 , 1640.0 , 1310.0 ,
1100.0 , 1050.0 ,
5099.0 , 4405.0 , 3825.0 , 3455.0 , 3125.0 , //6
2695.0 , 2350.0 , 1850.0 , 1580.0 , 1820.0 ,
2050.0 , 2210.0 , 2000.0 , 1590.0 , 1310.0 ,
1120.0 , 1040.0 ,
6290.0 , 5960.0 , 5640.0 , 5370.0 , 5150.0 , //7
4800.0 , 4250.0 , 3150.0 , 2470.0 , 2100.0 ,
2230.0 , 2420.0 , 2450.0 , 2050.0 , 1760.0 ,
1550.0 , 1330.0 ,
6885.0 , 6650.0 , 6350.0 , 6150.0 , 6000.0 , //8
5700.0 , 5360.0 , 4250.0 , 2800.0 , 1870.0 ,
1810.0 , 1820.0 , 2170.0 , 2450.0 , 2150.0 ,
1700.0 , 1390.0 ,
6600.0 , 6500.0 , 6400.0 , 6249.0 , 6190.0 , //9
5950.0 , 5520.0 , 4250.0 , 2750.0 , 1900.0 ,
1850.0 , 1950.0 , 2340.0 , 2800.0 , 2540.0 ,
2100.0 , 1760.0 ,
7400.0 , 7200.0 , 6999.0 , 6840.0 , 6655.0 , //10
6320.0 , 5820.0 , 4400.0 , 2850.0 , 2000.0 ,
1800.0 , 1800.0 , 2150.0 , 2600.0 , 2350.0 ,
1950.0 , 2100.0 ,
7900.0 , 7700.0 , 7499.0 , 7390.0 , 7202.0 , //11
6810.0 , 6360.0 , 4920.0 , 3450.0 , 2600.0 ,
2200.0 , 1950.0 , 2300.0 , 2800.0 , 2650.0 ,
2250.0 , 2050.0 ,
7900.0 , 7750.0 , 7699.0 , 7590.0 , 7450.0 , //12
7200.0 , 6850.0 , 5650.0 , 4400.0 , 3700.0 ,
3400.0 , 2800.0 , 2700.0 , 3100.0 , 3250.0 ,
3100.0 , 2750.0 ,
6100.0 , 5950.0 , 5750.0 , 5599.0 , 5440.0 , //13
5200.0 , 4800.0 , 4300.0 , 5800.0 , 5750.0 ,
4800.0 , 3420.0 , 2650.0 , 3200.0 , 3650.0 ,
3500.0 , 2980.0 ,
6100.0 , 5950.0 , 5750.0 , 5599.0 , 5440.0 , //14
5200.0 , 4800.0 , 4300.0 , 5800.0 , 5750.0 ,
4800.0 , 3420.0 , 2650.0 , 3200.0 , 3650.0 ,
3500.0 , 2980.0 ,
6600.0 , 6350.0 , 6100.0 , 5899.0 , 5690.0 , //15
5300.0 , 4850.0 , 4450.0 , 5650.0 , 5700.0 ,
4950.0 , 3850.0 , 3050.0 , 3050.0 , 3460.0 ,
3650.0 , 3340.0
};
// Inelastic cross section
G4float G4HadronCrossSections::cnlwin[NCNLW][NELAB] = {
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //1
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.0000 , //2
10.000 , 50.000 , 100.00 , 200.00 , 300.00 ,
400.00 , 600.00 , 700.00 , 750.00 , 700.00 ,
700.00 , 680.00 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , //3
50.000 , 100.00 , 260.00 , 450.00 , 600.00 ,
700.00 , 800.00 , 900.00 , 940.00 , 900.00 ,
860.00 , 820.00 ,
1.0000 , 80.000 , 200.00 , 320.00 , 400.00 , //4
520.00 , 700.00 , 1000.0 , 1120.0 , 1200.0 ,
1200.0 , 1200.0 , 1180.0 , 1130.0 , 1100.0 ,
1090.0 , 1080.0 ,
1.0000 , 90.000 , 220.00 , 340.00 , 420.00 , //5
550.00 , 720.00 , 1080.0 , 1300.0 , 1400.0 ,
1420.0 , 1420.0 , 1380.0 , 1260.0 , 1190.0 ,
1150.0 , 1100.0 ,
1.0000 , 95.000 , 225.00 , 345.00 , 425.00 , //6
555.00 , 750.00 , 1150.0 , 1500.0 , 1680.0 ,
1700.0 , 1690.0 , 1550.0 , 1360.0 , 1240.0 ,
1180.0 , 1120.0 ,
10.000 , 140.00 , 260.00 , 380.00 , 450.00 , //7
600.00 , 750.00 , 1200.0 , 1580.0 , 1800.0 ,
1820.0 , 1830.0 , 1800.0 , 1750.0 , 1690.0 ,
1650.0 , 1620.0 ,
15.000 , 150.00 , 300.00 , 400.00 , 500.00 , //8
650.00 , 840.00 , 1500.0 , 2100.0 , 2130.0 ,
2140.0 , 2130.0 , 2080.0 , 2000.0 , 1950.0 ,
1900.0 , 1860.0 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , //9
150.00 , 380.00 , 1000.0 , 1650.0 , 2100.0 ,
2100.0 , 2100.0 , 2060.0 , 1950.0 , 1860.0 ,
1800.0 , 1740.0 ,
0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , 45.000 , //10
180.00 , 380.00 , 1050.0 , 1900.0 , 2300.0 ,
2300.0 , 2200.0 , 2150.0 , 2000.0 , 1900.0 ,
1800.0 , 1750.0 ,
0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , 48.000 , //11
190.00 , 390.00 , 1080.0 , 2000.0 , 2400.0 ,
2400.0 , 2300.0 , 2200.0 , 2100.0 , 1950.0 ,
1850.0 , 1800.0 ,
0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , 50.000 , //12
200.00 , 400.00 , 1100.0 , 2100.0 , 2500.0 ,
2500.0 , 2450.0 , 2300.0 , 2100.0 , 2000.0 ,
1900.0 , 1850.0 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , //13
100.00 , 350.00 , 900.00 , 1400.0 , 2000.0 ,
2300.0 , 2380.0 , 2400.0 , 2300.0 , 2250.0 ,
2200.0 , 2120.0 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , //14
100.00 , 350.00 , 900.00 , 1400.0 , 2000.0 ,
2300.0 , 2380.0 , 2400.0 , 2300.0 , 2250.0 ,
2200.0 , 2120.0 ,
0.00000E+00, 0.00000E+00, 0.00000E+00, 1.0000 , 10.000 , //15
100.00 , 400.00 , 950.00 , 1600.0 , 2200.0 ,
2550.0 , 2750.0 , 2700.0 , 2600.0 , 2540.0 ,
2450.0 , 2360.0
};
// Capture cross section indexed by Z
G4float G4HadronCrossSections::cscap[100] = {
6.0000 , 5.7000 , 5.5000 , 5.3000 , 5.2000 ,
5.1000 , 5.0000 , 4.9000 , 4.8000 , 4.8000 ,
4.8000 , 4.8000 , 4.8000 , 4.8000 , 4.8000 ,
4.8000 , 4.9000 , 5.0000 , 5.2000 , 5.5000 ,
6.0000 , 6.7000 , 7.5000 , 8.5000 , 10.000 ,
12.000 , 14.500 , 19.000 , 26.500 , 40.000 ,
75.000 , 120.00 , 180.00 , 260.00 , 360.00 ,
330.00 , 60.000 , 7.0000 , 9.5000 , 20.000 ,
75.000 , 140.00 , 250.00 , 360.00 , 480.00 ,
580.00 , 590.00 , 500.00 , 300.00 , 100.00 ,
200.00 , 300.00 , 400.00 , 470.00 , 500.00 ,
430.00 , 100.00 , 20.000 , 22.000 , 40.000 ,
560.00 , 950.00 , 1000.0 , 1000.0 , 1000.0 ,
990.00 , 920.00 , 860.00 , 790.00 , 740.00 ,
650.00 , 600.00 , 540.00 , 470.00 , 440.00 ,
390.00 , 360.00 , 340.00 , 320.00 , 310.00 ,
280.00 , 2.0000 , 2.5000 , 6.0000 , 13.000 ,
38.000 , 65.000 , 140.00 , 280.00 , 300.00 ,
430.00 , 580.00 , 650.00 , 800.00 , 920.00 ,
1100.0 , 1250.0 , 1400.0 , 1550.0 , 1700.0
};
//---------------------------------------------------------------------
// Tables for fission cross sections
//---------------------------------------------------------------------
// Lab kinetic energy in GeV
G4float G4HadronCrossSections::ekfiss[NFISS] = {
0.10000E-03, 0.20000E-03, 0.30000E-03, 0.50000E-03, 0.70000E-03,
0.10000E-02, 0.15000E-02, 0.20000E-02, 0.30000E-02, 0.50000E-02,
0.70000E-02, 0.10000E-01, 0.15000E-01, 0.20000E-01, 0.50000E-01,
0.10000 , 0.20000 , 0.30000 , 0.40000 , 0.50000 ,
1000.0
};
// Fission cross sections
G4float G4HadronCrossSections::csfiss[4][NFISS] = {
2600.0 , 2300.0 , 2300.0 , 2100.0 , 2000.0 , //1
1950.0 , 1930.0 , 1900.0 , 1800.0 , 1600.0 ,
2100.0 , 2300.0 , 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
1850.0 , 1400.0 , 1300.0 , 1150.0 , 1100.0 , //2
1200.0 , 1250.0 , 1300.0 , 1250.0 , 1150.0 ,
1600.0 , 1900.0 , 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
1700.0 , 1650.0 , 1650.0 , 1700.0 , 1700.0 , //3
1800.0 , 1900.0 , 2000.0 , 1950.0 , 1800.0 ,
2150.0 , 2450.0 , 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, //4
0.00000E+00, 250.00 , 550.00 , 550.00 , 550.00 ,
550.00 , 550.00 , 1000.0 , 1400.0 , 1600.0 ,
1500.0 , 1400.0 , 1300.0 , 1200.0 , 1100.0 ,
1000.0
};
G4float G4HadronCrossSections::alpha[PSIZE] = {
0.7,0.7,0.7,0.7,0.7,0.7,
0.75,0.75,0.75,
0.76,0.76,0.76,0.76,
0.685,0.63,0.685,0.63,0.685,0.63,
0.685,0.685,0.685,0.63,0.63,0.63,0.685,0.685,0.63,0.63,
0.7,0.7,0.7,0.685,0.63,0.7
};
G4float G4HadronCrossSections::alphac[TSIZE] = {
1.2,1.2,1.2,1.15,0.90,0.91,0.98,1.06,1.10,1.11,
1.10,1.08,1.05,1.01,0.985,0.962,0.945,0.932,
0.925,0.920,0.920,0.921,0.922,0.923,0.928,0.931,
0.940,0.945,0.950,0.955,0.958,0.962,0.965,0.976,
0.982,0.988,0.992,1.010,1.020,1.030,1.040
};
G4float G4HadronCrossSections::partel[PSIZE] = {
0.,0.,0.,0.,0.,0.,
1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,
1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,
1.,1.,1.,1.,1.,1.,1.,1.,1.
};
G4float G4HadronCrossSections::partin[PSIZE] = {
0.,0.,0.,0.,0.,0.,
1.00,0.00,1.05,1.20,1.35,1.30,1.20,1.00,1.30,
1.00,1.30,1.00,1.30,1.00,1.00,1.00,1.30,1.30,1.30,
1.00,1.00,1.30,1.30,1.00,1.,1.,1.,1.3,1.
};
// Enabling flags for corrections for compounds
G4int G4HadronCrossSections::icorr[PSIZE] = {
1,1,1,1,1,1,1,1,1,1,1,1,1,1,
0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1,0,0
};
// Enabling flags for interaction to occur
G4int G4HadronCrossSections::intrc[PSIZE] = {
0,0,0,0,0,0,
1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,0,
1,1,1,1,1,1,1,1,1,1,0
};
G4float G4HadronCrossSections::csa[4] = {1., 27.00, 63.54, 207.19};
G4int G4HadronCrossSections::ipart2[7] = {9, 8, 7, 11, 10, 13, 12};
G4bool G4HadronCrossSections::correctInelasticNearZero = 0;
// Method to calculate cross sections for all processes.
// To facilitate comparison with the original Fortran source, and because
// of the interdependence of the elastic and inelastic cross section
// calculations, this has not been split into separate processes.
void
G4HadronCrossSections::CalcScatteringCrossSections(
const G4DynamicParticle* aParticle,
const G4Element* anElement)
{
G4double sigel, sigin, sigtot;
G4double xsecel, xsecin, csaa;
G4double dx, dy, rc, rca, b;
G4double crel, crin;
G4double xspiel, xspiin;
G4int ipart = GetParticleCode(aParticle);
G4double a = anElement->GetA()*mole/g;
G4double z = anElement->GetZ();
if (verboseLevel > 1) {
G4cout << "G4HadronCrossSections: a=" << a << endl;
G4cout << "G4HadronCrossSections: z=" << z << endl;
}
// Ions...
if (ipart >= 30 && ipart <= 32) {
G4double apart;
if (ipart == 30) apart = pow(2., 1./3.);
else if (ipart == 31) apart = pow(3., 1./3.);
else if (ipart == 32) apart = pow(4., 1./3.);
G4double term = apart + pow(a, 1./3.);
sigin = 49.*term*term;
// Convert cross section from mb to default units
siginelastic = sigin*millibarn;
sigelastic = 0.;
return;
}
G4double ek = aParticle->GetKineticEnergy()/GeV;
// Low energy neutrons...
if (ipart == 16 && ek <= 0.0327) {
// G4int je2 = NELAB;
// for (G4int j = 2; j <= NELAB; j++) {
// if (ek < elab[j - 1]) {
// je2 = j;
// break;
// }
// }
// G4int je1 = je2 -1;
// je1 = je1 - 1; // For array indexing
// je2 = je2 - 1; // For array indexing
G4int je1 = 0;
G4int je2 = NELAB - 1;
do {
G4int midBin = (je1 + je2)/2;
if (ek < elab[midBin])
je2 = midBin;
else
je1 = midBin;
} while (je2 - je1 > 1);
G4double ekx = max(ek, 1.e-9);
G4double delab = elab[je2] - elab[je1];
// G4int ja2 = NCNLW;
// for (G4int jj = 2; jj <= NCNLW; jj++) {
// if (a < cnlwat[jj - 1]) {
// ja2 = jj;
// break;
// }
// }
// G4int ja1 = ja2 - 1;
// ja1 = ja1 - 1; // For array indexing
// ja2 = ja2 - 1; // For array indexing
G4int ja1 = 0;
G4int ja2 = NCNLW - 1;
do {
G4int midBin = (ja1 + ja2)/2;
if (a < cnlwat[midBin])
ja2 = midBin;
else
ja1 = midBin;
} while (ja2 - ja1 > 1);
G4double dnlwat = cnlwat[ja2] - cnlwat[ja1];
// Elastic cross section:
// E interpolation or extrapolation at JA1
dy = cnlwel[ja1][je2] - cnlwel[ja1][je1];
G4double rce = dy/delab;
// A interpolation or extrapolation at JE1
dy = cnlwel[ja2][je1] - cnlwel[ja1][je1];
rca = dy/dnlwat;
b = cnlwel[ja1][je1] - rce*elab[je1] - rca*cnlwat[ja1];
sigelastic = rce*ek + rca*a + b;
// Inelastic cross section:
// E interpolation or extrapolation at JA1
dy = cnlwin[ja1][je2] - cnlwin[ja1][je1];
rce = dy/delab;
// A interpolation or extrapolation at JE1
dy = cnlwin[ja2][je1] - cnlwin[ja1][je1];
rca = dy/dnlwat;
b = cnlwin[ja1][je1] - rce*elab[je1] - rca*cnlwat[ja1];
siginelastic = rce*ek + rca*a + b;
// Convert cross sections from mb to default units
sigelastic = sigelastic*millibarn;
siginelastic = siginelastic*millibarn;
return;
}
// Remaining particles...
// Get momentum bin
G4double p = aParticle->GetTotalMomentum()/GeV;
// G4int j = TSIZE - 1;
// for (G4int i = 2; i <= TSIZE; i++) {
// if (p < plab[i]) {
// j = i - 1;
// break;
// }
// }
// j = j - 1; // For array indexing
G4int je1 = 0;
G4int je2 = TSIZE - 1;
do {
G4int midBin = (je1 + je2)/2;
if (p < plab[midBin])
je2 = midBin;
else
je1 = midBin;
} while (je2 - je1 > 1);
G4int ipart1 = ipart - 1; // For array indexing
// Get cross sections for scattering on free protons
dx = plab[je2] - plab[je1];
// Elastic cross section
dy = csel[ipart1][je2] - csel[ipart1][je1];
rc = dy/dx;
b = csel[ipart1][je1] - rc*plab[je1];
sigel = rc*p + b;
// Inelastic cross section
dy = csin[ipart1][je2] - csin[ipart1][je1];
rc = dy/dx;
b = csin[ipart1][je1] - rc*plab[je1];
sigin = rc*p + b;
if (verboseLevel > 1) {
G4cout << "sigel " << sigel << endl;
G4cout << "sigin " << sigin << endl;
}
G4double alph = alpha[ipart1];
if (ipart < 14) {
dy = alphac[je2] - alphac[je1];
rc = dy/dx;
b = alphac[je1] - rc*plab[je1];
G4double corfac = rc*p + b;
alph = alph*corfac;
G4int ipart3 = ipart2[ipart - 7];
ipart3 = ipart3 - 1; // For array indexing
// Elastic cross section
dy = csel[ipart3][je2] - csel[ipart3][je1];
rc = dy/dx;
b = csel[ipart3][je1] - rc*plab[je1];
xsecel = rc*p + b;
// Inelastic cross section
dy = csin[ipart3][je2] - csin[ipart3][je1];
rc = dy/dx;
b = csin[ipart3][je1] - rc*plab[je1];
xsecin = rc*p + b;
}
// A-dependence from parameterization...
if (a >= 1.5) {
crel = 1.;
crin = 1.;
G4int i = 3;
if (a < 50.) i = 2;
if (a > 100.) i = 4;
i = i - 1; // For array indexing
// Protons and neutrons
if (ipart == 14 || ipart == 16) {
dy = cspnel[i - 1][je2] - cspnel[i - 1][je1];
rc = dy/dx;
b = cspnel[i - 1][je1] - rc*plab[je1];
xsecel = rc*p + b;
dy = cspnin[i - 1][je2] - cspnin[i - 1][je1];
rc = dy/dx;
b = cspnin[i - 1][je1] - rc*plab[je1];
xsecin = rc*p + b;
// The following is a first-order correction to Gheisha (GHESIG)
// behaviour, where for the lighter elements the inelastic cross
// section is not realistic for particles in the first momentum
// bin. In the first momentum bin, it better to interpolate
// in K.E. Subject to further improvements.
if (correctInelasticNearZero && je1 == 0 && i <= 3) {
G4double m0 = aParticle->GetMass()/GeV;
G4double T = sqrt(m0*m0 + p*p) - m0;
G4double dx = sqrt(m0*m0 + plab[1]*plab[1]) - m0;
rc = dy/dx;
xsecin = rc*T + b;
}
if (sigel >= 0.001)
crel = xsecel/(0.36*sigel*pow(G4double(csa[i]), 1.17));
sigtot = sigel + sigin;
if (sigtot >= 0.001)
crin = xsecin/(sigtot*pow(G4double(csa[i]), alph));
}
else if (ipart < 15) {
// Calculate correction factors (crel, crin) from values
// on Al, Cu, Pb. Note that data is only available for pions and protons.
G4double wgch = 0.5;
if (a < 20.) wgch = 0.5 + 0.5*exp(-(a - 1.));
sigel = wgch*sigel + (1. - wgch)*xsecel;
sigin = wgch*sigin + (1. - wgch)*xsecin;
// This section not for kaons
if (ipart < 10) {
dy = cspiel[i - 1][je2] - cspiel[i - 1][je1];
rc = dy/dx;
b = cspiel[i - 1][je1] - rc*plab[je1];
xspiel = rc*p + b;
dy = cspiin[i - 1][je2] - cspiin[i - 1][je1];
rc = dy/dx;
b = cspiin[i - 1][je1] - rc*plab[je1];
xspiin = rc*p + b;
if (verboseLevel > 1) {
G4cout << "xspiel " << xspiel << endl;
G4cout << "xspiin " << xspiin << endl;
}
if (sigel >= 0.001)
crel = xspiel/(0.36*sigel*pow(G4double(csa[i]),1.17));
sigtot = sigel + sigin;
if (sigtot >= 0.001)
crin = xspiin/(sigtot*pow(G4double(csa[i]), alph));
}
}
// Apply correction factors
sigin = crin*(sigin + sigel)*pow(a, alph);
sigel = crel*0.36*sigel*pow(a, 1.17);
sigel = sigel*partel[ipart1];
sigin = sigin*partin[ipart1];
}
// Correction factor for high (p > 100 GeV/c) energies:
G4double corh = 1.;
if (p > 100.) corh = 0.1085736156*log(p) + 0.5;
sigel = corh*sigel;
sigin = corh*sigin;
// Convert cross section from mb to default units
sigelastic = sigel*millibarn;
siginelastic = sigin*millibarn;
return;
}
G4double
G4HadronCrossSections::GetCaptureCrossSection(
const G4DynamicParticle* aParticle,
const G4Element* anElement)
{
if (GetParticleCode(aParticle) != 16) return 0.;
G4double ek = aParticle->GetKineticEnergy()/GeV;
if (ek > 0.0327) return 0.;
G4double ekx = max(ek, 1.e-9);
G4double z = anElement->GetZ();
G4int izno = z + 0.01;
if (izno > 100) izno = 100; // Not in GHESIG
izno = izno - 1; // For array indexing
G4double sigcap = 11.12*cscap[izno]/pow(ekx*1.e6, 0.577);
// Convert cross section from mb to default units
sigcap = sigcap*millibarn;
return sigcap;
}
G4double
G4HadronCrossSections::GetFissionCrossSection(
const G4DynamicParticle* aParticle,
const G4Element* anElement)
{
G4double a = anElement->GetA()*mole/g;
if (a < 230.) return 0;
G4double z = anElement->GetZ();
G4double ek = aParticle->GetKineticEnergy()/GeV;
// G4int i = NFISS;
// for (G4int ii = 1; i <= NFISS; i++) {
// if (ek < ekfiss[ii - 1]) {
// i = ii;
// break;
// }
// }
// i = i - 1; // For array indexing
G4int ie1 = 0;
G4int ie2 = NFISS - 1;
do {
G4int midBin = (ie1 + ie2)/2;
if (ek < ekfiss[midBin])
ie2 = midBin;
else
ie1 = midBin;
} while (ie2 - ie1 > 1);
G4int i = ie2;
if (ek < ekfiss[0]) i = 0;
G4int j = 4;
if (ek <= 0.01) {
if (z == 92. && abs(a - 233.) < 0.5) j = 1;
else if (z == 92. && abs(a - 235.) < 0.5) j = 2;
else if (z == 94. && abs(a - 239.) < 0.5) j = 3;
}
G4double z43ba;
if (j == 4) {
z43ba = pow(z, 4./3.)/a;
z43ba = max(-67. + 38.7*z43ba, 0.);
}
else {
z43ba = 1.;
}
j = j - 1; // For array indexing
G4double sigfiss = csfiss[j][i]*z43ba;
// Convert from mb to cm^2
// sigfiss = sigfiss*1.e-27;
// Convert cross section from mb to default units
sigfiss = sigfiss*millibarn;
return sigfiss;
}
G4int
G4HadronCrossSections::GetParticleCode(const G4DynamicParticle* aParticle)
{
// Returns GHEISHA code for particle...
// There are 35 particle codes of which only the hadrons are treated here.
G4int ipart;
G4ParticleDefinition* aParticleType = aParticle->GetDefinition();
if (aParticleType == G4PionPlus::PionPlus()) ipart = 7;
else if (aParticleType == G4PionZero::PionZero()) ipart = 8;
else if (aParticleType == G4PionMinus::PionMinus()) ipart = 9;
else if (aParticleType == G4KaonPlus::KaonPlus()) ipart = 10;
else if (aParticleType == G4KaonZeroShort::KaonZeroShort()) ipart = 11;
else if (aParticleType == G4KaonZeroLong::KaonZeroLong()) ipart = 12;
else if (aParticleType == G4KaonMinus::KaonMinus()) ipart = 13;
else if (aParticleType == G4Proton::Proton()) ipart = 14;
else if (aParticleType == G4AntiProton::AntiProton()) ipart = 15;
else if (aParticleType == G4Neutron::Neutron()) ipart = 16;
else if (aParticleType == G4AntiNeutron::AntiNeutron()) ipart = 17;
else if (aParticleType == G4Lambda::Lambda()) ipart = 18;
else if (aParticleType == G4AntiLambda::AntiLambda()) ipart = 19;
else if (aParticleType == G4SigmaPlus::SigmaPlus()) ipart = 20;
else if (aParticleType == G4SigmaZero::SigmaZero()) ipart = 21;
else if (aParticleType == G4SigmaMinus::SigmaMinus()) ipart = 22;
else if (aParticleType == G4AntiSigmaPlus::AntiSigmaPlus()) ipart = 23;
else if (aParticleType == G4AntiSigmaZero::AntiSigmaZero()) ipart = 24;
else if (aParticleType == G4AntiSigmaMinus::AntiSigmaMinus()) ipart = 25;
else if (aParticleType == G4XiZero::XiZero()) ipart = 26;
else if (aParticleType == G4XiMinus::XiMinus()) ipart = 27;
else if (aParticleType == G4AntiXiZero::AntiXiZero()) ipart = 28;
else if (aParticleType == G4AntiXiMinus::AntiXiMinus()) ipart = 29;
else if (aParticleType == G4Deuteron::Deuteron()) ipart = 30;
else if (aParticleType == G4Triton::Triton()) ipart = 31;
else if (aParticleType == G4Alpha::Alpha()) ipart = 32;
else if (aParticleType == G4OmegaMinus::OmegaMinus()) ipart = 33;
else if (aParticleType == G4AntiOmegaMinus::AntiOmegaMinus()) ipart = 34;
else {
G4Exception("G4HadronCrossSections: unsupported particle");
return 0;
}
return ipart;
}