Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 // ------------------------------------------- 28 // GEANT4 Class file 29 // 30 // 31 // File name: G4XNDeltastarTable 32 // 33 // Author: Maria Grazia Pia (MariaGr 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 "G4SystemOfUnits.hh" 47 #include "G4XNDeltastarTable.hh" 48 #include "G4PhysicsFreeVector.hh" 49 50 const G4int G4XNDeltastarTable::sizeNDeltastar 51 52 // Energies (GeV) corresponding to the cross s 53 // Units are assigned when filling the Physics 54 55 const G4double G4XNDeltastarTable::energyTable 56 { 57 0.0, 58 2.014, 2.014, 2.016, 2.018, 2.022, 2.02 59 2.061, 2.071, 2.082, 2.094, 2.107, 2.12 60 2.204, 2.223, 2.244, 2.265, 2.287, 2.31 61 2.441, 2.470, 2.500, 2.531, 2.562, 2.59 62 2.773, 2.812, 2.851, 2.891, 2.933, 2.97 63 3.200, 3.248, 3.297, 3.347, 3.397, 3.44 64 3.722, 3.779, 3.838, 3.897, 3.957, 4.01 65 4.339, 4.406, 4.473, 4.542, 4.612, 4.68 66 5.000, 6.134, 7.269, 8.403, 9.538, 10.67 67 16.345, 17.479, 18.613, 19.748, 20.882, 22.01 68 27.689, 28.824, 29.958, 31.092, 32.227, 33.36 69 39.034, 40.168, 41.303, 42.437, 43.571, 44.70 70 }; 71 72 // Cross-sections in mb, from S.A. Bass et al. 73 // Units are assigned when filling the Physics 74 75 const G4double G4XNDeltastarTable::sigmaND1600 76 { 77 0.0, 78 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 79 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 80 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 81 0.001, 0.002, 0.003, 0.004, 0.006, 0.00 82 0.036, 0.060, 0.104, 0.179, 0.290, 0.41 83 0.755, 0.841, 0.914, 0.976, 1.029, 1.07 84 1.163, 1.181, 1.195, 1.204, 1.210, 1.21 85 1.203, 1.196, 1.187, 1.176, 1.164, 1.15 86 1.104, 1.087, 1.070, 1.052, 1.034, 1.01 87 0.959, 0.940, 0.921, 0.903, 0.884, 0.86 88 0.822, 0.597, 0.447, 0.345, 0.274, 0.22 89 0.132, 0.114, 0.099, 0.087, 0.077, 0.06 90 0.050, 0.046, 0.042, 0.039, 0.036, 0.03 91 0.026, 0.025, 0.023, 0.022, 0.020, 0.01 92 0.016, 0.015, 0.015, 0.014, 0.013, 0.01 93 }; 94 95 const G4double G4XNDeltastarTable::sigmaND1620 96 { 97 0.0, 98 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 99 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 100 0.001, 0.001, 0.002, 0.002, 0.003, 0.00 101 0.006, 0.007, 0.009, 0.010, 0.013, 0.01 102 0.040, 0.060, 0.096, 0.154, 0.228, 0.30 103 0.483, 0.526, 0.563, 0.595, 0.621, 0.64 104 0.685, 0.693, 0.699, 0.702, 0.704, 0.70 105 0.694, 0.689, 0.682, 0.675, 0.669, 0.66 106 0.632, 0.621, 0.611, 0.600, 0.589, 0.57 107 0.544, 0.532, 0.521, 0.510, 0.499, 0.48 108 0.463, 0.332, 0.247, 0.189, 0.150, 0.12 109 0.071, 0.061, 0.053, 0.047, 0.041, 0.03 110 0.027, 0.025, 0.022, 0.021, 0.019, 0.01 111 0.014, 0.013, 0.012, 0.012, 0.011, 0.01 112 0.009, 0.008, 0.008, 0.007, 0.007, 0.00 113 }; 114 115 const G4double G4XNDeltastarTable::sigmaND1700 116 { 117 0.0, 118 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 119 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 120 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 121 0.001, 0.002, 0.003, 0.005, 0.008, 0.01 122 0.043, 0.062, 0.090, 0.131, 0.187, 0.25 123 0.495, 0.564, 0.626, 0.680, 0.726, 0.76 124 0.852, 0.871, 0.886, 0.898, 0.906, 0.91 125 0.913, 0.909, 0.904, 0.898, 0.890, 0.88 126 0.849, 0.837, 0.825, 0.812, 0.798, 0.78 127 0.742, 0.728, 0.713, 0.699, 0.685, 0.67 128 0.637, 0.462, 0.345, 0.266, 0.211, 0.17 129 0.101, 0.087, 0.076, 0.066, 0.059, 0.05 130 0.038, 0.035, 0.032, 0.029, 0.027, 0.02 131 0.020, 0.019, 0.017, 0.016, 0.015, 0.01 132 0.012, 0.012, 0.011, 0.010, 0.010, 0.00 133 }; 134 135 136 const G4double G4XNDeltastarTable::sigmaND1900 137 { 138 0.0, 139 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 140 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 141 0.001, 0.001, 0.001, 0.001, 0.001, 0.00 142 0.002, 0.003, 0.003, 0.004, 0.005, 0.00 143 0.010, 0.012, 0.015, 0.019, 0.025, 0.03 144 0.097, 0.129, 0.162, 0.193, 0.220, 0.24 145 0.294, 0.305, 0.315, 0.322, 0.328, 0.33 146 0.338, 0.338, 0.337, 0.336, 0.334, 0.33 147 0.321, 0.316, 0.312, 0.307, 0.302, 0.29 148 0.282, 0.276, 0.271, 0.265, 0.260, 0.25 149 0.242, 0.175, 0.131, 0.101, 0.080, 0.06 150 0.038, 0.033, 0.028, 0.025, 0.022, 0.02 151 0.014, 0.013, 0.012, 0.011, 0.010, 0.00 152 0.007, 0.007, 0.007, 0.006, 0.006, 0.00 153 0.005, 0.004, 0.004, 0.004, 0.004, 0.00 154 }; 155 156 const G4double G4XNDeltastarTable::sigmaND1905 157 { 158 0.0, 159 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 160 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 161 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 162 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 163 0.002, 0.003, 0.005, 0.008, 0.013, 0.02 164 0.131, 0.206, 0.286, 0.362, 0.430, 0.49 165 0.626, 0.659, 0.687, 0.710, 0.730, 0.74 166 0.774, 0.778, 0.781, 0.782, 0.781, 0.77 167 0.764, 0.757, 0.749, 0.741, 0.732, 0.72 168 0.691, 0.680, 0.669, 0.658, 0.646, 0.63 169 0.607, 0.454, 0.346, 0.270, 0.216, 0.17 170 0.105, 0.091, 0.079, 0.070, 0.066, 0.05 171 0.041, 0.037, 0.034, 0.031, 0.029, 0.02 172 0.021, 0.020, 0.019, 0.018, 0.016, 0.01 173 0.013, 0.012, 0.012, 0.011, 0.011, 0.01 174 }; 175 176 const G4double G4XNDeltastarTable::sigmaND1910 177 { 178 0.0, 179 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 180 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 181 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 182 0.000, 0.000, 0.000, 0.001, 0.001, 0.00 183 0.002, 0.003, 0.004, 0.006, 0.008, 0.01 184 0.041, 0.063, 0.089, 0.116, 0.142, 0.16 185 0.215, 0.227, 0.238, 0.246, 0.253, 0.25 186 0.268, 0.270, 0.270, 0.270, 0.270, 0.26 187 0.263, 0.260, 0.257, 0.254, 0.251, 0.24 188 0.236, 0.232, 0.228, 0.224, 0.219, 0.21 189 0.206, 0.152, 0.115, 0.089, 0.071, 0.05 190 0.034, 0.030, 0.027, 0.023, 0.020, 0.01 191 0.013, 0.012, 0.011, 0.010, 0.009, 0.00 192 0.007, 0.006, 0.006, 0.006, 0.005, 0.00 193 0.004, 0.004, 0.004, 0.004, 0.003, 0.00 194 }; 195 196 const G4double G4XNDeltastarTable::sigmaND1920 197 { 198 0.0, 199 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 200 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 201 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 202 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 203 0.001, 0.002, 0.003, 0.004, 0.006, 0.00 204 0.037, 0.068, 0.123, 0.194, 0.263, 0.32 205 0.446, 0.473, 0.496, 0.515, 0.529, 0.54 206 0.559, 0.561, 0.561, 0.560, 0.558, 0.55 207 0.540, 0.534, 0.527, 0.519, 0.512, 0.50 208 0.478, 0.470, 0.461, 0.452, 0.443, 0.43 209 0.413, 0.301, 0.225, 0.174, 0.138, 0.11 210 0.066, 0.057, 0.049, 0.043, 0.038, 0.03 211 0.025, 0.023, 0.021, 0.019, 0.018, 0.01 212 0.013, 0.012, 0.011, 0.011, 0.010, 0.00 213 0.008, 0.008, 0.007, 0.007, 0.007, 0.00 214 }; 215 216 const G4double G4XNDeltastarTable::sigmaND1930 217 { 218 0.0, 219 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 220 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 221 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 222 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 223 0.001, 0.002, 0.003, 0.004, 0.006, 0.01 224 0.051, 0.092, 0.154, 0.227, 0.298, 0.36 225 0.509, 0.545, 0.575, 0.605, 0.626, 0.64 226 0.674, 0.680, 0.684, 0.687, 0.687, 0.68 227 0.677, 0.672, 0.666, 0.659, 0.651, 0.64 228 0.617, 0.608, 0.598, 0.588, 0.578, 0.56 229 0.544, 0.407, 0.310, 0.242, 0.193, 0.15 230 0.094, 0.081, 0.075, 0.062, 0.055, 0.04 231 0.036, 0.033, 0.030, 0.028, 0.025, 0.02 232 0.019, 0.018, 0.017, 0.016, 0.015, 0.01 233 0.012, 0.011, 0.010, 0.010, 0.009, 0.00 234 }; 235 236 const G4double G4XNDeltastarTable::sigmaND1950 237 { 238 0.0, 239 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 240 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 241 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 242 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 243 0.001, 0.001, 0.002, 0.003, 0.005, 0.00 244 0.041, 0.078, 0.142, 0.229, 0.319, 0.40 245 0.597, 0.643, 0.678, 0.711, 0.739, 0.76 246 0.809, 0.818, 0.824, 0.828, 0.830, 0.83 247 0.821, 0.815, 0.809, 0.801, 0.793, 0.78 248 0.753, 0.742, 0.730, 0.718, 0.706, 0.69 249 0.666, 0.500, 0.380, 0.297, 0.237, 0.19 250 0.115, 0.099, 0.087, 0.076, 0.068, 0.06 251 0.044, 0.040, 0.037, 0.034, 0.031, 0.02 252 0.023, 0.022, 0.020, 0.019, 0.018, 0.01 253 0.014, 0.013, 0.013, 0.012, 0.012, 0.01 254 }; 255 256 257 258 G4XNDeltastarTable::G4XNDeltastarTable() 259 { 260 xMap["delta(1600)-"] = (G4double*) sigmaND16 261 xMap["delta(1600)0"] = (G4double*) sigmaND16 262 xMap["delta(1600)+"] = (G4double*) sigmaND16 263 xMap["delta(1600)++"] = (G4double*) sigmaND1 264 265 xMap["delta(1620)-"] = (G4double*) sigmaND16 266 xMap["delta(1620)0"] = (G4double*) sigmaND16 267 xMap["delta(1620)+"] = (G4double*) sigmaND16 268 xMap["delta(1620)++"] = (G4double*) sigmaND1 269 270 xMap["delta(1700)-"] = (G4double*) sigmaND17 271 xMap["delta(1700)0"] = (G4double*) sigmaND17 272 xMap["delta(1700)+"] = (G4double*) sigmaND17 273 xMap["delta(1700)++"] = (G4double*) sigmaND1 274 275 xMap["delta(1900)-"] = (G4double*) sigmaND19 276 xMap["delta(1900)0"] = (G4double*) sigmaND19 277 xMap["delta(1900)+"] = (G4double*) sigmaND19 278 xMap["delta(1900)++"] = (G4double*) sigmaND1 279 280 xMap["delta(1905)-"] = (G4double*) sigmaND19 281 xMap["delta(1905)0"] = (G4double*) sigmaND19 282 xMap["delta(1905)+"] = (G4double*) sigmaND19 283 xMap["delta(1905)++"] = (G4double*) sigmaND1 284 285 xMap["delta(1910)-"] = (G4double*) sigmaND19 286 xMap["delta(1910)0"] = (G4double*) sigmaND19 287 xMap["delta(1910)+"] = (G4double*) sigmaND19 288 xMap["delta(1910)++"] = (G4double*) sigmaND1 289 290 xMap["delta(1920)-"] = (G4double*) sigmaND19 291 xMap["delta(1920)0"] = (G4double*) sigmaND19 292 xMap["delta(1920)+"] = (G4double*) sigmaND19 293 xMap["delta(1920)++"] = (G4double*) sigmaND1 294 295 xMap["delta(1930)-"] = (G4double*) sigmaND19 296 xMap["delta(1930)0"] = (G4double*) sigmaND19 297 xMap["delta(1930)+"] = (G4double*) sigmaND19 298 xMap["delta(1930)++"] = (G4double*) sigmaND1 299 300 xMap["delta(1950)-"] = (G4double*) sigmaND19 301 xMap["delta(1950)0"] = (G4double*) sigmaND19 302 xMap["delta(1950)+"] = (G4double*) sigmaND19 303 xMap["delta(1950)++"] = (G4double*) sigmaND1 304 } 305 306 307 G4XNDeltastarTable::~G4XNDeltastarTable() 308 { } 309 310 311 const G4PhysicsVector* G4XNDeltastarTable::Cro 312 { 313 // NOTE: the returned pointer is owned by th 314 315 if (xMap.find(particleName) != xMap.end()) 316 { 317 // Cross section table for the requested 318 G4PhysicsFreeVector* sigmaVector = new G 319 std::map <G4String, G4double*, std::less 320 G4double* sigmaPointer = 0; 321 for (iter = xMap.begin(); iter != xMap.e 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 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 requeste 341 return 0; 342 } 343 344 345 346 347 348 349 350 351 352 353