51 std::map<G4int,G4DataVector*,std::less<G4int> >::iterator pos;
53 for (pos = idMap.begin(); pos != idMap.end(); ++pos)
58 for (pos = energyMap.begin(); pos != energyMap.end(); ++pos)
63 for (pos = probabilityMap.begin(); pos != probabilityMap.end(); ++pos)
72 return numberOfVacancies;
78 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
82 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator pos;
83 pos = idMap.find(vacancyIndex);
84 if (pos!= idMap.end())
86 n = (
G4int) dataSet[0];
96 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
98 G4Exception(
"G4FluoData::NumberOfTransitions()",
"de0002",
JustWarning,
"vacancyIndex outside boundaries, energy deposited locally");
103 n = nInitShells[vacancyIndex]-1;
114 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
119 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator pos;
121 pos = idMap.find(vacancyIndex);
125 G4int nData = dataSet.size();
128 if (initIndex >= 0 && initIndex < nData)
130 n = (
G4int) dataSet[initIndex+1];
141 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
145 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator pos;
147 pos = energyMap.find(vacancyIndex);
151 G4int nData = dataSet.size();
152 if (initIndex >= 0 && initIndex < nData)
154 n = dataSet[initIndex];
165 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
167 G4Exception(
"G4FluoData::StartShellEnergy()",
"de0002",
JustWarning,
"vacancyIndex outside boundaries, energy deposited locally");
172 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator pos;
174 pos = probabilityMap.find(vacancyIndex);
178 G4int nData = dataSet.size();
179 if (initIndex >= 0 && initIndex < nData)
181 n = dataSet[initIndex];
192 std::ostringstream ost;
194 ost <<
"fl-tr-pr-"<< Z <<
".dat";
197 ost <<
"fl-tr-pr-"<<
".dat";
201 char* path = getenv(
"G4LEDATA");
204 G4String excep(
"G4FluoData::LoadData()");
212 std::ifstream
file(dirFile);
213 std::filebuf* lsdp = file.rdbuf();
215 if (! (lsdp->is_open()) )
217 G4String excep =
"G4FluoData::LoadData()";
218 G4String msg =
"data file: " + dirFile +
" not found";
240 idMap[vacIndex] = initIds;
241 energyMap[vacIndex] = transEnergies;
242 probabilityMap[vacIndex] = transProbabilities;
244 G4int n = initIds->size();
246 nInitShells.push_back(n);
255 if (sLocal == nColumns)
276 if (a != -1) transProbabilities->push_back(a);
280 else if (k%nColumns == 1)
285 if(initIds->size() == 0) {
286 if (a != -1) initIds->push_back((
G4int)a);
292 if (a != -1) initIds->push_back(a);
296 else if (k%nColumns == 0)
302 transEnergies->push_back(e);}
311 delete transEnergies;
312 delete transProbabilities;
319 for (
G4int i = 0; i <numberOfVacancies; i++)
321 G4cout <<
"---- TransitionData for the vacancy nb "
334 G4cout <<
" - Transition energy = " << e <<
" MeV "<<
G4endl;
338 G4cout <<
"-------------------------------------------------"
G4double StartShellProb(G4int initIndex, G4int vacancyIndex) const
size_t NumberOfVacancies() const
G4GLOB_DLL std::ostream G4cout
G4int VacancyId(G4int vacancyIndex) const
G4int StartShellId(G4int initIndex, G4int vacancyIndex) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4double StartShellEnergy(G4int initIndex, G4int vacancyIndex) const
size_t NumberOfTransitions(G4int vacancyIndex) const