Geant4  10.00.p02
G4XNDeltastarTable.cc
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 // -------------------------------------------------------------------
28 // GEANT4 Class file
29 //
30 //
31 // File name: G4XNDeltastarTable
32 //
33 // Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it)
34 //
35 // Creation date: 4 June 1999
36 //
37 // Modifications:
38 //
39 // Hadron Kinetic Model
40 // p p -> N Delta* cross section tables
41 //
42 // -------------------------------------------------------------------
43 
44 #include "globals.hh"
45 #include "G4ios.hh"
46 #include "G4SystemOfUnits.hh"
47 #include "G4XNDeltastarTable.hh"
48 #include "G4PhysicsFreeVector.hh"
49 
51 
52 // Energies (GeV) corresponding to the cross section table
53 // Units are assigned while filling the PhysicsVector
54 
56 {
57  0.0,
58  2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052,
59  2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185,
60  2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413,
61  2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736,
62  2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153,
63  3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666,
64  3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273,
65  4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975,
66  5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210,
67  16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555,
68  27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899,
69  39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244
70 };
71 
72 // Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998
73 // Units are assigned while filling the PhysicsVector
74 
76 {
77  0.0,
78  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
79  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
80  0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001,
81  0.001, 0.002, 0.003, 0.004, 0.006, 0.009, 0.014, 0.022,
82  0.036, 0.060, 0.104, 0.179, 0.290, 0.418, 0.543, 0.656,
83  0.755, 0.841, 0.914, 0.976, 1.029, 1.073, 1.110, 1.139,
84  1.163, 1.181, 1.195, 1.204, 1.210, 1.212, 1.212, 1.209,
85  1.203, 1.196, 1.187, 1.176, 1.164, 1.150, 1.136, 1.120,
86  1.104, 1.087, 1.070, 1.052, 1.034, 1.016, 0.997, 0.978,
87  0.959, 0.940, 0.921, 0.903, 0.884, 0.865, 0.847, 0.828,
88  0.822, 0.597, 0.447, 0.345, 0.274, 0.223, 0.184, 0.155,
89  0.132, 0.114, 0.099, 0.087, 0.077, 0.069, 0.062, 0.056,
90  0.050, 0.046, 0.042, 0.039, 0.036, 0.033, 0.030, 0.028,
91  0.026, 0.025, 0.023, 0.022, 0.020, 0.019, 0.018, 0.017,
92  0.016, 0.015, 0.015, 0.014, 0.013, 0.013, 0.012, 0.011
93 };
94 
96 {
97  0.0,
98  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
99  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001,
100  0.001, 0.001, 0.002, 0.002, 0.003, 0.003, 0.004, 0.005,
101  0.006, 0.007, 0.009, 0.010, 0.013, 0.016, 0.021, 0.028,
102  0.040, 0.060, 0.096, 0.154, 0.228, 0.304, 0.372, 0.431,
103  0.483, 0.526, 0.563, 0.595, 0.621, 0.643, 0.660, 0.674,
104  0.685, 0.693, 0.699, 0.702, 0.704, 0.704, 0.702, 0.699,
105  0.694, 0.689, 0.682, 0.675, 0.669, 0.661, 0.651, 0.642,
106  0.632, 0.621, 0.611, 0.600, 0.589, 0.577, 0.566, 0.555,
107  0.544, 0.532, 0.521, 0.510, 0.499, 0.488, 0.477, 0.466,
108  0.463, 0.332, 0.247, 0.189, 0.150, 0.121, 0.100, 0.084,
109  0.071, 0.061, 0.053, 0.047, 0.041, 0.037, 0.033, 0.030,
110  0.027, 0.025, 0.022, 0.021, 0.019, 0.018, 0.016, 0.015,
111  0.014, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010, 0.009,
112  0.009, 0.008, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006
113 };
114 
116 {
117  0.0,
118  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
119  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
120  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001,
121  0.001, 0.002, 0.003, 0.005, 0.008, 0.013, 0.020, 0.029,
122  0.043, 0.062, 0.090, 0.131, 0.187, 0.258, 0.338, 0.418,
123  0.495, 0.564, 0.626, 0.680, 0.726, 0.766, 0.800, 0.828,
124  0.852, 0.871, 0.886, 0.898, 0.906, 0.911, 0.914, 0.914,
125  0.913, 0.909, 0.904, 0.898, 0.890, 0.881, 0.871, 0.861,
126  0.849, 0.837, 0.825, 0.812, 0.798, 0.785, 0.771, 0.756,
127  0.742, 0.728, 0.713, 0.699, 0.685, 0.670, 0.656, 0.642,
128  0.637, 0.462, 0.345, 0.266, 0.211, 0.171, 0.141, 0.119,
129  0.101, 0.087, 0.076, 0.066, 0.059, 0.052, 0.047, 0.042,
130  0.038, 0.035, 0.032, 0.029, 0.027, 0.025, 0.023, 0.021,
131  0.020, 0.019, 0.017, 0.016, 0.015, 0.015, 0.014, 0.013,
132  0.012, 0.012, 0.011, 0.010, 0.010, 0.009, 0.009, 0.009
133 };
134 
135 
137 {
138  0.0,
139  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
140  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
141  0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.002, 0.002,
142  0.002, 0.003, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008,
143  0.010, 0.012, 0.015, 0.019, 0.025, 0.034, 0.048, 0.069,
144  0.097, 0.129, 0.162, 0.193, 0.220, 0.243, 0.263, 0.280,
145  0.294, 0.305, 0.315, 0.322, 0.328, 0.333, 0.336, 0.337,
146  0.338, 0.338, 0.337, 0.336, 0.334, 0.331, 0.328, 0.325,
147  0.321, 0.316, 0.312, 0.307, 0.302, 0.297, 0.292, 0.287,
148  0.282, 0.276, 0.271, 0.265, 0.260, 0.255, 0.249, 0.244,
149  0.242, 0.175, 0.131, 0.101, 0.080, 0.064, 0.053, 0.045,
150  0.038, 0.033, 0.028, 0.025, 0.022, 0.020, 0.018, 0.016,
151  0.014, 0.013, 0.012, 0.011, 0.010, 0.009, 0.009, 0.008,
152  0.007, 0.007, 0.007, 0.006, 0.006, 0.005, 0.005, 0.005,
153  0.005, 0.004, 0.004, 0.004, 0.004, 0.004, 0.003, 0.003
154 };
155 
157 {
158  0.0,
159  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
160  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
161  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
162  0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001,
163  0.002, 0.003, 0.005, 0.008, 0.013, 0.023, 0.041, 0.075,
164  0.131, 0.206, 0.286, 0.362, 0.430, 0.491, 0.542, 0.587,
165  0.626, 0.659, 0.687, 0.710, 0.730, 0.745, 0.757, 0.767,
166  0.774, 0.778, 0.781, 0.782, 0.781, 0.778, 0.775, 0.770,
167  0.764, 0.757, 0.749, 0.741, 0.732, 0.722, 0.712, 0.702,
168  0.691, 0.680, 0.669, 0.658, 0.646, 0.635, 0.623, 0.611,
169  0.607, 0.454, 0.346, 0.270, 0.216, 0.176, 0.146, 0.123,
170  0.105, 0.091, 0.079, 0.070, 0.066, 0.055, 0.050, 0.045,
171  0.041, 0.037, 0.034, 0.031, 0.029, 0.027, 0.025, 0.023,
172  0.021, 0.020, 0.019, 0.018, 0.016, 0.016, 0.015, 0.014,
173  0.013, 0.012, 0.012, 0.011, 0.011, 0.010, 0.010, 0.009
174 };
175 
177 {
178  0.0,
179  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
180  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
181  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
182  0.000, 0.000, 0.000, 0.001, 0.001, 0.001, 0.001, 0.002,
183  0.002, 0.003, 0.004, 0.006, 0.008, 0.012, 0.017, 0.026,
184  0.041, 0.063, 0.089, 0.116, 0.142, 0.164, 0.184, 0.201,
185  0.215, 0.227, 0.238, 0.246, 0.253, 0.259, 0.263, 0.266,
186  0.268, 0.270, 0.270, 0.270, 0.270, 0.269, 0.267, 0.265,
187  0.263, 0.260, 0.257, 0.254, 0.251, 0.247, 0.243, 0.240,
188  0.236, 0.232, 0.228, 0.224, 0.219, 0.215, 0.211, 0.207,
189  0.206, 0.152, 0.115, 0.089, 0.071, 0.058, 0.048, 0.040,
190  0.034, 0.030, 0.027, 0.023, 0.020, 0.018, 0.016, 0.015,
191  0.013, 0.012, 0.011, 0.010, 0.009, 0.009, 0.008, 0.007,
192  0.007, 0.006, 0.006, 0.006, 0.005, 0.005, 0.005, 0.004,
193  0.004, 0.004, 0.004, 0.004, 0.003, 0.003, 0.003, 0.003
194 };
195 
197 {
198  0.0,
199  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
200  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
201  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
202  0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001,
203  0.001, 0.002, 0.003, 0.004, 0.006, 0.009, 0.013, 0.022,
204  0.037, 0.068, 0.123, 0.194, 0.263, 0.322, 0.371, 0.412,
205  0.446, 0.473, 0.496, 0.515, 0.529, 0.540, 0.549, 0.555,
206  0.559, 0.561, 0.561, 0.560, 0.558, 0.555, 0.551, 0.546,
207  0.540, 0.534, 0.527, 0.519, 0.512, 0.504, 0.495, 0.487,
208  0.478, 0.470, 0.461, 0.452, 0.443, 0.434, 0.425, 0.416,
209  0.413, 0.301, 0.225, 0.174, 0.138, 0.112, 0.092, 0.078,
210  0.066, 0.057, 0.049, 0.043, 0.038, 0.034, 0.031, 0.028,
211  0.025, 0.023, 0.021, 0.019, 0.018, 0.016, 0.015, 0.014,
212  0.013, 0.012, 0.011, 0.011, 0.010, 0.009, 0.009, 0.008,
213  0.008, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, 0.006
214 };
215 
217 {
218  0.0,
219  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
220  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
221  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
222  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001,
223  0.001, 0.002, 0.003, 0.004, 0.006, 0.010, 0.016, 0.028,
224  0.051, 0.092, 0.154, 0.227, 0.298, 0.363, 0.419, 0.468,
225  0.509, 0.545, 0.575, 0.605, 0.626, 0.643, 0.658, 0.665,
226  0.674, 0.680, 0.684, 0.687, 0.687, 0.687, 0.685, 0.681,
227  0.677, 0.672, 0.666, 0.659, 0.651, 0.644, 0.635, 0.626,
228  0.617, 0.608, 0.598, 0.588, 0.578, 0.568, 0.558, 0.547,
229  0.544, 0.407, 0.310, 0.242, 0.193, 0.157, 0.131, 0.110,
230  0.094, 0.081, 0.075, 0.062, 0.055, 0.049, 0.044, 0.040,
231  0.036, 0.033, 0.030, 0.028, 0.025, 0.024, 0.022, 0.020,
232  0.019, 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.012,
233  0.012, 0.011, 0.010, 0.010, 0.009, 0.009, 0.009, 0.008
234 };
235 
237 {
238  0.0,
239  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
240  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
241  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
242  0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001,
243  0.001, 0.001, 0.002, 0.003, 0.005, 0.008, 0.013, 0.023,
244  0.041, 0.078, 0.142, 0.229, 0.319, 0.402, 0.475, 0.538,
245  0.597, 0.643, 0.678, 0.711, 0.739, 0.762, 0.781, 0.797,
246  0.809, 0.818, 0.824, 0.828, 0.830, 0.830, 0.829, 0.825,
247  0.821, 0.815, 0.809, 0.801, 0.793, 0.784, 0.774, 0.764,
248  0.753, 0.742, 0.730, 0.718, 0.706, 0.694, 0.682, 0.670,
249  0.666, 0.500, 0.380, 0.297, 0.237, 0.193, 0.160, 0.135,
250  0.115, 0.099, 0.087, 0.076, 0.068, 0.060, 0.054, 0.049,
251  0.044, 0.040, 0.037, 0.034, 0.031, 0.029, 0.027, 0.025,
252  0.023, 0.022, 0.020, 0.019, 0.018, 0.017, 0.016, 0.015,
253  0.014, 0.013, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010
254 };
255 
256 
257 
259 {
260  xMap["delta(1600)-"] = (G4double*) sigmaND1600;
261  xMap["delta(1600)0"] = (G4double*) sigmaND1600;
262  xMap["delta(1600)+"] = (G4double*) sigmaND1600;
263  xMap["delta(1600)++"] = (G4double*) sigmaND1600;
264 
265  xMap["delta(1620)-"] = (G4double*) sigmaND1620;
266  xMap["delta(1620)0"] = (G4double*) sigmaND1620;
267  xMap["delta(1620)+"] = (G4double*) sigmaND1620;
268  xMap["delta(1620)++"] = (G4double*) sigmaND1620;
269 
270  xMap["delta(1700)-"] = (G4double*) sigmaND1700;
271  xMap["delta(1700)0"] = (G4double*) sigmaND1700;
272  xMap["delta(1700)+"] = (G4double*) sigmaND1700;
273  xMap["delta(1700)++"] = (G4double*) sigmaND1700;
274 
275  xMap["delta(1900)-"] = (G4double*) sigmaND1900;
276  xMap["delta(1900)0"] = (G4double*) sigmaND1900;
277  xMap["delta(1900)+"] = (G4double*) sigmaND1900;
278  xMap["delta(1900)++"] = (G4double*) sigmaND1900;
279 
280  xMap["delta(1905)-"] = (G4double*) sigmaND1905;
281  xMap["delta(1905)0"] = (G4double*) sigmaND1905;
282  xMap["delta(1905)+"] = (G4double*) sigmaND1905;
283  xMap["delta(1905)++"] = (G4double*) sigmaND1905;
284 
285  xMap["delta(1910)-"] = (G4double*) sigmaND1910;
286  xMap["delta(1910)0"] = (G4double*) sigmaND1910;
287  xMap["delta(1910)+"] = (G4double*) sigmaND1910;
288  xMap["delta(1910)++"] = (G4double*) sigmaND1910;
289 
290  xMap["delta(1920)-"] = (G4double*) sigmaND1920;
291  xMap["delta(1920)0"] = (G4double*) sigmaND1920;
292  xMap["delta(1920)+"] = (G4double*) sigmaND1920;
293  xMap["delta(1920)++"] = (G4double*) sigmaND1920;
294 
295  xMap["delta(1930)-"] = (G4double*) sigmaND1930;
296  xMap["delta(1930)0"] = (G4double*) sigmaND1930;
297  xMap["delta(1930)+"] = (G4double*) sigmaND1930;
298  xMap["delta(1930)++"] = (G4double*) sigmaND1930;
299 
300  xMap["delta(1950)-"] = (G4double*) sigmaND1950;
301  xMap["delta(1950)0"] = (G4double*) sigmaND1950;
302  xMap["delta(1950)+"] = (G4double*) sigmaND1950;
303  xMap["delta(1950)++"] = (G4double*) sigmaND1950;
304 }
305 
306 
308 { }
309 
310 
312 {
313  // NOTE: the returned pointer is owned by the client
314 
315  if (xMap.find(particleName) != xMap.end())
316  {
317  // Cross section table for the requested particle available in the Map
319  std::map <G4String, G4double*, std::less<G4String> >::const_iterator iter;
320  G4double* sigmaPointer = 0;
321  for (iter = xMap.begin(); iter != xMap.end(); ++iter)
322  {
323  G4String str = (*iter).first;
324  if (str == particleName)
325  {
326  sigmaPointer = (*iter).second;
327  }
328  }
329 
330  G4int i;
331  for (i=0; i<sizeNDeltastar; i++)
332  {
333  G4double value = *(sigmaPointer + i) * 0.5* millibarn;
335  sigmaVector->PutValue(i,energy,value);
336  }
337  return sigmaVector;
338  }
339  else
340  // No cross section table for the requested particle is available in the Map
341  return 0;
342 }
343 
344 
345 
346 
347 
348 
349 
350 
351 
352 
virtual const G4PhysicsVector * CrossSectionTable(const G4String &particleName) const
void PutValue(size_t binNumber, G4double binValue, G4double dataValue)
static const G4double sigmaND1930[121]
G4int first(char) const
static const G4double energyTable[121]
static const G4double sigmaND1950[121]
std::map< G4String, G4double *, std::less< G4String > > xMap
int G4int
Definition: G4Types.hh:78
static const G4int sizeNDeltastar
static const G4double sigmaND1905[121]
static const double GeV
Definition: G4SIunits.hh:196
static const G4double sigmaND1600[121]
static const G4double sigmaND1900[121]
static const G4double sigmaND1920[121]
static const G4double sigmaND1700[121]
G4double energy(const ThreeVector &p, const G4double m)
static const double millibarn
Definition: G4SIunits.hh:96
static const G4double sigmaND1620[121]
double G4double
Definition: G4Types.hh:76
static const G4double sigmaND1910[121]