Geant4_10
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 
50 const G4int G4XNDeltastarTable::sizeNDeltastar = 121;
51 
52 // Energies (GeV) corresponding to the cross section table
53 // Units are assigned while filling the PhysicsVector
54 
55 const G4double G4XNDeltastarTable::energyTable[121] =
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 
75 const G4double G4XNDeltastarTable::sigmaND1600[121]=
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 
95 const G4double G4XNDeltastarTable::sigmaND1620[121] =
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 
115 const G4double G4XNDeltastarTable::sigmaND1700[121] =
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 
136 const G4double G4XNDeltastarTable::sigmaND1900[121] =
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 
156 const G4double G4XNDeltastarTable::sigmaND1905[121] =
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 
176 const G4double G4XNDeltastarTable::sigmaND1910[121] =
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 
196 const G4double G4XNDeltastarTable::sigmaND1920[121] =
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 
216 const G4double G4XNDeltastarTable::sigmaND1930[121] =
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 
236 const G4double G4XNDeltastarTable::sigmaND1950[121] =
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
318  G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeNDeltastar);
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;
334  G4double energy = energyTable[i] * GeV;
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)
G4int first(char) const
int G4int
Definition: G4Types.hh:78
int millibarn
Definition: hepunit.py:40
double energy
Definition: plottest35.C:25
const XML_Char int const XML_Char * value
Definition: expat.h:331
double G4double
Definition: G4Types.hh:76