185 if (!getenv(
"G4RADIOACTIVEDATA")) {
186 G4cout <<
"Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files." <<
G4endl;
188 "Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files.");
190 G4String dirName = getenv(
"G4RADIOACTIVEDATA");
192 std::ostringstream os;
193 os <<dirName <<
"/z" <<
Z <<
".a" <<
A ;
196 std::ifstream DecaySchemeFile(file);
198 G4bool found_in_raddecay_data(
false);
199 if (!DecaySchemeFile) {
201 G4cout <<
"G4RIsotopeTable::GetMeanLife() : " 202 <<
"cannot find ion radioactive decay file: " 206 char inputChars[100]={
' '};
214 ed <<
" While count exceeded " <<
G4endl;
215 while (!found_in_raddecay_data && !DecaySchemeFile.getline(inputChars, 100).eof()) {
222 inputLine = inputChars;
223 inputLine = inputLine.
strip(1);
225 if (inputChars[0] !=
'#' && inputLine.length() != 0) {
226 std::istringstream tmpstream(inputLine);
227 tmpstream >> recordType >>
a >>
b;
228 if (recordType ==
"P") {
230 found_in_raddecay_data =
true;
231 lifetime = b/0.693147*
s ;
236 DecaySchemeFile.close();
239 if (!found_in_raddecay_data && aE) {
241 lifetime = 1.0E-20*
s;
251 lifetime = half_life/0.693147;
255 G4cout <<
"G4RIsotopeTable::GetMeanLife() : ";
256 G4cout <<
"cannot find ion of required excitation E = " << aE <<
G4endl;
257 G4cout <<
"state in radioactive or photoevaporation data file " <<
G4endl;
258 G4cout <<
"The nucleus is assumed to be IT decayed with life = 1E-20 s" <<
G4endl;
259 G4cout <<
" -----------* THIS MAY CAUSE PROBLEM IN ITS DECAY-----------" <<
G4endl;
263 if (!found_in_raddecay_data && !aE) {
265 G4cout <<
"G4RIsotopeTable::GetMeanLife() : ";
266 G4cout <<
"cannot find ion of required excitation E = " << aE <<
G4endl;
267 G4cout <<
"state in radioactive or photoevaporation data file" <<
G4endl;
268 G4cout <<
"The nucleus is assumed to be stable" <<
G4endl;
274 G4cout <<
"G4RIsotopeTable::GetMeanLifeTime: ";
const G4NuclearLevel * NearestLevel(G4double energy, G4double eDiffMax=1.e+8) const
std::ostringstream G4ExceptionDescription
G4String strip(G4int strip_Type=trailing, char c=' ')
G4double HalfLife() const
static G4NuclearLevelStore * GetInstance()
static const G4double levelTolerance
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4NuclearLevelManager * GetManager(G4int Z, G4int A)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4int GetVerboseLevel() const
std::map< G4int, G4String > theUserRadioactiveDataFiles
G4String GetIsotopeName(G4int Z, G4int A, G4double E)