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 #include "globals.hh" 29 #include "G4SystemOfUnits.hh" 30 #include "G4BaryonWidth.hh" 31 #include "G4PhysicsVector.hh" 32 #include "G4PhysicsFreeVector.hh" 33 34 35 const G4double G4BaryonWidth::baryonEnergyTabl 36 { 37 0.100, 0.162, 0.224, 0.285, 0.347, 38 0.594, 0.656, 0.718, 0.779, 0.841, 39 1.088, 1.150, 1.212, 1.274, 1.335, 40 1.582, 1.644, 1.706, 1.768, 1.829, 41 2.076, 2.138, 2.200, 2.262, 2.324, 42 2.571, 2.632, 2.694, 2.756, 2.818, 43 3.065, 3.126, 3.188, 3.250, 3.312, 44 3.559, 3.621, 3.682, 3.744, 3.806, 45 4.053, 4.115, 4.176, 4.238, 4.300, 46 4.547, 4.609, 4.671, 4.732, 4.794, 47 5.000, 6.134, 7.269, 8.403, 9.538, 48 14.076, 15.210, 16.345, 17.479, 18.613, 49 23.151, 24.286, 25.420, 26.555, 27.689, 50 32.227, 33.361, 34.496, 35.630, 36.765, 51 41.303, 42.437, 43.571, 44.706, 45.840, 52 }; 53 54 const G4double G4BaryonWidth::wN1440[120] = { 55 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 56 }; 57 const G4double G4BaryonWidth::wN1520[120] = { 58 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 59 }; 60 const G4double G4BaryonWidth::wN1535[120] = { 61 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01 62 }; 63 const G4double G4BaryonWidth::wN1650[120] = { 64 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 65 }; 66 const G4double G4BaryonWidth::wN1675[120] = { 67 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 68 }; 69 const G4double G4BaryonWidth::wN1680[120] = { 70 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 71 }; 72 const G4double G4BaryonWidth::wN1700[120] = { 73 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 74 }; 75 const G4double G4BaryonWidth::wN1710[120] = { 76 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 77 }; 78 const G4double G4BaryonWidth::wN1720[120] = { 79 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 80 }; 81 const G4double G4BaryonWidth::wN1900[120] = { 82 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 83 }; 84 const G4double G4BaryonWidth::wN1990[120] = { 85 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 86 }; 87 const G4double G4BaryonWidth::wN2090[120] = { 88 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 89 }; 90 const G4double G4BaryonWidth::wN2190[120] = { 91 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 92 }; 93 const G4double G4BaryonWidth::wN2220[120] = { 94 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 95 }; 96 const G4double G4BaryonWidth::wN2250[120] = { 97 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 98 }; 99 const G4double G4BaryonWidth::wDelta[120] = { 100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01 101 }; 102 const G4double G4BaryonWidth::wD1600[120] = { 103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 104 }; 105 const G4double G4BaryonWidth::wD1620[120] = { 106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 107 }; 108 const G4double G4BaryonWidth::wD1700[120] = { 109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 110 }; 111 const G4double G4BaryonWidth::wD1900[120] = { 112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 113 }; 114 const G4double G4BaryonWidth::wD1905[120] = { 115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 116 }; 117 const G4double G4BaryonWidth::wD1910[120] = { 118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 119 }; 120 const G4double G4BaryonWidth::wD1920[120] = { 121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 122 }; 123 const G4double G4BaryonWidth::wD1930[120] = { 124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 125 }; 126 const G4double G4BaryonWidth::wD1950[120] = { 127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.16 128 }; 129 130 const G4double G4BaryonWidth::wL1405[120] = 131 { 132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 133 }; 134 135 const G4double G4BaryonWidth::wL1520[120] = 136 { 137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 138 }; 139 140 const G4double G4BaryonWidth::wL1600[120] = 141 { 142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 143 }; 144 145 const G4double G4BaryonWidth::wL1670[120] = 146 { 147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 148 }; 149 150 const G4double G4BaryonWidth::wL1690[120] = 151 { 152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 153 }; 154 155 const G4double G4BaryonWidth::wL1800[120] = 156 { 157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 158 }; 159 160 const G4double G4BaryonWidth::wL1810[120] = 161 { 162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 163 }; 164 165 const G4double G4BaryonWidth::wL1820[120] = 166 { 167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 168 }; 169 170 const G4double G4BaryonWidth::wL1830[120] = 171 { 172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 173 }; 174 175 const G4double G4BaryonWidth::wL1890[120] = 176 { 177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 178 }; 179 180 const G4double G4BaryonWidth::wL2100[120] = 181 { 182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 183 }; 184 185 const G4double G4BaryonWidth::wL2110[120] = 186 { 187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 188 }; 189 190 const G4double G4BaryonWidth::wS1385[120] = 191 { 192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 193 }; 194 195 const G4double G4BaryonWidth::wS1660[120] = 196 { 197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 198 }; 199 200 const G4double G4BaryonWidth::wS1670[120] = 201 { 202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 203 }; 204 205 const G4double G4BaryonWidth::wS1750[120] = 206 { 207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 208 }; 209 210 const G4double G4BaryonWidth::wS1775[120] = 211 { 212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 213 }; 214 215 const G4double G4BaryonWidth::wS1915[120] = 216 { 217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 218 }; 219 220 const G4double G4BaryonWidth::wS1940[120] = 221 { 222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 223 }; 224 225 const G4double G4BaryonWidth::wS2030[120] = 226 { 227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 228 }; 229 230 const G4double G4BaryonWidth::wX1530[120] = 231 { 232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 233 }; 234 235 const G4double G4BaryonWidth::wX1690[120] = 236 { 237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 238 }; 239 240 const G4double G4BaryonWidth::wX1820[120] = 241 { 242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 243 }; 244 245 const G4double G4BaryonWidth::wX1950[120] = 246 { 247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 248 }; 249 250 const G4double G4BaryonWidth::wX2030[120] = 251 { 252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 253 }; 254 255 256 G4BaryonWidth::G4BaryonWidth(): wSize(120) 257 { 258 wMap["N(1440)"] = (G4double*) wN1440; 259 wMap["N(1520)"] = (G4double*) wN1520; 260 wMap["N(1535)"] = (G4double*) wN1535; 261 wMap["N(1650)"] = (G4double*) wN1650; 262 wMap["N(1675)"] = (G4double*) wN1675; 263 wMap["N(1680)"] = (G4double*) wN1680; 264 wMap["N(1700)"] = (G4double*) wN1700; 265 wMap["N(1710)"] = (G4double*) wN1710; 266 wMap["N(1720)"] = (G4double*) wN1720; 267 wMap["N(1900)"] = (G4double*) wN1900; 268 wMap["N(1990)"] = (G4double*) wN1990; 269 wMap["N(2090)"] = (G4double*) wN2090; 270 wMap["N(2190)"] = (G4double*) wN2190; 271 wMap["N(2220)"] = (G4double*) wN2220; 272 273 wMap["delta"] = (G4double*) wDelta; 274 275 wMap["delta(1600)"] = (G4double*) wD1600; 276 wMap["delta(1620)"] = (G4double*) wD1620; 277 wMap["delta(1700)"] = (G4double*) wD1700; 278 wMap["delta(1900)"] = (G4double*) wD1900; 279 wMap["delta(1905)"] = (G4double*) wD1905; 280 wMap["delta(1910)"] = (G4double*) wD1910; 281 wMap["delta(1920)"] = (G4double*) wD1920; 282 wMap["delta(1930)"] = (G4double*) wD1930; 283 wMap["delta(1950)"] = (G4double*) wD1950; 284 285 wMap["lambda(1405)"] = (G4double*) wL1405; 286 wMap["lambda(1520)"] = (G4double*) wL1520; 287 wMap["lambda(1600)"] = (G4double*) wL1600; 288 wMap["lambda(1670)"] = (G4double*) wL1670; 289 wMap["lambda(1690)"] = (G4double*) wL1690; 290 wMap["lambda(1800)"] = (G4double*) wL1800; 291 wMap["lambda(1810)"] = (G4double*) wL1810; 292 wMap["lambda(1820)"] = (G4double*) wL1820; 293 wMap["lambda(1830)"] = (G4double*) wL1830; 294 wMap["lambda(1890)"] = (G4double*) wL1890; 295 wMap["lambda(2100)"] = (G4double*) wL2100; 296 wMap["lambda(2110)"] = (G4double*) wL2110; 297 298 wMap["sigma(1385)"] = (G4double*) wS1385; 299 wMap["sigma(1660)"] = (G4double*) wS1660; 300 wMap["sigma(1670)"] = (G4double*) wS1670; 301 wMap["sigma(1750)"] = (G4double*) wS1750; 302 wMap["sigma(1775)"] = (G4double*) wS1775; 303 wMap["sigma(1915)"] = (G4double*) wS1915; 304 wMap["sigma(1940)"] = (G4double*) wS1940; 305 wMap["sigma(2030)"] = (G4double*) wS2030; 306 307 wMap["xi(1530)"] = (G4double*) wX1530; 308 wMap["xi(1690)"] = (G4double*) wX1690; 309 wMap["xi(1820)"] = (G4double*) wX1820; 310 wMap["xi(1950)"] = (G4double*) wX1950; 311 wMap["xi(2030)"] = (G4double*) wX2030; 312 313 314 } 315 316 317 G4BaryonWidth::~G4BaryonWidth() 318 { } 319 320 321 G4bool G4BaryonWidth::operator==(const G4Baryo 322 { 323 return (this == (G4BaryonWidth*) &right); 324 } 325 326 327 G4bool G4BaryonWidth::operator!=(const G4Baryo 328 { 329 return (this != (G4BaryonWidth*) &right); 330 } 331 332 333 G4PhysicsVector* G4BaryonWidth::MassDependentW 334 { 335 // NOTE: the returned pointer is owned by th 336 337 if (wMap.find(name) != wMap.end()) 338 { 339 // width of the requested particle avail 340 G4PhysicsFreeVector* wVector = new G4Phy 341 G4String key = name; 342 std::map <G4String, G4double*, std::less 343 G4double* wPointer=0; 344 for (iter = wMap.begin(); iter != wMap.e 345 { 346 G4String str = (*iter).first; 347 if (str == key) 348 { 349 wPointer = (*iter).second; 350 } 351 } 352 // G4double* wPointer = wMap[key]; 353 G4int i; 354 for (i=0; i<wSize; i++) 355 { 356 G4double value = *(wPointer + i); 357 G4double energy = baryonEnergyTable[i] * G 358 wVector->PutValue(i,energy,value); 359 } 360 return wVector; 361 } 362 else 363 { 364 return 0; 365 } 366 } 367