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 // 29 // GEANT4 Class file 30 // 31 // Description: Data on stopping power 32 // 33 // Author: Anton Ivantchenko 07.08.2013 34 // 35 // Organisation: G4AI Ltd, UK 36 // Customer: ESA/ESTEC, NOORDWIJK 37 // Contract: CSMAN-5288 38 // 39 // Modifications: 40 // 41 //-------------------------------------------- 42 // 43 44 //....oooOO0OOooo........oooOO0OOooo........oo 45 46 #include "G4ESTARStopping.hh" 47 #include "G4SystemOfUnits.hh" 48 #include "G4Material.hh" 49 #include "G4EmParameters.hh" 50 51 //....oooOO0OOooo........oooOO0OOooo........oo 52 53 G4ESTARStopping::G4ESTARStopping(const G4Strin 54 { 55 sdata.resize(280,nullptr); 56 name.resize(280,""); 57 58 if("basic" == datatype) { type = 1; } 59 else if("long" == datatype) { type = 2; } 60 61 Initialise(); 62 } 63 64 //....oooOO0OOooo........oooOO0OOooo........oo 65 66 G4ESTARStopping::~G4ESTARStopping() 67 { 68 for(size_t i=1; i<280; ++i) { delete sdata[i 69 } 70 71 //....oooOO0OOooo........oooOO0OOooo........oo 72 73 G4int G4ESTARStopping:: GetIndex (const G4Mate 74 { 75 if (mat != currentMaterial) { 76 G4String matName = mat->GetName(); 77 for (G4int i=1; i<280; ++i){ 78 if (matName == name[i]){ 79 matIndex = i; 80 currentMaterial = mat; 81 break; 82 } 83 } 84 } 85 return matIndex; 86 } 87 88 //....oooOO0OOooo........oooOO0OOooo........oo 89 90 G4double G4ESTARStopping::GetElectronicDEDX(G4 91 { 92 G4double res = 0.0; 93 if (i<1 || i>279){ 94 G4cout << "### G4ESTARStopping WARNING: in 95 << i << " is out of range!" << G4endl; 96 return res; 97 } 98 G4double emin = sdata[i]->Energy(0); 99 if(energy < emin) { res = (*(sdata[i]))[0]*s 100 else { res = sdata[i]->Value(en 101 return res; 102 } 103 104 void G4ESTARStopping::Initialise() 105 { 106 static const G4double T0[25]={1.0E-03,3.0E-03, 107 108 name[1]="G4_1,2-DICHLOROBENZENE"; 109 static const G4double e1[25]={9.473E+01,4.632E 110 AddData(T0,e1,1); 111 name[2]="G4_1,2-DICHLOROETHANE"; 112 static const G4double e2[25]={9.312E+01,4.583E 113 AddData(T0,e2,2); 114 name[3]="G4_A-150_TISSUE"; 115 static const G4double e3[25]={1.246E+02,5.765E 116 AddData(T0,e3,3); 117 name[4]="G4_ACETONE"; 118 static const G4double e4[25]={1.256E+02,5.805E 119 AddData(T0,e4,4); 120 name[5]="G4_ACETYLENE"; 121 static const G4double e5[25]={1.268E+02,5.804E 122 AddData(T0,e5,5); 123 name[6]="G4_ADENINE"; 124 static const G4double e6[25]={1.138E+02,5.313E 125 AddData(T0,e6,6); 126 name[7]="G4_ADIPOSE_TISSUE_ICRP"; 127 static const G4double e7[25]={1.28E+02,5.907E+ 128 AddData(T0,e7,7); 129 name[8]="G4_AIR"; 130 static const G4double e8[25]={1.025E+02,4.879E 131 AddData(T0,e8,8); 132 name[9]="G4_ALANINE"; 133 static const G4double e9[25]={1.18E+02,5.516E+ 134 AddData(T0,e9,9); 135 name[10]="G4_ALUMINUM_OXIDE"; 136 static const G4double e10[25]={8.033E+01,4.111 137 AddData(T0,e10,10); 138 name[11]="G4_AMBER"; 139 static const G4double e11[25]={1.265E+02,5.837 140 AddData(T0,e11,11); 141 name[12]="G4_AMMONIA"; 142 static const G4double e12[25]={1.421E+02,6.463 143 AddData(T0,e12,12); 144 name[13]="G4_ANILINE"; 145 static const G4double e13[25]={1.211E+02,5.613 146 AddData(T0,e13,13); 147 name[14]="G4_ANTHRACENE"; 148 static const G4double e14[25]={1.17E+02,5.446E 149 AddData(T0,e14,14); 150 name[15]="G4_B-100_BONE"; 151 static const G4double e15[25]={1.082E+02,5.152 152 AddData(T0,e15,15); 153 name[16]="G4_BAKELITE"; 154 static const G4double e16[25]={1.154E+02,5.395 155 AddData(T0,e16,16); 156 name[17]="G4_BARIUM_FLUORIDE"; 157 static const G4double e17[25]={3.755E+01,2.48E 158 AddData(T0,e17,17); 159 name[18]="G4_BARIUM_SULFATE"; 160 static const G4double e18[25]={4.926E+01,2.94E 161 AddData(T0,e18,18); 162 name[19]="G4_BENZENE"; 163 static const G4double e19[25]={1.231E+02,5.683 164 AddData(T0,e19,19); 165 name[20]="G4_BERYLLIUM_OXIDE"; 166 static const G4double e20[25]={9.533E+01,4.583 167 AddData(T0,e20,20); 168 name[21]="G4_BGO"; 169 static const G4double e21[25]={2.579E+01,2.082 170 AddData(T0,e21,21); 171 name[22]="G4_BLOOD_ICRP"; 172 static const G4double e22[25]={1.186E+02,5.565 173 AddData(T0,e22,22); 174 name[23]="G4_BONE_COMPACT_ICRU"; 175 static const G4double e23[25]={1.059E+02,5.084 176 AddData(T0,e23,23); 177 name[24]="G4_BONE_CORTICAL_ICRP"; 178 static const G4double e24[25]={9.814E+01,4.798 179 AddData(T0,e24,24); 180 name[25]="G4_BORON_CARBIDE"; 181 static const G4double e25[25]={9.703E+01,4.614 182 AddData(T0,e25,25); 183 name[26]="G4_BORON_OXIDE"; 184 static const G4double e26[25]={9.448E+01,4.58E 185 AddData(T0,e26,26); 186 name[27]="G4_BRAIN_ICRP"; 187 static const G4double e27[25]={1.206E+02,5.646 188 AddData(T0,e27,27); 189 name[28]="G4_BUTANE"; 190 static const G4double e28[25]={1.465E+02,6.602 191 AddData(T0,e28,28); 192 name[29]="G4_C-552"; 193 static const G4double e29[25]={1.021E+02,4.867 194 AddData(T0,e29,29); 195 name[30]="G4_CADMIUM_TELLURIDE"; 196 static const G4double e30[25]={2.523E+01,2.051 197 AddData(T0,e30,30); 198 name[31]="G4_CADMIUM_TUNGSTATE"; 199 static const G4double e31[25]={3.063E+01,2.264 200 AddData(T0,e31,31); 201 name[32]="G4_CALCIUM_CARBONATE"; 202 static const G4double e32[25]={8.429E+01,4.271 203 AddData(T0,e32,32); 204 name[33]="G4_CALCIUM_FLUORIDE"; 205 static const G4double e33[25]={7.46E+01,3.909E 206 AddData(T0,e33,33); 207 name[34]="G4_CALCIUM_OXIDE"; 208 static const G4double e34[25]={7.421E+01,3.932 209 AddData(T0,e34,34); 210 name[35]="G4_CALCIUM_SULFATE"; 211 static const G4double e35[25]={7.994E+01,4.125 212 AddData(T0,e35,35); 213 name[36]="G4_CALCIUM_TUNGSTATE"; 214 static const G4double e36[25]={3.722E+01,2.514 215 AddData(T0,e36,36); 216 name[37]="G4_CARBON_DIOXIDE"; 217 static const G4double e37[25]={1.029E+02,4.897 218 AddData(T0,e37,37); 219 name[38]="G4_CARBON_TETRACHLORIDE"; 220 static const G4double e38[25]={7.367E+01,3.861 221 AddData(T0,e38,38); 222 name[39]="G4_CELLULOSE_BUTYRATE"; 223 static const G4double e39[25]={1.152E+02,5.403 224 AddData(T0,e39,39); 225 name[40]="G4_CELLULOSE_CELLOPHANE"; 226 static const G4double e40[25]={1.13E+02,5.323E 227 AddData(T0,e40,40); 228 name[41]="G4_CELLULOSE_NITRATE"; 229 static const G4double e41[25]={1.05E+02,5.006E 230 AddData(T0,e41,41); 231 name[42]="G4_CERIC_SULFATE"; 232 static const G4double e42[25]={1.183E+02,5.565 233 AddData(T0,e42,42); 234 name[43]="G4_CESIUM_FLUORIDE"; 235 static const G4double e43[25]={3.221E+01,2.299 236 AddData(T0,e43,43); 237 name[44]="G4_CESIUM_IODIDE"; 238 static const G4double e44[25]={2.435E+01,2.019 239 AddData(T0,e44,44); 240 name[45]="G4_CHLOROBENZENE"; 241 static const G4double e45[25]={1.042E+02,4.984 242 AddData(T0,e45,45); 243 name[46]="G4_CHLOROFORM"; 244 static const G4double e46[25]={7.684E+01,3.981 245 AddData(T0,e46,46); 246 name[47]="G4_CONCRETE"; 247 static const G4double e47[25]={8.517E+01,4.309 248 AddData(T0,e47,47); 249 name[48]="G4_CYCLOHEXANE"; 250 static const G4double e48[25]={1.359E+02,6.204 251 AddData(T0,e48,48); 252 name[49]="G4_DICHLORODIETHYL_ETHER"; 253 static const G4double e49[25]={9.862E+01,4.803 254 AddData(T0,e49,49); 255 name[50]="G4_DIETHYL_ETHER"; 256 static const G4double e50[25]={1.322E+02,6.071 257 AddData(T0,e50,50); 258 name[51]="G4_DIMETHYL_SULFOXIDE"; 259 static const G4double e51[25]={1.044E+02,5.055 260 AddData(T0,e51,51); 261 name[52]="G4_ETHANE"; 262 static const G4double e52[25]={1.528E+02,6.854 263 AddData(T0,e52,52); 264 name[53]="G4_ETHYL_ALCOHOL"; 265 static const G4double e53[25]={1.296E+02,5.977 266 AddData(T0,e53,53); 267 name[54]="G4_ETHYL_CELLULOSE"; 268 static const G4double e54[25]={1.208E+02,5.623 269 AddData(T0,e54,54); 270 name[55]="G4_ETHYLENE"; 271 static const G4double e55[25]={1.406E+02,6.364 272 AddData(T0,e55,55); 273 name[56]="G4_EYE_LENS_ICRP"; 274 static const G4double e56[25]={1.194E+02,5.59E 275 AddData(T0,e56,56); 276 name[57]="G4_FERRIC_OXIDE"; 277 static const G4double e57[25]={6.117E+01,3.427 278 AddData(T0,e57,57); 279 name[58]="G4_FERROBORIDE"; 280 static const G4double e58[25]={5.472E+01,3.18E 281 AddData(T0,e58,58); 282 name[59]="G4_FERROUS_OXIDE"; 283 static const G4double e59[25]={5.472E+01,3.18E 284 AddData(T0,e59,59); 285 name[60]="G4_FERROUS_SULFATE"; 286 static const G4double e60[25]={1.186E+02,5.576 287 AddData(T0,e60,60); 288 name[61]="G4_FREON-12"; 289 static const G4double e61[25]={7.915E+01,4.041 290 AddData(T0,e61,61); 291 name[62]="G4_FREON-12B2"; 292 static const G4double e62[25]={4.963E+01,2.96E 293 AddData(T0,e62,62); 294 name[63]="G4_FREON-13"; 295 static const G4double e63[25]={8.357E+01,4.186 296 AddData(T0,e63,63); 297 name[64]="G4_FREON-13B1"; 298 static const G4double e64[25]={6.146E+01,3.381 299 AddData(T0,e64,64); 300 name[65]="G4_FREON-13I1"; 301 static const G4double e65[25]={4.76E+01,2.866E 302 AddData(T0,e65,65); 303 name[66]="G4_GADOLINIUM_OXYSULFIDE"; 304 static const G4double e66[25]={2.856E+01,2.18E 305 AddData(T0,e66,66); 306 name[67]="G4_GALLIUM_ARSENIDE"; 307 static const G4double e67[25]={3.854E+01,2.572 308 AddData(T0,e67,67); 309 name[68]="G4_GEL_PHOTO_EMULSION"; 310 static const G4double e68[25]={1.166E+02,5.469 311 AddData(T0,e68,68); 312 name[69]="G4_GLASS_LEAD"; 313 static const G4double e69[25]={2.63E+01,2.099 314 AddData(T0,e69,69); 315 name[70]="G4_GLASS_PLATE"; 316 static const G4double e70[25]={8.141E+01,4.168 317 AddData(T0,e70,70); 318 name[71]="G4_GLUCOSE"; 319 static const G4double e71[25]={1.142E+02,5.376 320 AddData(T0,e71,71); 321 name[72]="G4_GLUTAMINE"; 322 static const G4double e72[25]={1.161E+02,5.437 323 AddData(T0,e72,72); 324 name[73]="G4_GLYCEROL"; 325 static const G4double e73[25]={1.185E+02,5.544 326 AddData(T0,e73,73); 327 name[74]="G4_GRAPHITE"; 328 static const G4double e74[25]={1.062E+02,5.006 329 AddData(T0,e74,74); 330 name[75]="G4_GUANINE"; 331 static const G4double e75[25]={1.114E+02,5.226 332 AddData(T0,e75,75); 333 name[76]="G4_GYPSUM"; 334 static const G4double e76[25]={8.826E+01,4.437 335 AddData(T0,e76,76); 336 name[77]="G4_KAPTON"; 337 static const G4double e77[25]={1.082E+02,5.111 338 AddData(T0,e77,77); 339 name[78]="G4_LANTHANUM_OXYBROMIDE"; 340 static const G4double e78[25]={3.263E+01,2.326 341 AddData(T0,e78,78); 342 name[79]="G4_LANTHANUM_OXYSULFIDE"; 343 static const G4double e79[25]={3.417E+01,2.381 344 AddData(T0,e79,79); 345 name[80]="G4_LEAD_OXIDE"; 346 static const G4double e80[25]={1.325E+01,1.61 347 AddData(T0,e80,80); 348 name[81]="G4_LITHIUM_AMIDE"; 349 static const G4double e81[25]={1.251E+02,5.707 350 AddData(T0,e81,81); 351 name[82]="G4_LITHIUM_CARBONATE"; 352 static const G4double e82[25]={9.905E+01,4.73E 353 AddData(T0,e82,82); 354 name[83]="G4_LITHIUM_FLUORIDE"; 355 static const G4double e83[25]={9.161E+01,4.409 356 AddData(T0,e83,83); 357 name[84]="G4_LITHIUM_HYDRIDE"; 358 static const G4double e84[25]={1.371E+02,6.052 359 AddData(T0,e84,84); 360 name[85]="G4_LITHIUM_IODIDE"; 361 static const G4double e85[25]={2.882E+01,2.177 362 AddData(T0,e85,85); 363 name[86]="G4_LITHIUM_OXIDE"; 364 static const G4double e86[25]={1.018E+02,4.768 365 AddData(T0,e86,86); 366 name[87]="G4_LITHIUM_TETRABORATE"; 367 static const G4double e87[25]={9.577E+01,4.613 368 AddData(T0,e87,87); 369 name[88]="G4_lPROPANE"; 370 static const G4double e88[25]={1.442E+02,6.54E 371 AddData(T0,e88,88); 372 name[89]="G4_LUNG_ICRP"; 373 static const G4double e89[25]={1.184E+02,5.56E 374 AddData(T0,e89,89); 375 name[90]="G4_M3_WAX"; 376 static const G4double e90[25]={1.241E+02,5.767 377 AddData(T0,e90,90); 378 name[91]="G4_MAGNESIUM_CARBONATE"; 379 static const G4double e91[25]={8.973E+01,4.449 380 AddData(T0,e91,91); 381 name[92]="G4_MAGNESIUM_FLUORIDE"; 382 static const G4double e92[25]={8.183E+01,4.136 383 AddData(T0,e92,92); 384 name[93]="G4_MAGNESIUM_OXIDE"; 385 static const G4double e93[25]={8.166E+01,4.173 386 AddData(T0,e93,93); 387 name[94]="G4_MAGNESIUM_TETRABORATE"; 388 static const G4double e94[25]={9.159E+01,4.488 389 AddData(T0,e94,94); 390 name[95]="G4_MERCURIC_IODIDE"; 391 static const G4double e95[25]={1.711E+01,1.75 392 AddData(T0,e95,95); 393 name[96]="G4_METHANE"; 394 static const G4double e96[25]={1.633E+02,7.277 395 AddData(T0,e96,96); 396 name[97]="G4_METHANOL"; 397 static const G4double e97[25]={1.258E+02,5.842 398 AddData(T0,e97,97); 399 name[98]="G4_MIX_D_WAX"; 400 static const G4double e98[25]={1.311E+02,6.029 401 AddData(T0,e98,98); 402 name[99]="G4_MS20_TISSUE"; 403 static const G4double e99[25]={1.162E+02,5.455 404 AddData(T0,e99,99); 405 name[100]="G4_MUSCLE_SKELETAL_ICRP"; 406 static const G4double e100[25]={1.184E+02,5.55 407 AddData(T0,e100,100); 408 name[101]="G4_MUSCLE_STRIATED_ICRU"; 409 static const G4double e101[25]={1.189E+02,5.57 410 AddData(T0,e101,101); 411 name[102]="G4_MUSCLE_WITHOUT_SUCROSE"; 412 static const G4double e102[25]={1.192E+02,5.58 413 AddData(T0,e102,102); 414 name[103]="G4_MUSCLE_WITH_SUCROSE"; 415 static const G4double e103[25]={1.187E+02,5.56 416 AddData(T0,e103,103); 417 name[104]="G4_MYLAR"; 418 static const G4double e104[25]={1.103E+02,5.20 419 AddData(T0,e104,104); 420 name[105]="G4_NAPHTHALENE"; 421 static const G4double e105[25]={1.183E+02,5.50 422 AddData(T0,e105,105); 423 name[106]="G4_N-BUTYL_ALCOHOL"; 424 static const G4double e106[25]={1.323E+02,6.07 425 AddData(T0,e106,106); 426 name[107]="G4_N-HEPTANE"; 427 static const G4double e107[25]={1.395E+02,6.35 428 AddData(T0,e107,107); 429 name[108]="G4_N-HEXANE"; 430 static const G4double e108[25]={1.402E+02,6.37 431 AddData(T0,e108,108); 432 name[109]="G4_NITROBENZENE"; 433 static const G4double e109[25]={1.117E+02,5.25 434 AddData(T0,e109,109); 435 name[110]="G4_NITROUS_OXIDE"; 436 static const G4double e110[25]={1.03E+02,4.898 437 AddData(T0,e110,110); 438 name[111]="G4_N,N-DIMETHYL_FORMAMIDE"; 439 static const G4double e111[25]={1.232E+02,5.71 440 AddData(T0,e111,111); 441 name[112]="G4_N-PENTANE"; 442 static const G4double e112[25]={1.41E+02,6.41E 443 AddData(T0,e112,112); 444 name[113]="G4_N-PROPYL_ALCOHOL"; 445 static const G4double e113[25]={1.312E+02,6.03 446 AddData(T0,e113,113); 447 name[114]="G4_NYLON-11_RILSAN"; 448 static const G4double e114[25]={1.287E+02,5.92 449 AddData(T0,e114,114); 450 name[115]="G4_NYLON-6-10"; 451 static const G4double e115[25]={1.266E+02,5.84 452 AddData(T0,e115,115); 453 name[116]="G4_NYLON-6-6"; 454 static const G4double e116[25]={1.251E+02,5.78 455 AddData(T0,e116,116); 456 name[117]="G4_NYLON-8062"; 457 static const G4double e117[25]={1.255E+02,5.79 458 AddData(T0,e117,117); 459 name[118]="G4_OCTANE"; 460 static const G4double e118[25]={1.39E+02,6.332 461 AddData(T0,e118,118); 462 name[119]="G4_PARAFFIN"; 463 static const G4double e119[25]={1.368E+02,6.24 464 AddData(T0,e119,119); 465 name[120]="G4_PHOTO_EMULSION"; 466 static const G4double e120[25]={4.498E+01,2.82 467 AddData(T0,e120,120); 468 name[121]="G4_PLASTIC_SC_VINYLTOLUENE"; 469 static const G4double e121[25]={1.231E+02,5.69 470 AddData(T0,e121,121); 471 name[122]="G4_PLEXIGLASS"; 472 static const G4double e122[25]={1.17E+02,5.481 473 AddData(T0,e122,122); 474 name[123]="G4_PLUTONIUM_DIOXIDE"; 475 static const G4double e123[25]={1.419E+01,1.65 476 AddData(T0,e123,123); 477 name[124]="G4_POLYACRYLONITRILE"; 478 static const G4double e124[25]={1.17E+02,5.447 479 AddData(T0,e124,124); 480 name[125]="G4_POLYCARBONATE"; 481 static const G4double e125[25]={1.148E+02,5.37 482 AddData(T0,e125,125); 483 name[126]="G4_POLYCHLOROSTYRENE"; 484 static const G4double e126[25]={1.098E+02,5.2E 485 AddData(T0,e126,126); 486 name[127]="G4_POLYETHYLENE"; 487 static const G4double e127[25]={1.351E+02,6.17 488 AddData(T0,e127,127); 489 name[128]="G4_POLYOXYMETHYLENE"; 490 static const G4double e128[25]={1.137E+02,5.35 491 AddData(T0,e128,128); 492 name[129]="G4_POLYPROPYLENE"; 493 static const G4double e129[25]={1.358E+02,6.20 494 AddData(T0,e129,129); 495 name[130]="G4_POLYSTYRENE"; 496 static const G4double e130[25]={1.197E+02,5.56 497 AddData(T0,e130,130); 498 name[131]="G4_POLYTRIFLUOROCHLOROETHYLENE"; 499 static const G4double e131[25]={8.575E+01,4.26 500 AddData(T0,e131,131); 501 name[132]="G4_POLYVINYL_ACETATE"; 502 static const G4double e132[25]={1.16E+02,5.435 503 AddData(T0,e132,132); 504 name[133]="G4_POLYVINYL_ALCOHOL"; 505 static const G4double e133[25]={1.207E+02,5.62 506 AddData(T0,e133,133); 507 name[134]="G4_POLYVINYL_BUTYRAL"; 508 static const G4double e134[25]={1.224E+02,5.68 509 AddData(T0,e134,134); 510 name[135]="G4_POLYVINYL_CHLORIDE"; 511 static const G4double e135[25]={9.572E+01,4.69 512 AddData(T0,e135,135); 513 name[136]="G4_POLYVINYLIDENE_CHLORIDE"; 514 static const G4double e136[25]={8.415E+01,4.25 515 AddData(T0,e136,136); 516 name[137]="G4_POLYVINYLIDENE_FLUORIDE"; 517 static const G4double e137[25]={1.012E+02,4.83 518 AddData(T0,e137,137); 519 name[138]="G4_POLYVINYL_PYRROLIDONE"; 520 static const G4double e138[25]={1.208E+02,5.61 521 AddData(T0,e138,138); 522 name[139]="G4_POTASSIUM_IODIDE"; 523 static const G4double e139[25]={1.208E+02,5.61 524 AddData(T0,e139,139); 525 name[140]="G4_POTASSIUM_OXIDE"; 526 static const G4double e140[25]={6.968E+01,3.74 527 AddData(T0,e140,140); 528 name[141]="G4_PROPANE"; 529 static const G4double e141[25]={1.488E+02,6.69 530 AddData(T0,e141,141); 531 name[142]="G4_Pyrex_Glass"; 532 static const G4double e142[25]={8.456E+01,4.27 533 AddData(T0,e142,142); 534 name[143]="G4_PYRIDINE"; 535 static const G4double e143[25]={1.198E+02,5.55 536 AddData(T0,e143,143); 537 name[144]="G4_RUBBER_BUTYL"; 538 static const G4double e144[25]={1.358E+02,6.20 539 AddData(T0,e144,144); 540 name[145]="G4_RUBBER_NATURAL"; 541 static const G4double e145[25]={1.303E+02,5.98 542 AddData(T0,e145,145); 543 name[146]="G4_RUBBER_NEOPRENE"; 544 static const G4double e146[25]={1.033E+02,4.96 545 AddData(T0,e146,146); 546 name[147]="G4_SILICON_DIOXIDE"; 547 static const G4double e147[25]={8.344E+01,4.24 548 AddData(T0,e147,147); 549 name[148]="G4_SILVER_BROMIDE"; 550 static const G4double e148[25]={2.998E+01,2.26 551 AddData(T0,e148,148); 552 name[149]="G4_SILVER_CHLORIDE"; 553 static const G4double e149[25]={3.768E+01,2.55 554 AddData(T0,e149,149); 555 name[150]="G4_SILVER_HALIDES"; 556 static const G4double e150[25]={2.994E+01,2.26 557 AddData(T0,e150,150); 558 name[151]="G4_SILVER_IODIDE"; 559 static const G4double e151[25]={2.553E+01,2.08 560 AddData(T0,e151,151); 561 name[152]="G4_SKIN_ICRP"; 562 static const G4double e152[25]={1.199E+02,5.60 563 AddData(T0,e152,152); 564 name[153]="G4_SODIUM_CARBONATE"; 565 static const G4double e153[25]={8.615E+01,4.30 566 AddData(T0,e153,153); 567 name[154]="G4_SODIUM_IODIDE"; 568 static const G4double e154[25]={3.179E+01,2.30 569 AddData(T0,e154,154); 570 name[155]="G4_SODIUM_MONOXIDE"; 571 static const G4double e155[25]={7.835E+01,4.02 572 AddData(T0,e155,155); 573 name[156]="G4_SODIUM_NITRATE"; 574 static const G4double e156[25]={9.015E+01,4.45 575 AddData(T0,e156,156); 576 name[157]="G4_STILBENE"; 577 static const G4double e157[25]={1.192E+02,5.53 578 AddData(T0,e157,157); 579 name[158]="G4_SUCROSE"; 580 static const G4double e158[25]={1.134E+02,5.33 581 AddData(T0,e158,158); 582 name[159]="G4_TEFLON"; 583 static const G4double e159[25]={9.304E+01,4.50 584 AddData(T0,e159,159); 585 name[160]="G4_TERPHENYL"; 586 static const G4double e160[25]={1.144E+02,5.34 587 AddData(T0,e160,160); 588 name[161]="G4_TESTES_ICRP"; 589 static const G4double e161[25]={1.189E+02,5.58 590 AddData(T0,e161,161); 591 name[162]="G4_TETRACHLOROETHYLENE"; 592 static const G4double e162[25]={7.553E+01,3.92 593 AddData(T0,e162,162); 594 name[163]="G4_THALLIUM_CHLORIDE"; 595 static const G4double e163[25]={1.681E+01,1.74 596 AddData(T0,e163,163); 597 name[164]="G4_TISSUE-METHANE"; 598 static const G4double e164[25]={1.275E+02,5.86 599 AddData(T0,e164,164); 600 name[165]="G4_TISSUE-PROPANE"; 601 static const G4double e165[25]={1.288E+02,5.90 602 AddData(T0,e165,165); 603 name[166]="G4_TISSUE_SOFT_ICRP"; 604 static const G4double e166[25]={1.205E+02,5.63 605 AddData(T0,e166,166); 606 name[167]="G4_TISSUE_SOFT_ICRU-4"; 607 static const G4double e167[25]={1.187E+02,5.56 608 AddData(T0,e167,167); 609 name[168]="G4_TITANIUM_DIOXIDE"; 610 static const G4double e168[25]={6.999E+01,3.72 611 AddData(T0,e168,168); 612 name[169]="G4_TOLUENE"; 613 static const G4double e169[25]={1.249E+02,5.75 614 AddData(T0,e169,169); 615 name[170]="G4_TRICHLOROETHYLENE"; 616 static const G4double e170[25]={7.903E+01,4.05 617 AddData(T0,e170,170); 618 name[171]="G4_TRIETHYL_PHOSPHATE"; 619 static const G4double e171[25]={1.127E+02,5.33 620 AddData(T0,e171,171); 621 name[172]="G4_TUNGSTEN_HEXAFLUORIDE"; 622 static const G4double e172[25]={4.022E+01,2.59 623 AddData(T0,e172,172); 624 name[173]="G4_URANIUM_DICARBIDE"; 625 static const G4double e173[25]={1.365E+01,1.60 626 AddData(T0,e173,173); 627 name[174]="G4_URANIUM_MONOCARBIDE"; 628 static const G4double e174[25]={9.271,1.445E+0 629 AddData(T0,e174,174); 630 name[175]="G4_URANIUM_OXIDE"; 631 static const G4double e175[25]={1.51E+01,1.663 632 AddData(T0,e175,175); 633 name[176]="G4_UREA"; 634 static const G4double e176[25]={1.162E+02,5.43 635 AddData(T0,e176,176); 636 name[177]="G4_VALINE"; 637 static const G4double e177[25]={1.223E+02,5.68 638 AddData(T0,e177,177); 639 name[178]="G4_VITON"; 640 static const G4double e178[25]={9.438E+01,4.56 641 AddData(T0,e178,178); 642 name[179]="G4_WATER"; 643 static const G4double e179[25]={1.198E+02,5.62 644 AddData(T0,e179,179); 645 name[180]="G4_WATER_VAPOR"; 646 static const G4double e180[25]={1.218E+02,5.68 647 AddData(T0,e180,180); 648 name[181]="G4_XYLENE"; 649 static const G4double e181[25]={1.262E+02,5.81 650 AddData(T0,e181,181); 651 name[182]="G4_H"; 652 static const G4double e182[25]={3.205E+02,1.36 653 AddData(T0,e182,182); 654 name[183]="G4_He"; 655 static const G4double e183[25]={1.308E+02,5.83 656 AddData(T0,e183,183); 657 name[184]="G4_Li"; 658 static const G4double e184[25]={1.146E+02,5.09 659 AddData(T0,e184,184); 660 name[185]="G4_Be"; 661 static const G4double e185[25]={1.015E+02,4.68 662 AddData(T0,e185,185); 663 name[186]="G4_B"; 664 static const G4double e186[25]={9.932E+01,4.66 665 AddData(T0,e186,186); 666 name[187]="G4_C"; 667 static const G4double e187[25]={1.062E+02,5.00 668 AddData(T0,e187,187); 669 name[188]="G4_N"; 670 static const G4double e188[25]={1.043E+02,4.94 671 AddData(T0,e188,188); 672 name[189]="G4_O"; 673 static const G4double e189[25]={9.86E+01,4.752 674 AddData(T0,e189,189); 675 name[190]="G4_F"; 676 static const G4double e190[25]={8.629E+01,4.26 677 AddData(T0,e190,190); 678 name[191]="G4_Ne"; 679 static const G4double e191[25]={8.344E+01,4.23 680 AddData(T0,e191,191); 681 name[192]="G4_Na"; 682 static const G4double e192[25]={7.74E+01,3.979 683 AddData(T0,e192,192); 684 name[193]="G4_Mg"; 685 static const G4double e193[25]={7.809E+01,4.04 686 AddData(T0,e193,193); 687 name[194]="G4_Al"; 688 static const G4double e194[25]={7.385E+01,3.86 689 AddData(T0,e194,194); 690 name[195]="G4_Si"; 691 static const G4double e195[25]={7.478E+01,3.94 692 AddData(T0,e195,195); 693 name[196]="G4_P"; 694 static const G4double e196[25]={7.265E+01,3.83 695 AddData(T0,e196,196); 696 name[197]="G4_S"; 697 static const G4double e197[25]={7.33E+01,3.90E 698 AddData(T0,e197,197); 699 name[198]="G4_Cl"; 700 static const G4double e198[25]={7.172E+01,3.79 701 AddData(T0,e198,198); 702 name[199]="G4_Ar"; 703 static const G4double e199[25]={6.465E+01,3.47 704 AddData(T0,e199,199); 705 name[200]="G4_K"; 706 static const G4double e200[25]={6.932E+01,3.73 707 AddData(T0,e200,200); 708 name[201]="G4_Ca"; 709 static const G4double e201[25]={7.098E+01,3.82 710 AddData(T0,e201,201); 711 name[202]="G4_Sc"; 712 static const G4double e202[25]={6.192E+01,3.42 713 AddData(T0,e202,202); 714 name[203]="G4_Ti"; 715 static const G4double e203[25]={5.816E+01,3.27 716 AddData(T0,e203,203); 717 name[204]="G4_V"; 718 static const G4double e204[25]={5.537E+01,3.16 719 AddData(T0,e204,204); 720 name[205]="G4_Cr"; 721 static const G4double e205[25]={5.487E+01,3.17 722 AddData(T0,e205,205); 723 name[206]="G4_Mn"; 724 static const G4double e206[25]={5.206E+01,3.06 725 AddData(T0,e206,206); 726 name[207]="G4_Fe"; 727 static const G4double e207[25]={5.142E+01,3.07 728 AddData(T0,e207,207); 729 name[208]="G4_Co"; 730 static const G4double e208[25]={4.924E+01,2.97 731 AddData(T0,e208,208); 732 name[209]="G4_Ni"; 733 static const G4double e209[25]={4.955E+01,3.04 734 AddData(T0,e209,209); 735 name[210]="G4_Cu"; 736 static const G4double e210[25]={4.615E+01,2.86 737 AddData(T0,e210,210); 738 name[211]="G4_Zn"; 739 static const G4double e211[25]={4.551E+01,2.85 740 AddData(T0,e211,211); 741 name[212]="G4_Ga"; 742 static const G4double e212[25]={4.369E+01,2.75 743 AddData(T0,e212,212); 744 name[213]="G4_Ge"; 745 static const G4double e213[25]={4.168E+01,2.67 746 AddData(T0,e213,213); 747 name[214]="G4_As"; 748 static const G4double e214[25]={4.195E+01,2.68 749 AddData(T0,e214,214); 750 name[215]="G4_Se"; 751 static const G4double e215[25]={4.092E+01,2.61 752 AddData(T0,e215,215); 753 name[216]="G4_Br"; 754 static const G4double e216[25]={4.212E+01,2.67 755 AddData(T0,e216,216); 756 name[217]="G4_Kr"; 757 static const G4double e217[25]={4.044E+01,2.59 758 AddData(T0,e217,217); 759 name[218]="G4_Rb"; 760 static const G4double e218[25]={3.97E+01,2.583 761 AddData(T0,e218,218); 762 name[219]="G4_Sr"; 763 static const G4double e219[25]={3.949E+01,2.57 764 AddData(T0,e219,219); 765 name[220]="G4_Y"; 766 static const G4double e220[25]={3.874E+01,2.56 767 AddData(T0,e220,220); 768 name[221]="G4_Zr"; 769 static const G4double e221[25]={3.747E+01,2.52 770 AddData(T0,e221,221); 771 name[222]="G4_Nb"; 772 static const G4double e222[25]={3.565E+01,2.47 773 AddData(T0,e222,222); 774 name[223]="G4_Mo"; 775 static const G4double e223[25]={3.48E+01,2.433 776 AddData(T0,e223,223); 777 name[224]="G4_Tc"; 778 static const G4double e224[25]={3.458E+01,2.42 779 AddData(T0,e224,224); 780 name[225]="G4_Ru"; 781 static const G4double e225[25]={3.325E+01,2.37 782 AddData(T0,e225,225); 783 name[226]="G4_Rh"; 784 static const G4double e226[25]={3.278E+01,2.36 785 AddData(T0,e226,226); 786 name[227]="G4_Pd"; 787 static const G4double e227[25]={3.085E+01,2.28 788 AddData(T0,e227,227); 789 name[228]="G4_Ag"; 790 static const G4double e228[25]={3.11E+01,2.303 791 AddData(T0,e228,228); 792 name[229]="G4_Cd"; 793 static const G4double e229[25]={3.055E+01,2.25 794 AddData(T0,e229,229); 795 name[230]="G4_In"; 796 static const G4double e230[25]={2.92E+01,2.213 797 AddData(T0,e230,230); 798 name[231]="G4_Sn"; 799 static const G4double e231[25]={2.882E+01,2.18 800 AddData(T0,e231,231); 801 name[232]="G4_Sb"; 802 static const G4double e232[25]={2.873E+01,2.17 803 AddData(T0,e232,232); 804 name[233]="G4_Te"; 805 static const G4double e233[25]={2.808E+01,2.12 806 AddData(T0,e233,233); 807 name[234]="G4_I"; 808 static const G4double e234[25]={2.837E+01,2.15 809 AddData(T0,e234,234); 810 name[235]="G4_Xe"; 811 static const G4double e235[25]={2.854E+01,2.14 812 AddData(T0,e235,235); 813 name[236]="G4_Cs"; 814 static const G4double e236[25]={2.832E+01,2.14 815 AddData(T0,e236,236); 816 name[237]="G4_Ba"; 817 static const G4double e237[25]={2.77E+01,2.109 818 AddData(T0,e237,237); 819 name[238]="G4_La"; 820 static const G4double e238[25]={2.723E+01,2.10 821 AddData(T0,e238,238); 822 name[239]="G4_Ce"; 823 static const G4double e239[25]={2.607E+01,2.07 824 AddData(T0,e239,239); 825 name[240]="G4_Pr"; 826 static const G4double e240[25]={2.562E+01,2.07 827 AddData(T0,e240,240); 828 name[241]="G4_Nd"; 829 static const G4double e241[25]={2.478E+01,2.03 830 AddData(T0,e241,241); 831 name[242]="G4_Pm"; 832 static const G4double e242[25]={2.424E+01,2.03 833 AddData(T0,e242,242); 834 name[243]="G4_Sm"; 835 static const G4double e243[25]={2.295E+01,1.96 836 AddData(T0,e243,243); 837 name[244]="G4_Eu"; 838 static const G4double e244[25]={2.273E+01,1.96 839 AddData(T0,e244,244); 840 name[245]="G4_Gd"; 841 static const G4double e245[25]={2.171E+01,1.90 842 AddData(T0,e245,245); 843 name[246]="G4_Tb"; 844 static const G4double e246[25]={2.059E+01,1.87 845 AddData(T0,e246,246); 846 name[247]="G4_Dy"; 847 static const G4double e247[25]={1.973E+01,1.83 848 AddData(T0,e247,247); 849 name[248]="G4_Ho"; 850 static const G4double e248[25]={1.863E+01,1.80 851 AddData(T0,e248,248); 852 name[249]="G4_Er"; 853 static const G4double e249[25]={1.825E+01,1.78 854 AddData(T0,e249,249); 855 name[250]="G4_Tm"; 856 static const G4double e250[25]={1.757E+01,1.77 857 AddData(T0,e250,250); 858 name[251]="G4_Yb"; 859 static const G4double e251[25]={1.693E+01,1.73 860 AddData(T0,e251,251); 861 name[252]="G4_Lu"; 862 static const G4double e252[25]={1.652E+01,1.72 863 AddData(T0,e252,252); 864 name[253]="G4_Hf"; 865 static const G4double e253[25]={1.592E+01,1.70 866 AddData(T0,e253,253); 867 name[254]="G4_Ta"; 868 static const G4double e254[25]={1.534E+01,1.68 869 AddData(T0,e254,254); 870 name[255]="G4_W"; 871 static const G4double e255[25]={1.491E+01,1.66 872 AddData(T0,e255,255); 873 name[256]="G4_Re"; 874 static const G4double e256[25]={1.453E+01,1.65 875 AddData(T0,e256,256); 876 name[257]="G4_Os"; 877 static const G4double e257[25]={1.399E+01,1.62 878 AddData(T0,e257,257); 879 name[258]="G4_Ir"; 880 static const G4double e258[25]={1.357E+01,1.61 881 AddData(T0,e258,258); 882 name[259]="G4_Pt"; 883 static const G4double e259[25]={1.22E+01,1.566 884 AddData(T0,e259,259); 885 name[260]="G4_Au"; 886 static const G4double e260[25]={1.224E+01,1.57 887 AddData(T0,e260,260); 888 name[261]="G4_Hg"; 889 static const G4double e261[25]={1.178E+01,1.54 890 AddData(T0,e261,261); 891 name[262]="G4_Tl"; 892 static const G4double e262[25]={1.131E+01,1.52 893 AddData(T0,e262,262); 894 name[263]="G4_Pb"; 895 static const G4double e263[25]={1.08E+01,1.507 896 AddData(T0,e263,263); 897 name[264]="G4_Bi"; 898 static const G4double e264[25]={1.084E+01,1.51 899 AddData(T0,e264,264); 900 name[265]="G4_Po"; 901 static const G4double e265[25]={1.07E+01,1.522 902 AddData(T0,e265,265); 903 name[266]="G4_At"; 904 static const G4double e266[25]={1.097E+01,1.53 905 AddData(T0,e266,266); 906 name[267]="G4_Rn"; 907 static const G4double e267[25]={1.167E+01,1.51 908 AddData(T0,e267,267); 909 name[268]="G4_Fr"; 910 static const G4double e268[25]={1.05E+01,1.481 911 AddData(T0,e268,268); 912 name[269]="G4_Ra"; 913 static const G4double e269[25]={1.052E+01,1.47 914 AddData(T0,e269,269); 915 name[270]="G4_Ac"; 916 static const G4double e270[25]={1.003E+01,1.47 917 AddData(T0,e270,270); 918 name[271]="G4_Th"; 919 static const G4double e271[25]={9.71,1.448E+01 920 AddData(T0,e271,271); 921 name[272]="G4_Pa"; 922 static const G4double e272[25]={8.744,1.433E+0 923 AddData(T0,e272,272); 924 name[273]="G4_U"; 925 static const G4double e273[25]={8.168,1.392E+0 926 AddData(T0,e273,273); 927 name[274]="G4_Np"; 928 static const G4double e274[25]={7.877,1.399E+0 929 AddData(T0,e274,274); 930 name[275]="G4_Pu"; 931 static const G4double e275[25]={7.25,1.381E+01 932 AddData(T0,e275,275); 933 name[276]="G4_Am"; 934 static const G4double e276[25]={6.776,1.358E+0 935 AddData(T0,e276,276); 936 name[277]="G4_Cm"; 937 static const G4double e277[25]={6.573,1.344E+0 938 AddData(T0,e277,277); 939 name[278]="G4_Bk"; 940 static const G4double e278[25]={6.217,1.344E+0 941 AddData(T0,e278,278); 942 name[279]="G4_Cf"; 943 static const G4double e279[25]={5.732,1.321E+0 944 AddData(T0,e279,279); 945 946 } 947 948 void G4ESTARStopping::AddData(const G4double* 949 G4int idx) 950 { 951 //G4cout << "G4ESTARStopping::AddData: idx= 952 G4double x1, x2, x3, x4, x5, x6, x7; 953 954 static const G4double fac = MeV*cm2/g; 955 if(nullptr != sdata[idx]) { delete sdata[idx 956 957 const G4String& dirPath = G4EmParameters::In 958 959 // hardtyped data 960 if(0 == type) { 961 sdata[idx] = new G4PhysicsFreeVector(25, e 962 for(size_t i=0; i<25; ++i) { 963 sdata[idx]->PutValues(i, ekin[i]*MeV, st 964 } 965 966 // basic data 967 } else if(1 == type) { 968 std::ostringstream ost; 969 if(idx >= 182) { 970 ost << dirPath << "/estar/estar_basic/el 971 } else { 972 size_t n = (name[idx]).size(); 973 ost << dirPath << "/estar/estar_basic/ma 974 } 975 std::ifstream fin(ost.str().c_str()); 976 if( !fin.is_open()) { 977 G4ExceptionDescription ed; 978 ed << "ESTAR data file <" << ost.str().c 979 << "> is not retrieved!"; 980 G4Exception("G4ESTARStopping::AddData"," 981 ed,"G4LEDATA version should be 982 return; 983 } 984 sdata[idx] = new G4PhysicsFreeVector(81, 0 985 for(size_t i=0; i<81; ++i) { 986 fin >> x1 >> x2 >> x3 >> x4 >> x5 >> x6 987 sdata[idx]->PutValues(i, x1*MeV, x4*fac) 988 } 989 990 // long data 991 } else { 992 std::ostringstream ost; 993 if(idx >= 182) { 994 ost << dirPath << "/estar/estar_long/ele 995 } else { 996 size_t n = (name[idx]).size(); 997 ost << dirPath << "/estar/estar_long/mat 998 } 999 std::ifstream fin(ost.str().c_str()); 1000 if( !fin.is_open()) { 1001 G4ExceptionDescription ed; 1002 ed << "ESTAR data file <" << ost.str(). 1003 << "> is not retrieved!"; 1004 G4Exception("G4ESTARStopping::AddData", 1005 ed,"G4LEDATA version should b 1006 return; 1007 } 1008 sdata[idx] = new G4PhysicsFreeVector(97, 1009 for(size_t i=0; i<97; ++i) { 1010 fin >> x1 >> x2 >> x3 >> x4 >> x5; 1011 sdata[idx]->PutValues(i, x1*MeV, x4*fac 1012 } 1013 } 1014 sdata[idx]->FillSecondDerivatives(); 1015 //G4cout << "done " << G4endl; 1016 } 1017 1018 1019