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 // Hadron Kinetic Model 31 // p p -> Delta Delta* cross section tables 32 // 33 // ------------------------------------------- 34 35 #include "globals.hh" 36 #include "G4ios.hh" 37 #include "G4SystemOfUnits.hh" 38 #include "G4XDeltaDeltastarTable.hh" 39 #include "G4PhysicsFreeVector.hh" 40 41 const G4int G4XDeltaDeltastarTable::sizeDeltaD 42 43 // Energies (GeV) corresponding to the cross s 44 // Units are assigned when filling the Physics 45 46 const G4double G4XDeltaDeltastarTable::energyT 47 { 48 0.0, 49 2.014, 2.014, 2.016, 2.018, 2.022, 2.02 50 2.061, 2.071, 2.082, 2.094, 2.107, 2.12 51 2.204, 2.223, 2.244, 2.265, 2.287, 2.31 52 2.441, 2.470, 2.500, 2.531, 2.562, 2.59 53 2.773, 2.812, 2.851, 2.891, 2.933, 2.97 54 3.200, 3.248, 3.297, 3.347, 3.397, 3.44 55 3.722, 3.779, 3.838, 3.897, 3.957, 4.01 56 4.339, 4.406, 4.473, 4.542, 4.612, 4.68 57 5.000, 6.134, 7.269, 8.403, 9.538, 10.67 58 16.345, 17.479, 18.613, 19.748, 20.882, 22.01 59 27.689, 28.824, 29.958, 31.092, 32.227, 33.36 60 39.034, 40.168, 41.303, 42.437, 43.571, 44.70 61 }; 62 63 // Cross-sections in mb, from S.A. Bass et al. 64 // Units are assigned when filling the Physics 65 66 const G4double G4XDeltaDeltastarTable::sigmaDD 67 { 68 0.0, 69 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 70 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 71 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 72 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 73 0.000, 0.000, 0.001, 0.001, 0.002, 0.00 74 0.018, 0.000, 0.000, 0.003, 0.015, 0.04 75 0.183, 0.231, 0.277, 0.319, 0.359, 0.39 76 0.486, 0.510, 0.532, 0.551, 0.568, 0.58 77 0.614, 0.621, 0.626, 0.630, 0.633, 0.63 78 0.633, 0.630, 0.627, 0.623, 0.619, 0.61 79 0.600, 0.490, 0.391, 0.314, 0.259, 0.21 80 0.130, 0.113, 0.099, 0.088, 0.078, 0.07 81 0.052, 0.047, 0.043, 0.040, 0.037, 0.03 82 0.027, 0.026, 0.024, 0.023, 0.021, 0.02 83 0.017, 0.016, 0.015, 0.014, 0.014, 0.01 84 }; 85 86 const G4double G4XDeltaDeltastarTable::sigmaDD 87 { 88 0.0, 89 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 90 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 91 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 92 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 93 0.001, 0.002, 0.003, 0.004, 0.005, 0.00 94 0.000, 0.000, 0.001, 0.006, 0.020, 0.04 95 0.128, 0.156, 0.182, 0.207, 0.229, 0.24 96 0.299, 0.312, 0.324, 0.334, 0.343, 0.35 97 0.367, 0.370, 0.372, 0.374, 0.375, 0.37 98 0.372, 0.370, 0.367, 0.364, 0.361, 0.35 99 0.348, 0.280, 0.220, 0.176, 0.144, 0.11 100 0.071, 0.062, 0.054, 0.048, 0.042, 0.03 101 0.028, 0.025, 0.023, 0.021, 0.020, 0.01 102 0.015, 0.014, 0.013, 0.012, 0.011, 0.01 103 0.009, 0.009, 0.008, 0.008, 0.007, 0.00 104 }; 105 106 const G4double G4XDeltaDeltastarTable::sigmaDD 107 { 108 0.0, 109 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 110 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 111 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 112 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 113 0.000, 0.000, 0.001, 0.001, 0.002, 0.00 114 0.019, 0.031, 0.000, 0.000, 0.001, 0.00 115 0.073, 0.103, 0.134, 0.164, 0.193, 0.22 116 0.291, 0.310, 0.328, 0.344, 0.358, 0.37 117 0.399, 0.405, 0.411, 0.416, 0.419, 0.42 118 0.424, 0.423, 0.422, 0.420, 0.418, 0.41 119 0.407, 0.335, 0.268, 0.215, 0.177, 0.14 120 0.088, 0.077, 0.067, 0.059, 0.053, 0.04 121 0.035, 0.032, 0.029, 0.027, 0.025, 0.02 122 0.018, 0.017, 0.016, 0.015, 0.014, 0.01 123 0.011, 0.011, 0.010, 0.010, 0.009, 0.00 124 }; 125 126 127 const G4double G4XDeltaDeltastarTable::sigmaDD 128 { 129 0.0, 130 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 131 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 132 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 133 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 134 0.001, 0.001, 0.001, 0.001, 0.002, 0.00 135 0.004, 0.006, 0.007, 0.010, 0.000, 0.00 136 0.006, 0.014, 0.025, 0.036, 0.047, 0.05 137 0.086, 0.094, 0.101, 0.107, 0.113, 0.11 138 0.129, 0.132, 0.134, 0.136, 0.137, 0.13 139 0.140, 0.140, 0.139, 0.139, 0.138, 0.13 140 0.135, 0.111, 0.088, 0.070, 0.059, 0.04 141 0.029, 0.025, 0.022, 0.019, 0.017, 0.01 142 0.011, 0.010, 0.009, 0.009, 0.008, 0.00 143 0.006, 0.005, 0.005, 0.005, 0.005, 0.00 144 0.004, 0.003, 0.003, 0.003, 0.003, 0.00 145 }; 146 147 const G4double G4XDeltaDeltastarTable::sigmaDD 148 { 149 0.0, 150 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 151 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 152 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 153 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 154 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 155 0.001, 0.001, 0.003, 0.005, 0.009, 0.00 156 0.005, 0.018, 0.038, 0.061, 0.086, 0.11 157 0.178, 0.197, 0.216, 0.232, 0.248, 0.26 158 0.295, 0.304, 0.312, 0.318, 0.324, 0.32 159 0.338, 0.340, 0.341, 0.342, 0.342, 0.34 160 0.338, 0.293, 0.240, 0.196, 0.166, 0.13 161 0.084, 0.073, 0.064, 0.057, 0.055, 0.04 162 0.034, 0.031, 0.028, 0.026, 0.024, 0.02 163 0.018, 0.017, 0.016, 0.015, 0.014, 0.01 164 0.011, 0.011, 0.010, 0.010, 0.009, 0.00 165 }; 166 167 const G4double G4XDeltaDeltastarTable::sigmaDD 168 { 169 0.0, 170 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 171 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 172 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 173 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 174 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 175 0.001, 0.001, 0.002, 0.003, 0.005, 0.00 176 0.001, 0.004, 0.010, 0.018, 0.027, 0.03 177 0.059, 0.066, 0.073, 0.078, 0.083, 0.08 178 0.099, 0.102, 0.104, 0.106, 0.108, 0.11 179 0.112, 0.113, 0.113, 0.113, 0.112, 0.11 180 0.111, 0.094, 0.076, 0.062, 0.052, 0.04 181 0.026, 0.023, 0.020, 0.018, 0.016, 0.01 182 0.010, 0.009, 0.009, 0.008, 0.007, 0.00 183 0.006, 0.005, 0.005, 0.005, 0.004, 0.00 184 0.003, 0.003, 0.003, 0.003, 0.003, 0.00 185 }; 186 187 const G4double G4XDeltaDeltastarTable::sigmaDD 188 { 189 0.0, 190 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 191 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 192 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 193 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 194 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 195 0.001, 0.001, 0.001, 0.002, 0.003, 0.00 196 0.001, 0.007, 0.020, 0.040, 0.060, 0.08 197 0.133, 0.147, 0.160, 0.171, 0.181, 0.19 198 0.210, 0.215, 0.219, 0.222, 0.225, 0.22 199 0.229, 0.229, 0.229, 0.228, 0.227, 0.22 200 0.222, 0.183, 0.146, 0.117, 0.098, 0.07 201 0.048, 0.041, 0.036, 0.032, 0.028, 0.02 202 0.019, 0.017, 0.016, 0.014, 0.013, 0.01 203 0.010, 0.009, 0.009, 0.008, 0.008, 0.00 204 0.006, 0.006, 0.005, 0.005, 0.005, 0.00 205 }; 206 207 const G4double G4XDeltaDeltastarTable::sigmaDD 208 { 209 0.0, 210 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 211 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 212 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 213 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 214 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 215 0.000, 0.001, 0.001, 0.002, 0.004, 0.00 216 0.001, 0.004, 0.015, 0.033, 0.053, 0.07 217 0.136, 0.154, 0.171, 0.187, 0.201, 0.21 218 0.245, 0.253, 0.261, 0.267, 0.272, 0.27 219 0.287, 0.288, 0.290, 0.290, 0.291, 0.29 220 0.289, 0.251, 0.206, 0.168, 0.142, 0.11 221 0.071, 0.062, 0.059, 0.048, 0.043, 0.03 222 0.028, 0.026, 0.024, 0.022, 0.020, 0.01 223 0.015, 0.014, 0.013, 0.012, 0.012, 0.01 224 0.009, 0.009, 0.008, 0.008, 0.008, 0.00 225 }; 226 227 const G4double G4XDeltaDeltastarTable::sigmaDD 228 { 229 0.0, 230 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 231 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 232 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 233 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 234 0.000, 0.000, 0.000, 0.000, 0.000, 0.00 235 0.000, 0.001, 0.001, 0.002, 0.003, 0.00 236 0.000, 0.002, 0.011, 0.029, 0.053, 0.07 237 0.151, 0.173, 0.194, 0.213, 0.230, 0.24 238 0.285, 0.296, 0.305, 0.313, 0.320, 0.32 239 0.339, 0.342, 0.344, 0.345, 0.346, 0.34 240 0.344, 0.301, 0.247, 0.202, 0.170, 0.13 241 0.086, 0.075, 0.065, 0.058, 0.051, 0.04 242 0.034, 0.031, 0.029, 0.026, 0.024, 0.02 243 0.018, 0.017, 0.016, 0.015, 0.014, 0.01 244 0.011, 0.011, 0.010, 0.010, 0.009, 0.00 245 }; 246 247 248 249 G4XDeltaDeltastarTable::G4XDeltaDeltastarTable 250 { 251 xMap["delta(1600)-"] = (G4double*) sigmaDD16 252 xMap["delta(1600)0"] = (G4double*) sigmaDD16 253 xMap["delta(1600)+"] = (G4double*) sigmaDD16 254 xMap["delta(1600)++"] = (G4double*) sigmaDD1 255 256 xMap["delta(1620)-"] = (G4double*) sigmaDD16 257 xMap["delta(1620)0"] = (G4double*) sigmaDD16 258 xMap["delta(1620)+"] = (G4double*) sigmaDD16 259 xMap["delta(1620)++"] = (G4double*) sigmaDD1 260 261 xMap["delta(1700)-"] = (G4double*) sigmaDD17 262 xMap["delta(1700)0"] = (G4double*) sigmaDD17 263 xMap["delta(1700)+"] = (G4double*) sigmaDD17 264 xMap["delta(1700)++"] = (G4double*) sigmaDD1 265 266 xMap["delta(1900)-"] = (G4double*) sigmaDD19 267 xMap["delta(1900)0"] = (G4double*) sigmaDD19 268 xMap["delta(1900)+"] = (G4double*) sigmaDD19 269 xMap["delta(1900)++"] = (G4double*) sigmaDD1 270 271 xMap["delta(1905)-"] = (G4double*) sigmaDD19 272 xMap["delta(1905)0"] = (G4double*) sigmaDD19 273 xMap["delta(1905)+"] = (G4double*) sigmaDD19 274 xMap["delta(1905)++"] = (G4double*) sigmaDD1 275 276 xMap["delta(1910)-"] = (G4double*) sigmaDD19 277 xMap["delta(1910)0"] = (G4double*) sigmaDD19 278 xMap["delta(1910)+"] = (G4double*) sigmaDD19 279 xMap["delta(1910)++"] = (G4double*) sigmaDD1 280 281 xMap["delta(1920)-"] = (G4double*) sigmaDD19 282 xMap["delta(1920)0"] = (G4double*) sigmaDD19 283 xMap["delta(1920)+"] = (G4double*) sigmaDD19 284 xMap["delta(1920)++"] = (G4double*) sigmaDD1 285 286 xMap["delta(1930)-"] = (G4double*) sigmaDD19 287 xMap["delta(1930)0"] = (G4double*) sigmaDD19 288 xMap["delta(1930)+"] = (G4double*) sigmaDD19 289 xMap["delta(1930)++"] = (G4double*) sigmaDD1 290 291 xMap["delta(1950)-"] = (G4double*) sigmaDD19 292 xMap["delta(1950)0"] = (G4double*) sigmaDD19 293 xMap["delta(1950)+"] = (G4double*) sigmaDD19 294 xMap["delta(1950)++"] = (G4double*) sigmaDD1 295 } 296 297 298 G4XDeltaDeltastarTable::~G4XDeltaDeltastarTabl 299 { } 300 301 302 const G4PhysicsVector* G4XDeltaDeltastarTable: 303 { 304 // NOTE: the returned pointer is owned by th 305 306 if (xMap.find(particleName) != xMap.end()) 307 { 308 // Cross section table for the requested 309 G4PhysicsFreeVector* sigmaVector = new G 310 std::map <G4String, G4double*, std::less 311 G4double* sigmaPointer = 0; 312 for (iter = xMap.begin(); iter != xMap.e 313 { 314 G4String str = (*iter).first; 315 if (str == particleName) 316 { 317 sigmaPointer = (*iter).second; 318 } 319 } 320 321 G4int i; 322 for (i=0; i<sizeDeltaDeltastar; i++) 323 { 324 G4double value = *(sigmaPointer + i) * 0.5 325 G4double energy = energyTable[i] * GeV; 326 sigmaVector->PutValue(i,energy,value); 327 } 328 return sigmaVector; 329 } 330 else 331 // No cross section table for the requeste 332 return 0; 333 } 334 335 336 337