42 #ifdef G4MULTITHREADED
53 #ifdef G4MULTITHREADED
54 if(!theShadowInstance) {
56 theShadowInstance = &shadowInst;
65 char* env = getenv(
"G4LEVELGAMMADATA");
68 G4cout <<
"G4NuclarLevelStore: please set the G4LEVELGAMMADATA environment variable\n";
80 #ifdef G4MULTITHREADED
81 if(
this==theShadowInstance)
84 ManagersMap::iterator i;
87 #ifdef G4MULTITHREADED
97 G4cout<<
"G4NuclearLevelStore::AddUserEvaporationDataFile "
98 <<
" Z= " << Z <<
" and A= " << A <<
" not valid!"<<
G4endl;
101 std::ifstream DecaySchemeFile(filename);
102 if (DecaySchemeFile){
108 G4cout<<
"The file "<<filename<<
" does not exist!"<<
G4endl;
115 std::ostringstream streamName;
116 streamName <<
'z' << Z <<
".a" <<
A;
125 if (A < 1 || Z < 1 || A < Z)
138 #ifdef G4MULTITHREADED
142 G4MUTEXLOCK(&G4NuclearLevelStore::nuclearLevelStoreMutex);
143 ManagersMap::iterator idxS = theShadowInstance->theManagers.find(key);
144 if ( idxS == theShadowInstance->theManagers.end() )
152 if (file1 !=
"") { file = file1; }
155 theShadowInstance->theManagers.insert(std::make_pair(key,result));
160 result = idxS->second;
175 if (file1 !=
"") { file = file1; }
184 result = idx->second;
std::map< G4int, G4String > theUserDataFiles
static G4NuclearLevelStore * GetInstance()
#define G4MUTEX_INITIALIZER
static G4ThreadLocal G4NuclearLevelStore * theInstance
void AddUserEvaporationDataFile(G4int Z, G4int A, const G4String &filename)
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
G4NuclearLevelManager * GetManager(G4int Z, G4int A)
G4String GenerateFileName(G4int Z, G4int A) const