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

Last change on this file since 836 was 819, checked in by garnier, 16 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.