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

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

import all except CVS

File size: 15.5 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//
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 "G4XNDeltastarTable.hh"
47#include "G4PhysicsFreeVector.hh"
48
49const G4int G4XNDeltastarTable::sizeNDeltastar = 121;
50
51
52// Energies (GeV) corresponding to the cross section table
53// Units are assigned while filling the PhysicsVector
54
55const 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
75const 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
95const 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
115const 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
136const 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
156const 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
176const 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
196const 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
216const 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
236const 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
258G4XNDeltastarTable::G4XNDeltastarTable() 
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
307G4XNDeltastarTable::~G4XNDeltastarTable()
308{ }
309
310
311const G4PhysicsVector* G4XNDeltastarTable::CrossSectionTable(const G4String& particleName) const
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
Note: See TracBrowser for help on using the repository browser.