168 char* path = getenv(
"G4ENSDFSTATEDATA");
172 FatalException,
"G4ENSDFSTATEDATA environment variable must be set");
178 filename +=
"/ENSDFSTATE.dat";
180 ifs.open( filename.c_str() );
199 ifs >> ionZ >> ionA >> ionE >> ionLife >> ionJ >> ionMu;
201 while ( ifs.good() ) {
203 if ( ionCode != 1000*ionZ + ionA ) {
205 ionCode = 1000*ionZ + ionA;
215 if ( ionE > 0 ) iLevel++;
216 if ( iLevel > 9 ) iLevel=9;
232 std::map< G4int , std::multimap< G4double , G4IsotopeProperty* > >::iterator itf =
map_full_list.find( ionCode );
234 std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
236 itf = (
map_full_list.insert( std::pair<
G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) ) ).first;
238 itf ->
second.insert( std::pair< G4double, G4IsotopeProperty* >( ionE , fProperty ) );
241 ifs >> ionZ >> ionA >> ionE >> ionLife >> ionJ >> ionMu;
250 for ( std::map<
G4int , std::multimap< G4double , G4IsotopeProperty* > >::iterator
257 for ( std::map<
G4int , std::multimap< G4double , G4IsotopeProperty* > >::iterator
260 G4int ionCode = it->first;
261 std::map< G4int , std::multimap< G4double , G4IsotopeProperty* > >::iterator itf =
map_pre_load_list.find( ionCode );
263 std::multimap<G4double, G4IsotopeProperty*> aMultiMap;
264 itf = (
map_pre_load_list.insert( std::pair<
G4int , std::multimap< G4double , G4IsotopeProperty* > > ( ionCode , aMultiMap ) ) ).first;
267 for ( std::multimap< G4double , G4IsotopeProperty* >::iterator
268 itt = it->second.begin(); itt != it->second.end(); itt++ ) {
271 G4double meanLife = itt->second->GetLifeTime();
276 if ( itt->first != 0.0 ) iLevel++;
277 if ( iLevel > 9 ) iLevel=9;
278 itt->second->SetIsomerLevel( iLevel );
280 itf ->
second.insert( std::pair< G4double, G4IsotopeProperty* >( exEnergy , itt->second ) );
void SetAtomicMass(G4int A)
std::map< G4int, std::multimap< G4double, G4IsotopeProperty *> > map_full_list
static const double joule
G4double threshold_of_half_life
void SetMagneticMoment(G4double M)
void SetLifeTime(G4double T)
G4IsotopeList * fIsotopeList
static const double second
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
std::map< G4int, std::multimap< G4double, G4IsotopeProperty *> > map_pre_load_list
void SetEnergy(G4double E)
void SetDecayTable(G4DecayTable *table)
G4double minimum_threshold_of_half_life
static const double tesla
void SetAtomicNumber(G4int Z)
void SetIsomerLevel(G4int level)