Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/particle_hp/src/G4ParticleHPThermalScatteringNames.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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