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 G4ParticleHPThermalScatteringNames::G4Particle 45 G4ParticleHPThermalScatteringNames::G4ParticleHPThermalScatteringNames() 46 { 46 { 47 // ----------------------------------------- << 47 names.insert ( std::pair < G4String , G4String > ( "TS_Aluminium_Metal" , "al_metal" ) ); 48 // Old Geant4 naming - before 23/03/2022 - T << 48 names.insert ( std::pair < G4String , G4String > ( "TS_Beryllium_Metal" , "be_metal" ) ); 49 // G4NDL4.5 << 49 names.insert ( std::pair < G4String , G4String > ( "TS_Be_of_Beryllium_Oxide" , "be_beo" ) ); 50 // ----------------------------------------- << 50 names.insert ( std::pair < G4String , G4String > ( "TS_C_of_Graphite" , "graphite" ) ); 51 /*names.insert ( std::pair < G4String , G4St << 51 names.insert ( std::pair < G4String , G4String > ( "TS_D_of_Heavy_Water" , "d_heavy_water" ) ); 52 names.insert ( std::pair < G4String , G4Stri << 52 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Water" , "h_water" ) ); 53 names.insert ( std::pair < G4String , G4Stri << 53 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Zirconium_Hydride" , "h_zrh" ) ); 54 names.insert ( std::pair < G4String , G4Stri << 54 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Polyethylene" , "h_polyethylene" ) ); 55 names.insert ( std::pair < G4String , G4Stri << 55 names.insert ( std::pair < G4String , G4String > ( "TS_Iron_Metal" , "fe_metal" ) ); 56 names.insert ( std::pair < G4String , G4Stri << 56 names.insert ( std::pair < G4String , G4String > ( "TS_O_of_Uranium_Dioxide" , "o_uo2" ) ); 57 names.insert ( std::pair < G4String , G4Stri << 57 names.insert ( std::pair < G4String , G4String > ( "TS_O_of_Beryllium_Oxide" , "o_beo" ) ); 58 names.insert ( std::pair < G4String , G4Stri << 58 names.insert ( std::pair < G4String , G4String > ( "TS_U_of_Uranium_Dioxide" , "u_uo2" ) ); 59 names.insert ( std::pair < G4String , G4Stri << 59 names.insert ( std::pair < G4String , G4String > ( "TS_Zr_of_Zirconium_Hydride" , "zr_zrh" ) ); 60 names.insert ( std::pair < G4String , G4Stri << 60 61 names.insert ( std::pair < G4String , G4Stri << 61 62 names.insert ( std::pair < G4String , G4Stri << 62 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Para_Hydrogen" , "h_para_h2" ) ); 63 names.insert ( std::pair < G4String , G4Stri << 63 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Ortho_Hydrogen" , "h_ortho_h2" ) ); 64 names.insert ( std::pair < G4String , G4Stri << 64 65 names.insert ( std::pair < G4String , G4Stri << 65 names.insert ( std::pair < G4String , G4String > ( "TS_D_of_Para_Deuterium" , "d_para_d2" ) ); 66 //// ENDF-B71 << 66 names.insert ( std::pair < G4String , G4String > ( "TS_D_of_Ortho_Deuterium" , "d_ortho_d2" ) ); 67 << 67 68 << 68 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Liquid_Methane", "h_l_ch4" ) ); 69 names.insert ( std::pair < G4String , G4Stri << 69 names.insert ( std::pair < G4String , G4String > ( "TS_H_of_Solid_Methane", "h_s_ch4" ) ); 70 names.insert ( std::pair < G4String , G4Stri << 70 71 << 71 //names.insert ( std::pair < G4String , G4String > ( "TS_Benzene", "benzen" ) ); 72 names.insert ( std::pair < G4String , G4Stri << 72 73 names.insert ( std::pair < G4String , G4Stri << 73 74 << 74 nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_BERYLLIUM_OXIDE" , "Be" ) , "be_beo" ) ); 75 names.insert ( std::pair < G4String , G4Stri << 75 nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_BERYLLIUM_OXIDE" , "O" ) , "o_beo" ) ); 76 names.insert ( std::pair < G4String , G4Stri << 76 nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_GRAPHITE" , "C" ) , "graphite" ) ); 77 << 77 nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_POLYETHYLENE" , "H" ) , "h_polyethylene" ) ); 78 // ----------------------------------------- << 78 nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_URANIUM_OXIDE" , "O" ) , "o_uo2" ) ); 79 // New Geant4 naming - after 23/03/2022 - TS << 79 nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_URANIUM_OXIDE" , "U" ) , "u_uo2" ) ); 80 // ----------------------------------------- << 80 nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_WATER" , "H" ) , "h_water" ) ); 81 /// 23/03/2022 - Added by L. Thulliez (CEA-S << 81 82 names.insert( << 82 //nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_BENZENE" , "H" ) , "benzen" ) ); 83 std::pair<G4String, G4String>("TS_Benzene" << 83 //nist_names.insert ( std::pair < std::pair < G4String , G4String > , G4String > ( std::pair < G4String , G4String > ( "G4_BENZENE" , "C" ) , "benzen" ) ); 84 names.insert(std::pair<G4String, G4String>( << 85 "TS_H_of_Para_Hydrogen", "h_para_h2")); / << 86 names.insert(std::pair<G4String, G4String>( << 87 "TS_D_of_Para_Deuterium", "d_para_d2")); << 88 names.insert(std::pair<G4String, G4String>( << 89 "TS_H_of_Ortho_Hydrogen", "h_ortho_h2")); << 90 names.insert(std::pair<G4String, G4String>( << 91 "TS_D_of_Ortho_Deuterium", "d_ortho_d2")); << 92 names.insert(std::pair<G4String, G4String>(" << 93 " << 94 names.insert(std::pair<G4String, G4String>(" << 95 names.insert(std::pair<G4String, G4String>(" << 96 " << 97 names.insert(std::pair<G4String, G4String>(" << 98 " << 99 names.insert(std::pair<G4String, G4String>(" << 100 names.insert(std::pair<G4String, G4String>(" << 101 " << 102 names.insert(std::pair<G4String, G4String>( << 103 "TS_H_of_Zirconium_Hydride", "h_zrh")); / << 104 names.insert(std::pair<G4String, G4String>(" << 105 names.insert( << 106 std::pair<G4String, G4String>("TS_H_of_Ice << 107 names.insert(std::pair<G4String, G4String>( << 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 } 84 } 212 85 213 G4bool G4ParticleHPThermalScatteringNames:: << 86 G4ParticleHPThermalScatteringNames::~G4ParticleHPThermalScatteringNames() 214 IsThisThermalElement(const G4String& aname) co << 215 { 87 { 216 G4bool result = false; << 88 ; 217 if (names.find(aname) != names.end()) result << 218 return result; << 219 } 89 } 220 90 221 G4bool G4ParticleHPThermalScatteringNames:: << 91 G4bool G4ParticleHPThermalScatteringNames::IsThisThermalElement( G4String aname) 222 IsThisThermalElement(const G4String& material, << 223 { 92 { 224 G4bool result = false; << 93 G4bool result = false; 225 if (nist_names.find(std::pair<G4String, G4St << 94 if ( names.find ( aname ) != names.end() ) result = true; 226 result = true; << 95 return result; 227 return result; << 228 } 96 } 229 97 230 // Name of G4Element , Name of NDL file << 98 G4bool G4ParticleHPThermalScatteringNames::IsThisThermalElement( G4String material , G4String element ) 231 void G4ParticleHPThermalScatteringNames::AddTh << 232 << 233 { 99 { 234 if (names.find(nameG4Element) == names.end() << 100 G4bool result = false; 235 names.insert(std::pair<G4String, G4String> << 101 if ( nist_names.find ( std::pair<G4String,G4String>(material,element) ) != nist_names.end() ) result = true; >> 102 return result; >> 103 } >> 104 >> 105 //Name of G4Element , Name of NDL file >> 106 void G4ParticleHPThermalScatteringNames::AddThermalElement ( G4String nameG4Element , G4String filename) >> 107 { >> 108 if ( names.find ( nameG4Element ) == names.end() ) names.insert( std::pair<G4String,G4String>( nameG4Element , filename ) ); 236 } 109 } 237 110