Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4XDeltaDeltastarTable.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// Hadron Kinetic Model
31// p p -> Delta Delta* cross section tables
32//
33// -------------------------------------------------------------------
34
35#include "globals.hh"
36#include "G4ios.hh"
37#include "G4SystemOfUnits.hh"
40
41const G4int G4XDeltaDeltastarTable::sizeDeltaDeltastar = 121;
42
43// Energies (GeV) corresponding to the cross section table
44// Units are assigned when filling the PhysicsVector
45
46const G4double G4XDeltaDeltastarTable::energyTable[121] =
47{
48 0.0,
49 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052,
50 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185,
51 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413,
52 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736,
53 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153,
54 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666,
55 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273,
56 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975,
57 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210,
58 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555,
59 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899,
60 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244
61};
62
63// Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998
64// Units are assigned when filling the PhysicsVector
65
66const G4double G4XDeltaDeltastarTable::sigmaDD1600[121]=
67{
68 0.0,
69 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
70 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
71 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
72 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
73 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, 0.005, 0.010,
74 0.018, 0.000, 0.000, 0.003, 0.015, 0.045, 0.087, 0.134,
75 0.183, 0.231, 0.277, 0.319, 0.359, 0.395, 0.429, 0.459,
76 0.486, 0.510, 0.532, 0.551, 0.568, 0.582, 0.595, 0.605,
77 0.614, 0.621, 0.626, 0.630, 0.633, 0.635, 0.635, 0.634,
78 0.633, 0.630, 0.627, 0.623, 0.619, 0.614, 0.608, 0.602,
79 0.600, 0.490, 0.391, 0.314, 0.259, 0.213, 0.178, 0.152,
80 0.130, 0.113, 0.099, 0.088, 0.078, 0.070, 0.063, 0.057,
81 0.052, 0.047, 0.043, 0.040, 0.037, 0.034, 0.031, 0.029,
82 0.027, 0.026, 0.024, 0.023, 0.021, 0.020, 0.019, 0.018,
83 0.017, 0.016, 0.015, 0.014, 0.014, 0.013, 0.013, 0.012
84};
85
86const G4double G4XDeltaDeltastarTable::sigmaDD1620[121] =
87{
88 0.0,
89 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
90 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
91 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
92 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001,
93 0.001, 0.002, 0.003, 0.004, 0.005, 0.007, 0.009, 0.014,
94 0.000, 0.000, 0.001, 0.006, 0.020, 0.043, 0.070, 0.100,
95 0.128, 0.156, 0.182, 0.207, 0.229, 0.249, 0.267, 0.284,
96 0.299, 0.312, 0.324, 0.334, 0.343, 0.351, 0.357, 0.362,
97 0.367, 0.370, 0.372, 0.374, 0.375, 0.375, 0.374, 0.373,
98 0.372, 0.370, 0.367, 0.364, 0.361, 0.358, 0.354, 0.350,
99 0.348, 0.280, 0.220, 0.176, 0.144, 0.117, 0.098, 0.091,
100 0.071, 0.062, 0.054, 0.048, 0.042, 0.038, 0.034, 0.031,
101 0.028, 0.025, 0.023, 0.021, 0.020, 0.018, 0.017, 0.016,
102 0.015, 0.014, 0.013, 0.012, 0.011, 0.011, 0.010, 0.010,
103 0.009, 0.009, 0.008, 0.008, 0.007, 0.007, 0.007, 0.006
104};
105
106const G4double G4XDeltaDeltastarTable::sigmaDD1700[121] =
107{
108 0.0,
109 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
110 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
111 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
112 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
113 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, 0.012,
114 0.019, 0.031, 0.000, 0.000, 0.001, 0.006, 0.021, 0.044,
115 0.073, 0.103, 0.134, 0.164, 0.193, 0.220, 0.246, 0.269,
116 0.291, 0.310, 0.328, 0.344, 0.358, 0.370, 0.381, 0.391,
117 0.399, 0.405, 0.411, 0.416, 0.419, 0.421, 0.423, 0.424,
118 0.424, 0.423, 0.422, 0.420, 0.418, 0.415, 0.412, 0.408,
119 0.407, 0.335, 0.268, 0.215, 0.177, 0.145, 0.121, 0.103,
120 0.088, 0.077, 0.067, 0.059, 0.053, 0.047, 0.042, 0.038,
121 0.035, 0.032, 0.029, 0.027, 0.025, 0.023, 0.021, 0.020,
122 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.013, 0.012,
123 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008
124};
125
126
127const G4double G4XDeltaDeltastarTable::sigmaDD1900[121] =
128{
129 0.0,
130 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
131 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
132 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
133 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
134 0.001, 0.001, 0.001, 0.001, 0.002, 0.002, 0.003, 0.003,
135 0.004, 0.006, 0.007, 0.010, 0.000, 0.000, 0.000, 0.001,
136 0.006, 0.014, 0.025, 0.036, 0.047, 0.058, 0.068, 0.077,
137 0.086, 0.094, 0.101, 0.107, 0.113, 0.118, 0.122, 0.126,
138 0.129, 0.132, 0.134, 0.136, 0.137, 0.138, 0.139, 0.140,
139 0.140, 0.140, 0.139, 0.139, 0.138, 0.137, 0.136, 0.135,
140 0.135, 0.111, 0.088, 0.070, 0.059, 0.047, 0.039, 0.033,
141 0.029, 0.025, 0.022, 0.019, 0.017, 0.015, 0.014, 0.012,
142 0.011, 0.010, 0.009, 0.009, 0.008, 0.007, 0.007, 0.006,
143 0.006, 0.005, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004,
144 0.004, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003
145};
146
147const G4double G4XDeltaDeltastarTable::sigmaDD1905[121] =
148{
149 0.0,
150 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
151 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
152 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
153 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
154 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
155 0.001, 0.001, 0.003, 0.005, 0.009, 0.000, 0.000, 0.001,
156 0.005, 0.018, 0.038, 0.061, 0.086, 0.110, 0.134, 0.157,
157 0.178, 0.197, 0.216, 0.232, 0.248, 0.262, 0.274, 0.285,
158 0.295, 0.304, 0.312, 0.318, 0.324, 0.329, 0.333, 0.336,
159 0.338, 0.340, 0.341, 0.342, 0.342, 0.341, 0.340, 0.339,
160 0.338, 0.293, 0.240, 0.196, 0.166, 0.135, 0.114, 0.098,
161 0.084, 0.073, 0.064, 0.057, 0.055, 0.045, 0.041, 0.037,
162 0.034, 0.031, 0.028, 0.026, 0.024, 0.022, 0.021, 0.019,
163 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.012, 0.012,
164 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008
165};
166
167const G4double G4XDeltaDeltastarTable::sigmaDD1910[121] =
168{
169 0.0,
170 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
171 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
172 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
173 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
174 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001,
175 0.001, 0.001, 0.002, 0.003, 0.005, 0.008, 0.000, 0.000,
176 0.001, 0.004, 0.010, 0.018, 0.027, 0.035, 0.044, 0.052,
177 0.059, 0.066, 0.073, 0.078, 0.083, 0.088, 0.092, 0.096,
178 0.099, 0.102, 0.104, 0.106, 0.108, 0.110, 0.111, 0.112,
179 0.112, 0.113, 0.113, 0.113, 0.112, 0.112, 0.112, 0.111,
180 0.111, 0.094, 0.076, 0.062, 0.052, 0.042, 0.036, 0.030,
181 0.026, 0.023, 0.020, 0.018, 0.016, 0.014, 0.013, 0.011,
182 0.010, 0.009, 0.009, 0.008, 0.007, 0.007, 0.006, 0.006,
183 0.006, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004, 0.004,
184 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.002
185};
186
187const G4double G4XDeltaDeltastarTable::sigmaDD1920[121] =
188{
189 0.0,
190 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
191 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
192 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
193 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
194 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
195 0.001, 0.001, 0.001, 0.002, 0.003, 0.006, 0.000, 0.000,
196 0.001, 0.007, 0.020, 0.040, 0.060, 0.080, 0.099, 0.117,
197 0.133, 0.147, 0.160, 0.171, 0.181, 0.190, 0.198, 0.204,
198 0.210, 0.215, 0.219, 0.222, 0.225, 0.227, 0.228, 0.229,
199 0.229, 0.229, 0.229, 0.228, 0.227, 0.226, 0.224, 0.222,
200 0.222, 0.183, 0.146, 0.117, 0.098, 0.078, 0.066, 0.056,
201 0.048, 0.041, 0.036, 0.032, 0.028, 0.025, 0.023, 0.021,
202 0.019, 0.017, 0.016, 0.014, 0.013, 0.012, 0.011, 0.011,
203 0.010, 0.009, 0.009, 0.008, 0.008, 0.007, 0.007, 0.006,
204 0.006, 0.006, 0.005, 0.005, 0.005, 0.005, 0.005, 0.004
205};
206
207const G4double G4XDeltaDeltastarTable::sigmaDD1930[121] =
208{
209 0.0,
210 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
211 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
212 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
213 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
214 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
215 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, 0.000, 0.000,
216 0.001, 0.004, 0.015, 0.033, 0.053, 0.075, 0.096, 0.117,
217 0.136, 0.154, 0.171, 0.187, 0.201, 0.214, 0.225, 0.236,
218 0.245, 0.253, 0.261, 0.267, 0.272, 0.277, 0.281, 0.284,
219 0.287, 0.288, 0.290, 0.290, 0.291, 0.291, 0.290, 0.289,
220 0.289, 0.251, 0.206, 0.168, 0.142, 0.115, 0.097, 0.083,
221 0.071, 0.062, 0.059, 0.048, 0.043, 0.038, 0.035, 0.031,
222 0.028, 0.026, 0.024, 0.022, 0.020, 0.019, 0.017, 0.016,
223 0.015, 0.014, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010,
224 0.009, 0.009, 0.008, 0.008, 0.008, 0.007, 0.007, 0.007
225};
226
227const G4double G4XDeltaDeltastarTable::sigmaDD1950[121] =
228{
229 0.0,
230 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
231 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
232 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
233 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
234 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
235 0.000, 0.001, 0.001, 0.002, 0.003, 0.006, 0.011, 0.000,
236 0.000, 0.002, 0.011, 0.029, 0.053, 0.078, 0.103, 0.128,
237 0.151, 0.173, 0.194, 0.213, 0.230, 0.246, 0.261, 0.274,
238 0.285, 0.296, 0.305, 0.313, 0.320, 0.326, 0.331, 0.335,
239 0.339, 0.342, 0.344, 0.345, 0.346, 0.346, 0.345, 0.344,
240 0.344, 0.301, 0.247, 0.202, 0.170, 0.139, 0.117, 0.099,
241 0.086, 0.075, 0.065, 0.058, 0.051, 0.046, 0.042, 0.038,
242 0.034, 0.031, 0.029, 0.026, 0.024, 0.022, 0.021, 0.019,
243 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.013, 0.012,
244 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008
245};
246
247
248
250{
251 xMap["delta(1600)-"] = (G4double*) sigmaDD1600;
252 xMap["delta(1600)0"] = (G4double*) sigmaDD1600;
253 xMap["delta(1600)+"] = (G4double*) sigmaDD1600;
254 xMap["delta(1600)++"] = (G4double*) sigmaDD1600;
255
256 xMap["delta(1620)-"] = (G4double*) sigmaDD1620;
257 xMap["delta(1620)0"] = (G4double*) sigmaDD1620;
258 xMap["delta(1620)+"] = (G4double*) sigmaDD1620;
259 xMap["delta(1620)++"] = (G4double*) sigmaDD1620;
260
261 xMap["delta(1700)-"] = (G4double*) sigmaDD1700;
262 xMap["delta(1700)0"] = (G4double*) sigmaDD1700;
263 xMap["delta(1700)+"] = (G4double*) sigmaDD1700;
264 xMap["delta(1700)++"] = (G4double*) sigmaDD1700;
265
266 xMap["delta(1900)-"] = (G4double*) sigmaDD1900;
267 xMap["delta(1900)0"] = (G4double*) sigmaDD1900;
268 xMap["delta(1900)+"] = (G4double*) sigmaDD1900;
269 xMap["delta(1900)++"] = (G4double*) sigmaDD1900;
270
271 xMap["delta(1905)-"] = (G4double*) sigmaDD1905;
272 xMap["delta(1905)0"] = (G4double*) sigmaDD1905;
273 xMap["delta(1905)+"] = (G4double*) sigmaDD1905;
274 xMap["delta(1905)++"] = (G4double*) sigmaDD1905;
275
276 xMap["delta(1910)-"] = (G4double*) sigmaDD1910;
277 xMap["delta(1910)0"] = (G4double*) sigmaDD1910;
278 xMap["delta(1910)+"] = (G4double*) sigmaDD1910;
279 xMap["delta(1910)++"] = (G4double*) sigmaDD1910;
280
281 xMap["delta(1920)-"] = (G4double*) sigmaDD1920;
282 xMap["delta(1920)0"] = (G4double*) sigmaDD1920;
283 xMap["delta(1920)+"] = (G4double*) sigmaDD1920;
284 xMap["delta(1920)++"] = (G4double*) sigmaDD1920;
285
286 xMap["delta(1930)-"] = (G4double*) sigmaDD1930;
287 xMap["delta(1930)0"] = (G4double*) sigmaDD1930;
288 xMap["delta(1930)+"] = (G4double*) sigmaDD1930;
289 xMap["delta(1930)++"] = (G4double*) sigmaDD1930;
290
291 xMap["delta(1950)-"] = (G4double*) sigmaDD1950;
292 xMap["delta(1950)0"] = (G4double*) sigmaDD1950;
293 xMap["delta(1950)+"] = (G4double*) sigmaDD1950;
294 xMap["delta(1950)++"] = (G4double*) sigmaDD1950;
295}
296
297
299{ }
300
301
303{
304 // NOTE: the returned pointer is owned by the client
305
306 if (xMap.find(particleName) != xMap.end())
307 {
308 // Cross section table for the requested particle available in the Map
309 G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeDeltaDeltastar);
310 std::map <G4String, G4double*, std::less<G4String> >::const_iterator iter;
311 G4double* sigmaPointer = 0;
312 for (iter = xMap.begin(); iter != xMap.end(); ++iter)
313 {
314 G4String str = (*iter).first;
315 if (str == particleName)
316 {
317 sigmaPointer = (*iter).second;
318 }
319 }
320
321 G4int i;
322 for (i=0; i<sizeDeltaDeltastar; i++)
323 {
324 G4double value = *(sigmaPointer + i) * 0.5* millibarn;
325 G4double energy = energyTable[i] * GeV;
326 sigmaVector->PutValue(i,energy,value);
327 }
328 return sigmaVector;
329 }
330 else
331 // No cross section table for the requested particle is available in the Map
332 return 0;
333}
334
335
336
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
void PutValue(std::size_t index, G4double energy, G4double dValue)
std::size_t first(char) const
virtual const G4PhysicsVector * CrossSectionTable(const G4String &particleName) const