60    threshold_of_half_life(1000.0*
ns),
 
   61    flevelTolerance(1.0*
eV)
 
   87      delete (*fIsotopeList)[i];
 
  107      if ( 
Z == (*it)->GetAtomicNumber() && 
A == (*it)->GetAtomicMass() )
 
  112          if( flb == (*it)->GetFloatLevelBase() ) { 
return *it; } 
 
  129    while ( lower_bound_itr != itf -> 
second.cend() )
 
  131      levelE = lower_bound_itr->first;
 
  134        if ( flb == (lower_bound_itr->second)->GetFloatLevelBase() )
 
  136          return lower_bound_itr->second; 
 
  154  return eex - (
G4long)(eex/tolerance)*tolerance;
 
  161  return round(eex/tolerance)*tolerance;
 
  168  return (
G4long)(eex/tolerance);
 
  191    char* path = std::getenv(
"G4ENSDFSTATEDATA");
 
  193    if ( path == 
nullptr )
 
  196                  "G4ENSDFSTATEDATA environment variable must be set");
 
  202    filename += 
"/ENSDFSTATE.dat";
 
  204    ifs.open( filename.c_str() );
 
  208                  "ENSDFSTATE.dat is not found.");
 
  222    ifs >> ionZ >> ionA >> ionE >> ionFL >> ionLife >> ionJ >> ionMu;
 
  226      if ( ionCode != 1000*ionZ + ionA )
 
  229        ionCode = 1000*ionZ + ionA;
 
  241        if ( ionE > 0 ) ++iLevel;
 
  242        if ( iLevel > 9 ) iLevel=9;
 
  262          std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
 
  268               std::pair< G4double, G4IsotopeProperty* >(ionE, fProperty) );
 
  270      ifs >> ionZ >> ionA >> ionE >> ionFL >> ionLife >> ionJ >> ionMu;
 
  287    G4int ionCode = it->first;
 
  291      std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
 
  297    for ( 
auto itt = it->second.cbegin(); itt != it->second.cend(); ++itt )
 
  300      G4double meanLife = itt->second->GetLifeTime();
 
  303        if ( itt->first != 0.0 ) ++iLevel;
 
  304        if ( iLevel > 9 ) iLevel=9;
 
  305        itt->second->SetIsomerLevel( iLevel );
 
  307             std::pair< G4double, G4IsotopeProperty* >(exEnergy, itt->second) );
 
  321    AddState(ionZ,ionA,ionE,flbIndex,ionLife,ionJ,ionMu);
 
  393  flbIndex = 
G4int(rem);
 
  401   if ( sFLB.size() < 1 || 2 < sFLB.size() )
 
  405     text += 
" is not valid indicator of G4Ions::G4FloatLevelBase.\n";
 
  406     text += 
"You may use a wrong version of ENSDFSTATE data.\n";
 
  407     text += 
"Please use G4ENSDFSTATE-2.0 or later.";
 
  412   if ( !(sFLB == 
"-") )
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
static constexpr double joule
static constexpr double tesla
static constexpr double second
static constexpr double keV
static constexpr double eV
static G4Ions::G4FloatLevelBase FloatLevelBase(char flbChar)
void SetAtomicMass(G4int A)
void SetDecayTable(G4DecayTable *table)
void SetFloatLevelBase(G4Ions::G4FloatLevelBase flb)
void SetEnergy(G4double E)
void SetAtomicNumber(G4int Z)
void SetIsomerLevel(G4int level)
G4double GetEnergy() const
void SetLifeTime(G4double T)
void SetMagneticMoment(G4double M)
std::map< G4int, std::multimap< G4double, G4IsotopeProperty * > > map_full_list
static G4double GetTruncationError(G4double eex)
void AddState(G4int, G4int, G4double, G4double, G4int ionJ=0, G4double ionMu=0.0)
G4IsotopeList * fUserDefinedList
static G4NuclideTable * GetInstance()
std::map< G4int, std::multimap< G4double, G4IsotopeProperty * > > map_pre_load_list
void SetThresholdOfHalfLife(G4double)
G4NuclideTableMessenger * fMessenger
virtual G4IsotopeProperty * GetIsotope(G4int Z, G4int A, G4double E, G4Ions::G4FloatLevelBase flb=G4Ions::G4FloatLevelBase::no_Float)
G4double threshold_of_half_life
G4double minimum_threshold_of_half_life
static G4NuclideTable * GetNuclideTable()
static G4long Truncate(G4double eex)
G4double GetLevelTolerance()
G4IsotopeList * fIsotopeList
std::vector< G4IsotopeProperty * > G4IsotopeList
static G4double Tolerance()
G4double StripFloatLevelBase(G4double E, G4int &flbIndex)
static G4double Round(G4double eex)
virtual G4IsotopeProperty * GetIsotopeByIsoLvl(G4int Z, G4int A, G4int lvl=0)
virtual ~G4NuclideTable()