50 "Lithium",
"Berylium",
"Boron",
"Carbon",
"Nitrogen",
"Oxygen",
"Fluorine",
51 "Neon",
"Sodium",
"Magnesium",
"Aluminum",
"Silicon",
"Phosphorous",
52 "Sulfur",
"Chlorine",
"Argon",
"Potassium",
"Calcium",
"Scandium",
53 "Titanium",
"Vanadium",
"Chromium",
"Manganese",
"Iron",
"Cobalt",
"Nickel",
54 "Copper",
"Zinc",
"Gallium",
"Germanium",
"Arsenic",
"Selenium",
"Bromine",
55 "Krypton",
"Rubidium",
"Strontium",
"Yttrium",
"Zirconium",
"Niobium",
56 "Molybdenum",
"Technetium",
"Ruthenium",
"Rhodium",
"Palladium",
"Silver",
57 "Cadmium",
"Indium",
"Tin",
"Antimony",
"Tellurium",
"Iodine",
"Xenon",
58 "Cesium",
"Barium",
"Lanthanum",
"Cerium",
"Praseodymium",
"Neodymium",
59 "Promethium",
"Samarium",
"Europium",
"Gadolinium",
"Terbium",
"Dysprosium",
60 "Holmium",
"Erbium",
"Thulium",
"Ytterbium",
"Lutetium",
"Hafnium",
61 "Tantalum",
"Tungsten",
"Rhenium",
"Osmium",
"Iridium",
"Platinium",
"Gold",
62 "Mercury",
"Thallium",
"Lead",
"Bismuth",
"Polonium",
"Astatine",
"Radon",
63 "Francium",
"Radium",
"Actinium",
"Thorium",
"Protactinium",
"Uranium",
64 "Neptunium",
"Plutonium",
"Americium",
"Curium",
"Berkelium",
"Californium",
65 "Einsteinium",
"Fermium"};
93 G4cout <<
"Names::GetName entered for Z = " << Z <<
", A = " <<
A <<
G4endl;
111 std::istringstream* check = NULL;
125 if(theName!=0)
delete theName;
134 if ( check != NULL ) {
140 check =
new std::istringstream(std::ios::in);
153 *biff = base+
"/CrossSection/"+
itoa(myZ)+
"_"+
"nat"+
"_"+
theString[myZ-1];
163 check =
new std::istringstream(std::ios::in);
175 *biff = base+
"/"+rest+
"/"+
itoa(myZ)+
"_"+
"nat"+
"_"+
theString[myZ-1];
176 if ( rest==
"/CrossSection" ) *biff = base+rest+
"/"+
itoa(myZ)+
"_"+
"nat"+
"_"+
theString[myZ-1];
205 std::istringstream* file = NULL;
208 if ( rest ==
"/CrossSection" )
219 file =
new std::istringstream(std::ios::in);
229 fileName = base+
"/"+rest+
"/"+
itoa(myZ)+
"_"+
"nat"+
"_"+
theString[myZ-1];
233 file =
new std::istringstream(std::ios::in);
262 G4cout <<
"G4ParticleHPNames: There are no data available for some isotopes in this material " <<
G4endl;
263 G4cout <<
"G4ParticleHPNames: nor are there data for nearby isotopes." <<
G4endl;
264 G4cout <<
"G4ParticleHPNames: Please make sure G4NEUTRONHPDATA points to the directory " <<
G4endl;
265 G4cout <<
"G4ParticleHPNames: in which the neutron scattering data are located." <<
G4endl;
266 G4cout <<
"G4ParticleHPNames: The material was A = " <<
A <<
", Z = " << Z <<
G4endl;
269 throw G4HadronicException(__FILE__, __LINE__,
"In case the data sets are at present not available in the neutron data library, please contact Hadron Group Coordinator");
271 check =
new std::istringstream(std::ios::in);
287 myZ = Z + flip_Z * delta_Z;
306 myA =
A + flip_A * delta_A;
318 while( myZ == 0 || myA == 0 );
321 while((!check) || (!(*check)));
324 if( (std::getenv(
"NeutronHPNamesLogging") || std::getenv(
"NeutronHPNames")) &&
327 G4cout <<
"Names::GetName: last theName proposal = "<<
G4endl;
333 if ( Z != result.
GetZ() ||
A != result.
GetA() )
335 if ( rest ==
"/CrossSection" )
338 G4String dir = std::getenv(
"G4NEUTRONHPDATA");
339 reac.erase ( 0 , dir.length() );
344 G4cout <<
"NeutronHP: " << reac <<
" file for Z = " << Z <<
", A = " <<
A <<
" is not found and CrossSection set to 0." <<
G4endl;
347 G4String new_name = base+
"/"+rest+
"/"+
"0_0_Zero";
354 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) ) )
355 || ( reac.find(
"Capture") != reac.size() && ( (Z == 1 &&
A == 3) || (Z == 2 &&
A == 4) ) )
356 || ( reac.find(
"Fission") != reac.size() && ( (Z == 88 &&
A == 224) || (Z == 88 &&
A == 225) || (Z == 89 &&
A == 225) || (Z == 88 &&
A == 226) ) ) )
359 G4String new_name = base+
"/"+rest+
"/"+
"0_0_Zero";
366 G4cout <<
"NeutronHP: " << reac <<
" file for Z = " << Z <<
", A = " <<
A <<
" is not found and NeutronHP will use " << result.
GetName() <<
G4endl;
double A(double temperature)
G4GLOB_DLL std::ostream G4cout
static G4HadronicParameters * Instance()
G4bool IsThisNaturalAbundance()
void SetNaturalAbundanceFlag()
void SetName(G4String aName)
void GetDataStream2(G4String, std::istringstream &iss)
static G4ParticleHPManager * GetInstance()
G4String itoa(int current)
static const G4String theString[100]
G4ParticleHPDataUsed GetName(G4int A, G4int Z, G4String base, G4String rest, G4bool &active)
static G4double GetZtoA(G4int Z)