00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include "globals.hh"
00036 #include "G4ios.hh"
00037 #include "G4SystemOfUnits.hh"
00038 #include "G4XDeltaDeltastarTable.hh"
00039 #include "G4PhysicsFreeVector.hh"
00040
00041 const G4int G4XDeltaDeltastarTable::sizeDeltaDeltastar = 121;
00042
00043
00044
00045
00046 const G4double G4XDeltaDeltastarTable::energyTable[121] =
00047 {
00048 0.0,
00049 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052,
00050 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185,
00051 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413,
00052 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736,
00053 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153,
00054 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666,
00055 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273,
00056 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975,
00057 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210,
00058 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555,
00059 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899,
00060 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244
00061 };
00062
00063
00064
00065
00066 const G4double G4XDeltaDeltastarTable::sigmaDD1600[121]=
00067 {
00068 0.0,
00069 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00070 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00071 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00072 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00073 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, 0.005, 0.010,
00074 0.018, 0.000, 0.000, 0.003, 0.015, 0.045, 0.087, 0.134,
00075 0.183, 0.231, 0.277, 0.319, 0.359, 0.395, 0.429, 0.459,
00076 0.486, 0.510, 0.532, 0.551, 0.568, 0.582, 0.595, 0.605,
00077 0.614, 0.621, 0.626, 0.630, 0.633, 0.635, 0.635, 0.634,
00078 0.633, 0.630, 0.627, 0.623, 0.619, 0.614, 0.608, 0.602,
00079 0.600, 0.490, 0.391, 0.314, 0.259, 0.213, 0.178, 0.152,
00080 0.130, 0.113, 0.099, 0.088, 0.078, 0.070, 0.063, 0.057,
00081 0.052, 0.047, 0.043, 0.040, 0.037, 0.034, 0.031, 0.029,
00082 0.027, 0.026, 0.024, 0.023, 0.021, 0.020, 0.019, 0.018,
00083 0.017, 0.016, 0.015, 0.014, 0.014, 0.013, 0.013, 0.012
00084 };
00085
00086 const G4double G4XDeltaDeltastarTable::sigmaDD1620[121] =
00087 {
00088 0.0,
00089 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00090 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00091 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00092 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001,
00093 0.001, 0.002, 0.003, 0.004, 0.005, 0.007, 0.009, 0.014,
00094 0.000, 0.000, 0.001, 0.006, 0.020, 0.043, 0.070, 0.100,
00095 0.128, 0.156, 0.182, 0.207, 0.229, 0.249, 0.267, 0.284,
00096 0.299, 0.312, 0.324, 0.334, 0.343, 0.351, 0.357, 0.362,
00097 0.367, 0.370, 0.372, 0.374, 0.375, 0.375, 0.374, 0.373,
00098 0.372, 0.370, 0.367, 0.364, 0.361, 0.358, 0.354, 0.350,
00099 0.348, 0.280, 0.220, 0.176, 0.144, 0.117, 0.098, 0.091,
00100 0.071, 0.062, 0.054, 0.048, 0.042, 0.038, 0.034, 0.031,
00101 0.028, 0.025, 0.023, 0.021, 0.020, 0.018, 0.017, 0.016,
00102 0.015, 0.014, 0.013, 0.012, 0.011, 0.011, 0.010, 0.010,
00103 0.009, 0.009, 0.008, 0.008, 0.007, 0.007, 0.007, 0.006
00104 };
00105
00106 const G4double G4XDeltaDeltastarTable::sigmaDD1700[121] =
00107 {
00108 0.0,
00109 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00110 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00111 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00112 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00113 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, 0.012,
00114 0.019, 0.031, 0.000, 0.000, 0.001, 0.006, 0.021, 0.044,
00115 0.073, 0.103, 0.134, 0.164, 0.193, 0.220, 0.246, 0.269,
00116 0.291, 0.310, 0.328, 0.344, 0.358, 0.370, 0.381, 0.391,
00117 0.399, 0.405, 0.411, 0.416, 0.419, 0.421, 0.423, 0.424,
00118 0.424, 0.423, 0.422, 0.420, 0.418, 0.415, 0.412, 0.408,
00119 0.407, 0.335, 0.268, 0.215, 0.177, 0.145, 0.121, 0.103,
00120 0.088, 0.077, 0.067, 0.059, 0.053, 0.047, 0.042, 0.038,
00121 0.035, 0.032, 0.029, 0.027, 0.025, 0.023, 0.021, 0.020,
00122 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.013, 0.012,
00123 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008
00124 };
00125
00126
00127 const G4double G4XDeltaDeltastarTable::sigmaDD1900[121] =
00128 {
00129 0.0,
00130 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00131 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00132 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00133 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00134 0.001, 0.001, 0.001, 0.001, 0.002, 0.002, 0.003, 0.003,
00135 0.004, 0.006, 0.007, 0.010, 0.000, 0.000, 0.000, 0.001,
00136 0.006, 0.014, 0.025, 0.036, 0.047, 0.058, 0.068, 0.077,
00137 0.086, 0.094, 0.101, 0.107, 0.113, 0.118, 0.122, 0.126,
00138 0.129, 0.132, 0.134, 0.136, 0.137, 0.138, 0.139, 0.140,
00139 0.140, 0.140, 0.139, 0.139, 0.138, 0.137, 0.136, 0.135,
00140 0.135, 0.111, 0.088, 0.070, 0.059, 0.047, 0.039, 0.033,
00141 0.029, 0.025, 0.022, 0.019, 0.017, 0.015, 0.014, 0.012,
00142 0.011, 0.010, 0.009, 0.009, 0.008, 0.007, 0.007, 0.006,
00143 0.006, 0.005, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004,
00144 0.004, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003
00145 };
00146
00147 const G4double G4XDeltaDeltastarTable::sigmaDD1905[121] =
00148 {
00149 0.0,
00150 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00151 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00152 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00153 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00154 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00155 0.001, 0.001, 0.003, 0.005, 0.009, 0.000, 0.000, 0.001,
00156 0.005, 0.018, 0.038, 0.061, 0.086, 0.110, 0.134, 0.157,
00157 0.178, 0.197, 0.216, 0.232, 0.248, 0.262, 0.274, 0.285,
00158 0.295, 0.304, 0.312, 0.318, 0.324, 0.329, 0.333, 0.336,
00159 0.338, 0.340, 0.341, 0.342, 0.342, 0.341, 0.340, 0.339,
00160 0.338, 0.293, 0.240, 0.196, 0.166, 0.135, 0.114, 0.098,
00161 0.084, 0.073, 0.064, 0.057, 0.055, 0.045, 0.041, 0.037,
00162 0.034, 0.031, 0.028, 0.026, 0.024, 0.022, 0.021, 0.019,
00163 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.012, 0.012,
00164 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008
00165 };
00166
00167 const G4double G4XDeltaDeltastarTable::sigmaDD1910[121] =
00168 {
00169 0.0,
00170 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00171 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00172 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00173 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00174 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001,
00175 0.001, 0.001, 0.002, 0.003, 0.005, 0.008, 0.000, 0.000,
00176 0.001, 0.004, 0.010, 0.018, 0.027, 0.035, 0.044, 0.052,
00177 0.059, 0.066, 0.073, 0.078, 0.083, 0.088, 0.092, 0.096,
00178 0.099, 0.102, 0.104, 0.106, 0.108, 0.110, 0.111, 0.112,
00179 0.112, 0.113, 0.113, 0.113, 0.112, 0.112, 0.112, 0.111,
00180 0.111, 0.094, 0.076, 0.062, 0.052, 0.042, 0.036, 0.030,
00181 0.026, 0.023, 0.020, 0.018, 0.016, 0.014, 0.013, 0.011,
00182 0.010, 0.009, 0.009, 0.008, 0.007, 0.007, 0.006, 0.006,
00183 0.006, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004, 0.004,
00184 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.002
00185 };
00186
00187 const G4double G4XDeltaDeltastarTable::sigmaDD1920[121] =
00188 {
00189 0.0,
00190 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00191 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00192 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00193 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00194 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00195 0.001, 0.001, 0.001, 0.002, 0.003, 0.006, 0.000, 0.000,
00196 0.001, 0.007, 0.020, 0.040, 0.060, 0.080, 0.099, 0.117,
00197 0.133, 0.147, 0.160, 0.171, 0.181, 0.190, 0.198, 0.204,
00198 0.210, 0.215, 0.219, 0.222, 0.225, 0.227, 0.228, 0.229,
00199 0.229, 0.229, 0.229, 0.228, 0.227, 0.226, 0.224, 0.222,
00200 0.222, 0.183, 0.146, 0.117, 0.098, 0.078, 0.066, 0.056,
00201 0.048, 0.041, 0.036, 0.032, 0.028, 0.025, 0.023, 0.021,
00202 0.019, 0.017, 0.016, 0.014, 0.013, 0.012, 0.011, 0.011,
00203 0.010, 0.009, 0.009, 0.008, 0.008, 0.007, 0.007, 0.006,
00204 0.006, 0.006, 0.005, 0.005, 0.005, 0.005, 0.005, 0.004
00205 };
00206
00207 const G4double G4XDeltaDeltastarTable::sigmaDD1930[121] =
00208 {
00209 0.0,
00210 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00211 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00212 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00213 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00214 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00215 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, 0.000, 0.000,
00216 0.001, 0.004, 0.015, 0.033, 0.053, 0.075, 0.096, 0.117,
00217 0.136, 0.154, 0.171, 0.187, 0.201, 0.214, 0.225, 0.236,
00218 0.245, 0.253, 0.261, 0.267, 0.272, 0.277, 0.281, 0.284,
00219 0.287, 0.288, 0.290, 0.290, 0.291, 0.291, 0.290, 0.289,
00220 0.289, 0.251, 0.206, 0.168, 0.142, 0.115, 0.097, 0.083,
00221 0.071, 0.062, 0.059, 0.048, 0.043, 0.038, 0.035, 0.031,
00222 0.028, 0.026, 0.024, 0.022, 0.020, 0.019, 0.017, 0.016,
00223 0.015, 0.014, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010,
00224 0.009, 0.009, 0.008, 0.008, 0.008, 0.007, 0.007, 0.007
00225 };
00226
00227 const G4double G4XDeltaDeltastarTable::sigmaDD1950[121] =
00228 {
00229 0.0,
00230 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00231 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00232 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00233 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00234 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
00235 0.000, 0.001, 0.001, 0.002, 0.003, 0.006, 0.011, 0.000,
00236 0.000, 0.002, 0.011, 0.029, 0.053, 0.078, 0.103, 0.128,
00237 0.151, 0.173, 0.194, 0.213, 0.230, 0.246, 0.261, 0.274,
00238 0.285, 0.296, 0.305, 0.313, 0.320, 0.326, 0.331, 0.335,
00239 0.339, 0.342, 0.344, 0.345, 0.346, 0.346, 0.345, 0.344,
00240 0.344, 0.301, 0.247, 0.202, 0.170, 0.139, 0.117, 0.099,
00241 0.086, 0.075, 0.065, 0.058, 0.051, 0.046, 0.042, 0.038,
00242 0.034, 0.031, 0.029, 0.026, 0.024, 0.022, 0.021, 0.019,
00243 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.013, 0.012,
00244 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008
00245 };
00246
00247
00248
00249 G4XDeltaDeltastarTable::G4XDeltaDeltastarTable()
00250 {
00251 xMap["delta(1600)-"] = (G4double*) sigmaDD1600;
00252 xMap["delta(1600)0"] = (G4double*) sigmaDD1600;
00253 xMap["delta(1600)+"] = (G4double*) sigmaDD1600;
00254 xMap["delta(1600)++"] = (G4double*) sigmaDD1600;
00255
00256 xMap["delta(1620)-"] = (G4double*) sigmaDD1620;
00257 xMap["delta(1620)0"] = (G4double*) sigmaDD1620;
00258 xMap["delta(1620)+"] = (G4double*) sigmaDD1620;
00259 xMap["delta(1620)++"] = (G4double*) sigmaDD1620;
00260
00261 xMap["delta(1700)-"] = (G4double*) sigmaDD1700;
00262 xMap["delta(1700)0"] = (G4double*) sigmaDD1700;
00263 xMap["delta(1700)+"] = (G4double*) sigmaDD1700;
00264 xMap["delta(1700)++"] = (G4double*) sigmaDD1700;
00265
00266 xMap["delta(1900)-"] = (G4double*) sigmaDD1900;
00267 xMap["delta(1900)0"] = (G4double*) sigmaDD1900;
00268 xMap["delta(1900)+"] = (G4double*) sigmaDD1900;
00269 xMap["delta(1900)++"] = (G4double*) sigmaDD1900;
00270
00271 xMap["delta(1905)-"] = (G4double*) sigmaDD1905;
00272 xMap["delta(1905)0"] = (G4double*) sigmaDD1905;
00273 xMap["delta(1905)+"] = (G4double*) sigmaDD1905;
00274 xMap["delta(1905)++"] = (G4double*) sigmaDD1905;
00275
00276 xMap["delta(1910)-"] = (G4double*) sigmaDD1910;
00277 xMap["delta(1910)0"] = (G4double*) sigmaDD1910;
00278 xMap["delta(1910)+"] = (G4double*) sigmaDD1910;
00279 xMap["delta(1910)++"] = (G4double*) sigmaDD1910;
00280
00281 xMap["delta(1920)-"] = (G4double*) sigmaDD1920;
00282 xMap["delta(1920)0"] = (G4double*) sigmaDD1920;
00283 xMap["delta(1920)+"] = (G4double*) sigmaDD1920;
00284 xMap["delta(1920)++"] = (G4double*) sigmaDD1920;
00285
00286 xMap["delta(1930)-"] = (G4double*) sigmaDD1930;
00287 xMap["delta(1930)0"] = (G4double*) sigmaDD1930;
00288 xMap["delta(1930)+"] = (G4double*) sigmaDD1930;
00289 xMap["delta(1930)++"] = (G4double*) sigmaDD1930;
00290
00291 xMap["delta(1950)-"] = (G4double*) sigmaDD1950;
00292 xMap["delta(1950)0"] = (G4double*) sigmaDD1950;
00293 xMap["delta(1950)+"] = (G4double*) sigmaDD1950;
00294 xMap["delta(1950)++"] = (G4double*) sigmaDD1950;
00295 }
00296
00297
00298 G4XDeltaDeltastarTable::~G4XDeltaDeltastarTable()
00299 { }
00300
00301
00302 const G4PhysicsVector* G4XDeltaDeltastarTable::CrossSectionTable(const G4String& particleName) const
00303 {
00304
00305
00306 if (xMap.find(particleName) != xMap.end())
00307 {
00308
00309 G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeDeltaDeltastar);
00310 std::map <G4String, G4double*, std::less<G4String> >::const_iterator iter;
00311 G4double* sigmaPointer = 0;
00312 for (iter = xMap.begin(); iter != xMap.end(); ++iter)
00313 {
00314 G4String str = (*iter).first;
00315 if (str == particleName)
00316 {
00317 sigmaPointer = (*iter).second;
00318 }
00319 }
00320
00321 G4int i;
00322 for (i=0; i<sizeDeltaDeltastar; i++)
00323 {
00324 G4double value = *(sigmaPointer + i) * 0.5* millibarn;
00325 G4double energy = energyTable[i] * GeV;
00326 sigmaVector->PutValue(i,energy,value);
00327 }
00328 return sigmaVector;
00329 }
00330 else
00331
00332 return 0;
00333 }
00334
00335
00336