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