source: trunk/source/processes/hadronic/models/im_r_matrix/src/G4XDeltaDeltastarTable.cc@ 1201

Last change on this file since 1201 was 819, checked in by garnier, 17 years ago

import all except CVS

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