43 infTableLimit(limitInfTable),
44 supTableLimit(limitSupTable)
53 shellManager->
LoadData(
"/fluor/binding");
59 std::vector<G4RDAtomicShell*> vectorOfShells;
60 size_t shellIndex = 0;
63 for (shellIndex = 0; shellIndex<numberOfShells; shellIndex++)
70 vectorOfShells.push_back(shell);
81 std::vector<G4RDFluoTransition*> vectorOfTransitions;
84 size_t numberOfVacancies = fluoManager-> NumberOfVacancies();
86 for (
size_t vacancyIndex = 0; vacancyIndex<numberOfVacancies; vacancyIndex++)
89 std::vector<G4int> vectorOfIds;
95 for (
size_t origShellIndex = 0; origShellIndex < numberOfTransitions;
100 G4int originatingShellId = fluoManager->
StartShellId(origShellIndex,vacancyIndex);
102 vectorOfIds.push_back(originatingShellId);
105 vectorOfEnergies.push_back(transitionEnergy);
107 vectorOfProbabilities.push_back(transitionProbability);
110 vectorOfEnergies,vectorOfProbabilities);
111 vectorOfTransitions.push_back(transition);
127 std::map<G4int,std::vector<G4RDAtomicShell*>,std::less<G4int> >::iterator
pos;
131 std::vector< G4RDAtomicShell*>vec = (*pos).second;
133 G4int vecSize=vec.size();
135 for (
G4int i=0; i< vecSize; i++){
142 std::map<G4int,std::vector<G4RDFluoTransition*>,std::less<G4int> >::iterator ppos;
146 std::vector<G4RDFluoTransition*>vec = (*ppos).second;
148 G4int vecSize=vec.size();
150 for (
G4int i=0; i< vecSize; i++){
174 std::map<G4int,std::vector<G4RDAtomicShell*>,std::less<G4int> >::const_iterator
pos;
180 std::vector<G4RDAtomicShell*>
v = (*pos).second;
181 if (shellIndex<v.size())
183 return(v[shellIndex]);
187 size_t lastShell = v.size();
188 G4cout <<
"G4RDAtomicTransitionManager::Shell - Z = "
189 << Z <<
", shellIndex = " << shellIndex
190 <<
" not found; number of shells = " << lastShell <<
G4endl;
194 return v[lastShell - 1];
204 G4Exception(
"G4RDAtomicTransitionManager::Shell()",
215 std::map<G4int,std::vector<G4RDFluoTransition*>,std::less<G4int> >::const_iterator
pos;
219 std::vector<G4RDFluoTransition*>
v = (*pos).second;
220 if (shellIndex < v.size())
return(v[shellIndex]);
222 G4Exception(
"G4RDAtomicTransitionManager::ReachableShell()",
224 "Reachable shell not found!");
229 G4cout <<
"G4AtomicTransitionMagare warning: No fluorescence or Auger for Z=" << Z <<
G4endl;
241 return augerTransition;
249 std::map<G4int,std::vector<G4RDAtomicShell*>,std::less<G4int> >::const_iterator
pos;
255 std::vector<G4RDAtomicShell*>
v = (*pos).second;
261 G4cout <<
"G4AtomicTransitionMagare warning: No fluorescence or Auger for Z=" << Z <<
G4endl;
274 std::map<G4int,std::vector<G4RDFluoTransition*>,std::less<G4int> >::const_iterator
pos;
280 std::vector<G4RDFluoTransition*>
v = (*pos).second;
285 G4cout <<
"G4AtomicTransitionMagare warning: No fluorescence or Auger for Z=" << Z <<
G4endl;
308 std::map<G4int,std::vector<G4RDFluoTransition*>,std::less<G4int> >::iterator
pos;
314 std::vector<G4RDFluoTransition*>
v = (*pos).second;
316 if (shellIndex < v.size())
322 for (
size_t j = 0; j<transProb.size(); j++)
324 totalRadTransProb = totalRadTransProb + transProb[j];
326 return totalRadTransProb;
330 G4Exception(
"G4RDAtomicTransitionManager::TotalRadiativeTransitionProbability()",
337 G4cout <<
"G4AtomicTransitionMagare warning: No fluorescence or Auger for Z=" << Z <<
G4endl;
350 std::map<G4int,std::vector<G4RDFluoTransition*>,std::less<G4int> >::iterator
pos;
356 std::vector<G4RDFluoTransition*>
v = (*pos).second;
359 if (shellIndex<v.size()){
365 for(
size_t j = 0; j<transProb.size(); j++)
367 totalRadTransProb = totalRadTransProb + transProb[j];
370 G4double totalNonRadTransProb= (1 - totalRadTransProb);
372 return totalNonRadTransProb; }
375 G4Exception(
"G4RDAtomicTransitionManager::TotalNonRadiativeTransitionProbability()",
381 G4cout <<
"G4AtomicTransitionMagare warning: No fluorescence or Auger for Z=" << Z <<
G4endl;