Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // Class Description 27 // Name list of Elements for a high precision (based on evaluated data 28 // libraries) description of themal neutron scattering below 4 eV; 29 // Based on Thermal neutron scattering files 30 // from the evaluated nuclear data files ENDF/B-VI, Release2 31 // To be used in your physics list in case you need this physics. 32 // In this case you want to register an object of this class with 33 // the corresponding process. 34 // Class Description - End 35 36 // 15-Nov-06 First implementation is done by T. Koi (SLAC/SCCS) 37 // P. Arce, June-2014 Conversion neutron_hp to particle_hp 38 // 39 40 #include "G4ParticleHPThermalScatteringNames.hh" 41 42 #include "G4ElementTable.hh" 43 #include "G4Neutron.hh" 44 45 G4ParticleHPThermalScatteringNames::G4ParticleHPThermalScatteringNames() 46 { 47 // -------------------------------------------------------------------------------------------------------------------------- 48 // Old Geant4 naming - before 23/03/2022 - TSL linked to ENDF/BVII.1 nuclear cross-section 49 // G4NDL4.5 50 // -------------------------------------------------------------------------------------------------------------------------- 51 /*names.insert ( std::pair < G4String , G4String > ( "TS_Aluminium_Metal" , "al_metal" ) ); 52 names.insert ( std::pair < G4String , G4String > ( "TS_Beryllium_Metal" , "be_metal" ) ); 53 names.insert ( std::pair < G4String , G4String > ( "TS_Be_of_Beryllium_Oxide" , "be_beo" ) ); 54 names.insert ( std::pair < G4String , G4String > ( "TS_C_of_Graphite" , "graphite" ) ); 55 names.insert ( std::pair < G4String , G4String > ( "TS_D_of_Heavy_Water" , "d_heavy_water" ) ); 56 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Water" , "h_water" ) ); 57 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Zirconium_Hydride" , "h_zrh" ) ); 58 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Polyethylene" , "h_polyethylene" ) ); 59 names.insert ( std::pair < G4String , G4String > ( "TS_Iron_Metal" , "fe_metal" ) ); 60 names.insert ( std::pair < G4String , G4String > ( "TS_O_of_Uranium_Dioxide" , "o_uo2" ) ); 61 names.insert ( std::pair < G4String , G4String > ( "TS_O_of_Beryllium_Oxide" , "o_beo" ) ); 62 names.insert ( std::pair < G4String , G4String > ( "TS_U_of_Uranium_Dioxide" , "u_uo2" ) ); 63 names.insert ( std::pair < G4String , G4String > ( "TS_U235_of_Uranium_Dioxide" , "u235_uo2" ) ); 64 names.insert ( std::pair < G4String , G4String > ( "TS_U238_of_Uranium_Dioxide" , "u238_uo2" ) ); 65 names.insert ( std::pair < G4String , G4String > ( "TS_Zr_of_Zirconium_Hydride" , "zr_zrh" ) ); 66 //// ENDF-B71 67 68 69 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Para_Hydrogen" , "h_para_h2" ) ); 70 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Ortho_Hydrogen" , "h_ortho_h2" ) ); 71 72 names.insert ( std::pair < G4String , G4String > ( "TS_D_of_Para_Deuterium" , "d_para_d2" ) ); 73 names.insert ( std::pair < G4String , G4String > ( "TS_D_of_Ortho_Deuterium" , "d_ortho_d2" ) ); 74 75 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Liquid_Methane", "h_l_ch4" ) ); 76 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Solid_Methane", "h_s_ch4" ) ); */ 77 78 // -------------------------------------------------------------------------------------------------------------------------- 79 // New Geant4 naming - after 23/03/2022 - TSL linked to JEFF-3.3 nuclear cross-section G4NDL4.6 80 // -------------------------------------------------------------------------------------------------------------------------- 81 /// 23/03/2022 - Added by L. Thulliez (CEA-Saclay) 82 names.insert( 83 std::pair<G4String, G4String>("TS_Benzene", "h_benzen")); /// ENDF/BVIII.0 and ENDF/BVII.1 84 names.insert(std::pair<G4String, G4String>( 85 "TS_H_of_Para_Hydrogen", "h_para_h2")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 86 names.insert(std::pair<G4String, G4String>( 87 "TS_D_of_Para_Deuterium", "d_para_d2")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 88 names.insert(std::pair<G4String, G4String>( 89 "TS_H_of_Ortho_Hydrogen", "h_ortho_h2")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 90 names.insert(std::pair<G4String, G4String>( 91 "TS_D_of_Ortho_Deuterium", "d_ortho_d2")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 92 names.insert(std::pair<G4String, G4String>("TS_O_of_Uranium_Dioxide", 93 "o_uo2")); /// ENDF/BVIII.0 and ENDF/BVII.1 94 names.insert(std::pair<G4String, G4String>("TS_O_of_Ice", "o_ice")); /// ENDF/BVIII.0 95 names.insert(std::pair<G4String, G4String>("TS_O_of_Heavy_Water", 96 "o_heavy_water")); /// ENDF/BVIII.0 and JEFFF.3.3 97 names.insert(std::pair<G4String, G4String>("TS_O_of_Beryllium_Oxide", 98 "o_beo")); /// ENDF/BVIII.0 and ENDF/BVII.1 99 names.insert(std::pair<G4String, G4String>("TS_N_of_Uranium_Nitride", "n_un")); /// ENDF/BVIII.0 100 names.insert(std::pair<G4String, G4String>("TS_H_of_Liquid_Methane", 101 "h_l_ch4")); /// ENDF/BVIII.0 and ENDF/BVII.1 102 names.insert(std::pair<G4String, G4String>( 103 "TS_H_of_Zirconium_Hydride", "h_zrh")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 104 names.insert(std::pair<G4String, G4String>("TS_H_of_Yttrium_Hydride", "h_yh2")); /// ENDF/BVIII.0 105 names.insert( 106 std::pair<G4String, G4String>("TS_H_of_Ice", "h_ice")); /// ENDF/BVIII.0 and JEFFF.3.3 107 names.insert(std::pair<G4String, G4String>( 108 "TS_H_of_Water", "h_water")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 109 names.insert(std::pair<G4String, G4String>( 110 "TS_H_of_Polyethylene", "h_polyethylene")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 111 names.insert( 112 std::pair<G4String, G4String>("TS_H_of_PolymethylMethacrylate", "h_c5o2h8")); /// ENDF/BVIII.0 113 names.insert(std::pair<G4String, G4String>( 114 "TS_D_of_Heavy_Water", "d_heavy_water")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 115 names.insert(std::pair<G4String, G4String>( 116 "TS_C_of_Graphite", "graphite")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 117 names.insert( 118 std::pair<G4String, G4String>("TS_C_of_Silicium_Carbide", "c_sic")); /// ENDF/BVIII.0 119 names.insert(std::pair<G4String, G4String>("TS_C_of_Graphite_Porosity_30percent", 120 "graphite_30p")); /// ENDF/BVIII.0 121 names.insert(std::pair<G4String, G4String>("TS_C_of_Graphite_Porosity_10percent", 122 "graphite_10p")); /// ENDF/BVIII.0 123 names.insert(std::pair<G4String, G4String>( 124 "TS_Beryllium_Metal", "be_metal")); /// ENDF/BVIII.0 and JEFFF.3.3 and ENDF/BVII.1 125 names.insert(std::pair<G4String, G4String>("TS_Be_of_Beryllium_Oxide", 126 "be_beo")); /// ENDF/BVIII.0 and ENDF/BVII.1 127 names.insert( 128 std::pair<G4String, G4String>("TS_Iron_Metal", "fe_metal")); /// ENDF/BVIII.0 and ENDF/BVII.1 129 names.insert(std::pair<G4String, G4String>("TS_Zr90_of_Zirconium_Hydride", 130 "zr90_zrh")); /// ENDF/BVIII.0 and ENDF/BVII.1 131 names.insert(std::pair<G4String, G4String>("TS_Zr91_of_Zirconium_Hydride", 132 "zr91_zrh")); /// ENDF/BVIII.0 and ENDF/BVII.1 133 names.insert(std::pair<G4String, G4String>("TS_Zr92_of_Zirconium_Hydride", 134 "zr92_zrh")); /// ENDF/BVIII.0 and ENDF/BVII.1 135 names.insert(std::pair<G4String, G4String>("TS_Zr94_of_Zirconium_Hydride", 136 "zr94_zrh")); /// ENDF/BVIII.0 and ENDF/BVII.1 137 names.insert(std::pair<G4String, G4String>("TS_Zr96_of_Zirconium_Hydride", 138 "zr96_zrh")); /// ENDF/BVIII.0 and ENDF/BVII.1 139 names.insert(std::pair<G4String, G4String>("TS_Y_of_Yttrium_Hydride", "y_yh2")); /// ENDF/BVIII.0 140 names.insert(std::pair<G4String, G4String>("TS_U235_of_Uranium_Dioxide", 141 "u235_uo2")); /// ENDF/BVIII.0 and ENDF/BVII.1 142 names.insert(std::pair<G4String, G4String>("TS_U238_of_Uranium_Dioxide", 143 "u238_uo2")); /// ENDF/BVIII.0 and ENDF/BVII.1 144 names.insert( 145 std::pair<G4String, G4String>("TS_U235_of_Uranium_Nitride", "u235_un")); /// ENDF/BVIII.0 146 names.insert( 147 std::pair<G4String, G4String>("TS_U238_of_Uranium_Nitride", "u238_un")); /// ENDF/BVIII.0 148 names.insert( 149 std::pair<G4String, G4String>("TS_Si28_of_SiO2_beta", "si28_sio2_beta")); /// ENDF/BVIII.0 150 names.insert( 151 std::pair<G4String, G4String>("TS_Si29_of_SiO2_beta", "si29_sio2_beta")); /// ENDF/BVIII.0 152 names.insert( 153 std::pair<G4String, G4String>("TS_Si30_of_SiO2_beta", "si30_sio2_beta")); /// ENDF/BVIII.0 154 names.insert(std::pair<G4String, G4String>("TS_Si28_of_SiO2_alpha", 155 "si28_sio2_alpha")); /// ENDF/BVIII.0 and ENDF/BVII.1 156 names.insert(std::pair<G4String, G4String>("TS_Si29_of_SiO2_alpha", 157 "si29_sio2_alpha")); /// ENDF/BVIII.0 and ENDF/BVII.1 158 names.insert(std::pair<G4String, G4String>("TS_Si30_of_SiO2_alpha", 159 "si30_sio2_alpha")); /// ENDF/BVIII.0 and ENDF/BVII.1 160 names.insert( 161 std::pair<G4String, G4String>("TS_Si28_of_Silicium_Carbide", "si28_sic")); /// ENDF/BVIII.0 162 names.insert( 163 std::pair<G4String, G4String>("TS_Si29_of_Silicium_Carbide", "si29_sic")); /// ENDF/BVIII.0 164 names.insert( 165 std::pair<G4String, G4String>("TS_Si30_of_Silicium_Carbide", "si30_sic")); /// ENDF/BVIII.0 166 names.insert(std::pair<G4String, G4String>("TS_H_of_Solid_Methane", 167 "h_s_ch4")); /// ENDF/BVIII.0 and ENDF/BVII.1 168 names.insert(std::pair<G4String, G4String>("TS_Aluminium_Metal", 169 "al_metal")); /// ENDF/BVIII.0 and ENDF/BVII.1 170 names.insert(std::pair<G4String, G4String>("TS_Al_of_Sapphir_SingleCrystal", 171 "al_al2o3_singlecrystal")); /// JEFFF.3.3 172 names.insert(std::pair<G4String, G4String>("TS_Ca_of_CaH2", "ca_cah2")); /// JEFFF.3.3 173 names.insert(std::pair<G4String, G4String>("TS_H_of_CaH2", "h_cah2")); /// JEFFF.3.3 174 names.insert(std::pair<G4String, G4String>("TS_H_of_Mesitylene_phaseII", 175 "h_mesitylene_phaseII")); /// JEFFF.3.3 176 names.insert(std::pair<G4String, G4String>("TS_O_of_Sapphir_SingleCrystal", 177 "o_al2o3_singlecrystal")); /// JEFFF.3.3 178 names.insert(std::pair<G4String, G4String>("TS_H_of_Toluene", "h_toluene")); /// JEFFF.3.3 179 names.insert(std::pair<G4String, G4String>("TS_Si30_of_SiO2_SingleCrystal", 180 "si30_sio2_singlecrystal")); /// JEFFF.3.3 181 names.insert(std::pair<G4String, G4String>("TS_Si29_of_SiO2_SingleCrystal", 182 "si29_sio2_singlecrystal")); /// JEFFF.3.3 183 names.insert(std::pair<G4String, G4String>("TS_Si28_of_SiO2_SingleCrystal", 184 "si28_sio2_singlecrystal")); /// JEFFF.3.3 185 names.insert( 186 std::pair<G4String, G4String>("TS_Mg26_of_Magnesium_Metal", "mg26_magnesium")); /// JEFFF.3.3 187 names.insert( 188 std::pair<G4String, G4String>("TS_Mg25_of_Magnesium_Metal", "mg25_magnesium")); /// JEFFF.3.3 189 names.insert( 190 std::pair<G4String, G4String>("TS_Mg24_of_Magnesium_Metal", "mg24_magnesium")); /// JEFFF.3.3 191 192 nist_names.insert(std::pair<std::pair<G4String, G4String>, G4String>( 193 std::pair<G4String, G4String>("G4_BERYLLIUM_OXIDE", "Be"), "be_beo")); 194 nist_names.insert(std::pair<std::pair<G4String, G4String>, G4String>( 195 std::pair<G4String, G4String>("G4_BERYLLIUM_OXIDE", "O"), "o_beo")); 196 nist_names.insert(std::pair<std::pair<G4String, G4String>, G4String>( 197 std::pair<G4String, G4String>("G4_GRAPHITE", "C"), "graphite")); 198 nist_names.insert(std::pair<std::pair<G4String, G4String>, G4String>( 199 std::pair<G4String, G4String>("G4_POLYETHYLENE", "H"), "h_polyethylene")); 200 nist_names.insert(std::pair<std::pair<G4String, G4String>, G4String>( 201 std::pair<G4String, G4String>("G4_URANIUM_OXIDE", "O"), "o_uo2")); 202 nist_names.insert(std::pair<std::pair<G4String, G4String>, G4String>( 203 std::pair<G4String, G4String>("G4_URANIUM_OXIDE", "U"), "u_uo2")); 204 nist_names.insert(std::pair<std::pair<G4String, G4String>, G4String>( 205 std::pair<G4String, G4String>("G4_WATER", "H"), "h_water")); 206 207 // nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < 208 // G4String , G4String > ( "G4_BENZENE" , "H" ) , "benzen" ) ); nist_names.insert ( std::pair < 209 // std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( 210 // "G4_BENZENE" , "C" ) , "benzen" ) ); 211 } 212 213 G4bool G4ParticleHPThermalScatteringNames:: 214 IsThisThermalElement(const G4String& aname) const 215 { 216 G4bool result = false; 217 if (names.find(aname) != names.end()) result = true; 218 return result; 219 } 220 221 G4bool G4ParticleHPThermalScatteringNames:: 222 IsThisThermalElement(const G4String& material, const G4String& element) const 223 { 224 G4bool result = false; 225 if (nist_names.find(std::pair<G4String, G4String>(material, element)) != nist_names.end()) 226 result = true; 227 return result; 228 } 229 230 // Name of G4Element , Name of NDL file 231 void G4ParticleHPThermalScatteringNames::AddThermalElement(const G4String& nameG4Element, 232 const G4String& filename) 233 { 234 if (names.find(nameG4Element) == names.end()) 235 names.insert(std::pair<G4String, G4String>(nameG4Element, filename)); 236 } 237