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 MapForHEP::iterator j;
90 #ifdef G4MULTITHREADED
100 G4cout<<
"G4NuclearLevelStore::AddUserEvaporationDataFile "
101 <<
" Z= " << Z <<
" and A= " << A <<
" not valid!"<<
G4endl;
104 std::ifstream DecaySchemeFile(filename);
105 if (DecaySchemeFile){
111 G4cout<<
"The file "<<filename<<
" does not exist!"<<
G4endl;
118 std::ostringstream streamName;
119 streamName <<
'z' << Z <<
".a" <<
A;
128 if (A < 1 || Z < 1 || A < Z)
141 #ifdef G4MULTITHREADED
145 G4MUTEXLOCK(&G4NuclearLevelStore::nuclearLevelStoreMutex);
146 ManagersMap::iterator idxS = theShadowInstance->theManagers.find(key);
147 if ( idxS == theShadowInstance->theManagers.end() )
155 if (file1 !=
"") { file = file1; }
158 theShadowInstance->theManagers.insert(std::make_pair(key,result));
163 result = idxS->second;
178 if (file1 !=
"") { file = file1; }
187 result = idx->second;
203 #ifdef G4MULTITHREADED
206 G4MUTEXLOCK(&G4NuclearLevelStore::nuclearLevelStoreMutex);
207 MapForHEP::iterator idxS = theShadowInstance->managersForHEP.find(key);
208 if ( idxS == theShadowInstance->managersForHEP.end() ) {
212 theShadowInstance->managersForHEP.insert(std::make_pair(key,result));
215 { result = idxS->second; }
231 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
G4LevelManager * GetLevelManager(G4int Z, G4int A)
static const G4double A[nN]
G4NuclearLevelManager * GetManager(G4int Z, G4int A)
G4String GenerateFileName(G4int Z, G4int A) const