49 "Lithium",
"Berylium",
"Boron",
"Carbon",
"Nitrogen",
"Oxygen",
"Fluorine",
50 "Neon",
"Sodium",
"Magnesium",
"Aluminum",
"Silicon",
"Phosphorous",
51 "Sulfur",
"Chlorine",
"Argon",
"Potassium",
"Calcium",
"Scandium",
52 "Titanium",
"Vanadium",
"Chromium",
"Manganese",
"Iron",
"Cobalt",
"Nickel",
53 "Copper",
"Zinc",
"Gallium",
"Germanium",
"Arsenic",
"Selenium",
"Bromine",
54 "Krypton",
"Rubidium",
"Strontium",
"Yttrium",
"Zirconium",
"Niobium",
55 "Molybdenum",
"Technetium",
"Ruthenium",
"Rhodium",
"Palladium",
"Silver",
56 "Cadmium",
"Indium",
"Tin",
"Antimony",
"Tellurium",
"Iodine",
"Xenon",
57 "Cesium",
"Barium",
"Lanthanum",
"Cerium",
"Praseodymium",
"Neodymium",
58 "Promethium",
"Samarium",
"Europium",
"Gadolinium",
"Terbium",
"Dysprosium",
59 "Holmium",
"Erbium",
"Thulium",
"Ytterbium",
"Lutetium",
"Hafnium",
60 "Tantalum",
"Tungsten",
"Rhenium",
"Osmium",
"Iridium",
"Platinium",
"Gold",
61 "Mercury",
"Thallium",
"Lead",
"Bismuth",
"Polonium",
"Astatine",
"Radon",
62 "Francium",
"Radium",
"Actinium",
"Thorium",
"Protactinium",
"Uranium",
63 "Neptunium",
"Plutonium",
"Americium",
"Curium",
"Berkelium",
"Californium",
64 "Einsteinium",
"Fermium"};
88 if (std::getenv(
"NeutronHPNames") )
G4cout <<
"Names::GetName entered for Z = " << Z <<
", A = " << A <<
G4endl;
105 std::istringstream* check = NULL;
107 if (std::getenv(
"NeutronHPNames"))
G4cout <<
"entered GetName!!!"<<
G4endl;
115 if(theName!=0)
delete theName;
121 if(std::getenv(
"NeutronHPNames"))
G4cout <<
"HPWD 1 "<<*theName<<
G4endl;
124 if ( check != NULL ) {
143 *biff = base+
"/CrossSection/"+
itoa(myZ)+
"_"+
"nat"+
"_"+theString[myZ-1];
146 if(std::getenv(
"NeutronHPNames"))
G4cout <<
"HPWD 2 "<<*theName<<
G4endl;
165 *biff = base+
"/"+rest+
"/"+
itoa(myZ)+
"_"+
"nat"+
"_"+theString[myZ-1];
166 if ( rest==
"/CrossSection" ) *biff = base+rest+
"/"+
itoa(myZ)+
"_"+
"nat"+
"_"+theString[myZ-1];
169 if(std::getenv(
"NeutronHPNames"))
G4cout <<
"HPWD 3 "<<*theName<<
G4endl;
195 std::istringstream*
file = NULL;
198 if ( rest ==
"/CrossSection" )
202 fileName = base+rest+
"/"+
itoa(myZ)+
"_"+
itoa(myA)+sM+
"_"+theString[myZ-1];
203 if(std::getenv(
"NeutronHPNames"))
G4cout <<
"HPWD 4a "<<*theName<<
G4endl;
208 fileName = base+
"/"+rest+
"/"+
itoa(myZ)+
"_"+
itoa(myA)+sM+
"_"+theString[myZ-1];
215 if(std::getenv(
"NeutronHPNames"))
G4cout <<
"HPWD 4b1 "<<*theName<<
G4endl;
219 fileName = base+
"/"+rest+
"/"+
itoa(myZ)+
"_"+
"nat"+
"_"+theString[myZ-1];
228 if(std::getenv(
"NeutronHPNames"))
G4cout <<
"HPWD 4b2a "<<*theName<<
G4endl;
232 if(std::getenv(
"NeutronHPNames"))
G4cout <<
"HPWD 4b2c "<<*theName<<
G4endl;
250 G4cout <<
"G4ParticleHPNames: There are no data available for some isotopes in this material " <<
G4endl;
251 G4cout <<
"G4ParticleHPNames: nor are there data for nearby isotopes." <<
G4endl;
252 G4cout <<
"G4ParticleHPNames: Please make sure G4NEUTRONHPDATA points to the directory " <<
G4endl;
253 G4cout <<
"G4ParticleHPNames: in which the neutron scattering data are located." <<
G4endl;
254 G4cout <<
"G4ParticleHPNames: The material was A = " << A <<
", Z = " << Z <<
G4endl;
255 throw G4HadronicException(__FILE__, __LINE__,
"In case the data sets are at present not available in the neutron data library, please contact Hadron Group Coordinator");
273 myZ = Z + flip_Z * delta_Z;
292 myA = A + flip_A * delta_A;
304 while( myZ == 0 || myA == 0 );
307 while((!check) || (!(*check)));
309 if(std::getenv(
"NeutronHPNamesLogging") || std::getenv(
"NeutronHPNames"))
311 G4cout <<
"Names::GetName: last theName proposal = "<<
G4endl;
316 if ( Z != result.
GetZ() || A != result.
GetA() )
318 if ( rest ==
"/CrossSection" )
322 reac.erase ( 0 , dir.length() );
325 if ( verboseLevel > 0 ) {
326 G4cout <<
"NeutronHP: " << reac <<
" file for Z = " << Z <<
", A = " << A <<
" is not found and CrossSection set to 0." <<
G4endl;
328 G4String new_name = base+
"/"+rest+
"/"+
"0_0_Zero";
335 if ( ( reac.find(
"Inelastic") != reac.size() && ( (Z == 1 && A == 1) || (Z == 1 && A == 2) || (Z == 1 && A == 3) || (Z == 2 && A == 3) || (Z == 2 && A == 4) ) )
336 || ( reac.find(
"Capture") != reac.size() && ( (Z == 1 && A == 3) || (Z == 2 && A == 4) ) )
337 || ( reac.find(
"Fission") != reac.size() && ( (Z == 88 && A == 224) || (Z == 88 && A == 225) || (Z == 89 && A == 225) || (Z == 88 && A == 226) ) ) )
340 G4String new_name = base+
"/"+rest+
"/"+
"0_0_Zero";
345 if ( verboseLevel > 0 ) {
346 G4cout <<
"NeutronHP: " << reac <<
" file for Z = " << Z <<
", A = " << A <<
" is not found and NeutronHP will use " << result.
GetName() <<
G4endl;