52 std::map<G4int,G4DataVector*,std::less<G4int> >::iterator
pos;
54 for (pos = idMap.begin(); pos != idMap.end(); ++
pos)
59 for (pos = energyMap.begin(); pos != energyMap.end(); ++
pos)
64 for (pos = probabilityMap.begin(); pos != probabilityMap.end(); ++
pos)
73 return numberOfVacancies;
79 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
82 "vacancyIndex outside boundaries");
86 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator
pos;
87 pos = idMap.find(vacancyIndex);
88 if (pos!= idMap.end())
90 n = (
G4int) dataSet[0];
100 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
103 "vacancyIndex outside boundaries, energy deposited locally");
108 n = nInitShells[vacancyIndex]-1;
119 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
122 "vacancyIndex outside boundaries");
126 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator
pos;
128 pos = idMap.find(vacancyIndex);
132 G4int nData = dataSet.size();
135 if (initIndex >= 0 && initIndex < nData)
137 n = (
G4int) dataSet[initIndex+1];
147 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
150 "vacancyIndex outside boundaries");}
153 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator
pos;
155 pos = energyMap.find(vacancyIndex);
159 G4int nData = dataSet.size();
160 if (initIndex >= 0 && initIndex < nData)
162 n = dataSet[initIndex];
172 if (vacancyIndex<0 || vacancyIndex>=numberOfVacancies)
175 "vacancyIndex outside boundaries, energy deposited locally");
180 std::map<G4int,G4DataVector*,std::less<G4int> >::const_iterator
pos;
182 pos = probabilityMap.find(vacancyIndex);
186 G4int nData = dataSet.size();
187 if (initIndex >= 0 && initIndex < nData)
189 n = dataSet[initIndex];
198 std::ostringstream ost;
200 ost <<
"/fl-tr-pr-"<< Z <<
".dat";
203 ost <<
"/fl-tr-pr-"<<
".dat";
207 char* path = getenv(
"G4LEDATA");
210 G4String excep(
"G4FluoData::LoadData()");
217 std::ifstream file(dirFile);
218 std::filebuf* lsdp = file.rdbuf();
220 if (! (lsdp->is_open()) )
222 G4String excep =
"G4FluoData::LoadData()";
223 G4String msg =
"data file: " + dirFile +
" not found";
245 idMap[vacIndex] = initIds;
246 energyMap[vacIndex] = transEnergies;
247 probabilityMap[vacIndex] = transProbabilities;
249 G4int n = initIds->size();
251 nInitShells.push_back(n);
260 if (sLocal == nColumns)
280 if (a != -1) transProbabilities->push_back(a);
284 else if (k%nColumns == 1)
289 if(initIds->size() == 0) {
290 if (a != -1) initIds->push_back((
G4int)a);
296 if (a != -1) initIds->push_back(a);
300 else if (k%nColumns == 0)
306 transEnergies->push_back(e);}
315 delete transEnergies;
316 delete transProbabilities;
322 for (
G4int i = 0; i <numberOfVacancies; i++)
324 G4cout <<
"---- TransitionData for the vacancy nb "
337 G4cout <<
" - Transition energy = " << e <<
" MeV "<<
G4endl;
341 G4cout <<
"-------------------------------------------------"
G4FluoData(const G4String &dir)
G4double StartShellProb(G4int initIndex, G4int vacancyIndex) const
std::vector< ExP01TrackerHit * > a
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
static constexpr double MeV
static const G4double pos