1597 lines
79 KiB
C++
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;
|
|
}
|