44   infTableLimit(limitInfTable),
 
   45   supTableLimit(limitSupTable)
 
   54   shellManager->
LoadData(
"/fluor/binding");
 
   60       std::vector<G4AtomicShell*> vectorOfShells;  
 
   61       size_t shellIndex = 0; 
 
   64       for (shellIndex = 0; shellIndex<numberOfShells; shellIndex++) 
 
   71       vectorOfShells.push_back(shell);
 
   75       shellTable[
Z] = vectorOfShells;
 
   80   for (
G4int Znum= infTableLimit; Znum<=supTableLimit; Znum++)
 
   82     std::vector<G4FluoTransition*> vectorOfTransitions;
 
   85     size_t numberOfVacancies = fluoManager-> NumberOfVacancies();
 
   87     for (
size_t vacancyIndex = 0; vacancyIndex<numberOfVacancies;  vacancyIndex++)
 
   90     std::vector<G4int>  vectorOfIds;
 
   96     for (
size_t origShellIndex = 0; origShellIndex < numberOfTransitions;
 
  101         G4int originatingShellId = fluoManager->
StartShellId(origShellIndex,vacancyIndex);
 
  103         vectorOfIds.push_back(originatingShellId);
 
  106         vectorOfEnergies.push_back(transitionEnergy);
 
  108         vectorOfProbabilities.push_back(transitionProbability);
 
  111                                     vectorOfEnergies,vectorOfProbabilities);
 
  112       vectorOfTransitions.push_back(transition); 
 
  115     transitionTable[Znum] = vectorOfTransitions;
 
  128 std::map<G4int,std::vector<G4AtomicShell*>,std::less<G4int> >::iterator pos;
 
  130  for (pos = shellTable.begin(); pos != shellTable.end(); pos++){
 
  132    std::vector< G4AtomicShell*>vec = (*pos).second;
 
  134    G4int vecSize=vec.size();
 
  136    for (
G4int i=0; i< vecSize; i++){
 
  143  std::map<G4int,std::vector<G4FluoTransition*>,std::less<G4int> >::iterator ppos;
 
  145  for (ppos = transitionTable.begin(); ppos != transitionTable.end(); ppos++){
 
  147    std::vector<G4FluoTransition*>vec = (*ppos).second;
 
  149    G4int vecSize=vec.size();
 
  151    for (
G4int i=0; i< vecSize; i++){
 
  175   std::map<G4int,std::vector<G4AtomicShell*>,std::less<G4int> >::const_iterator pos;
 
  177   pos = shellTable.find(Z);
 
  179   if (pos!= shellTable.end())
 
  181       std::vector<G4AtomicShell*> 
v = (*pos).second;
 
  182       if (shellIndex<v.size())
 
  184       return(v[shellIndex]);
 
  188       size_t lastShell = v.size();
 
  189       G4cout << 
"G4AtomicTransitionManager::Shell - Z = "  
  190          << Z << 
", shellIndex = " << shellIndex 
 
  191          << 
" not found; number of shells = " << lastShell << 
G4endl;
 
  195           return v[lastShell - 1];
 
  215   std::map<G4int,std::vector<G4FluoTransition*>,std::less<G4int> >::const_iterator pos;
 
  216   pos = transitionTable.find(Z);
 
  217   if (pos!= transitionTable.end())
 
  219       std::vector<G4FluoTransition*> 
v = (*pos).second;      
 
  220       if (shellIndex < v.size()) 
return(v[shellIndex]);
 
  222     G4Exception(
"G4AtomicTransitionManager::ReachebleShell()",
"de0002", 
JustWarning,
"Energy Deposited Locally.");
 
  232     G4String msg = 
"No deexcitation for Z=" + (
G4String(Z))+ 
". Energy Deposited Locally.";
 
  244   return augerTransition;
 
  252 std::map<G4int,std::vector<G4AtomicShell*>,std::less<G4int> >::const_iterator pos;
 
  254   pos = shellTable.find(Z);
 
  256   if (pos!= shellTable.end()){
 
  258     std::vector<G4AtomicShell*> 
v = (*pos).second;
 
  267     G4String msg = 
"No deexcitation for Z=" + (
G4String(Z))+ 
". Energy Deposited Locally.";
 
  282 std::map<G4int,std::vector<G4FluoTransition*>,std::less<G4int> >::const_iterator pos;
 
  284   pos = transitionTable.find(Z);
 
  286   if (pos!= transitionTable.end())
 
  288       std::vector<G4FluoTransition*> 
v = (*pos).second;
 
  296       G4String msg = 
"No deexcitation for Z=" + (
G4String(Z))+ 
". Energy Deposited Locally.";
 
  321 std::map<G4int,std::vector<G4FluoTransition*>,std::less<G4int> >::iterator pos;
 
  323   pos = transitionTable.find(Z);
 
  325   if (pos!= transitionTable.end())
 
  327       std::vector<G4FluoTransition*> 
v = (*pos).second;
 
  329     if (shellIndex < v.size())
 
  335     for (
size_t j = 0; j<transProb.size(); j++) 
 
  337       totalRadTransProb = totalRadTransProb + transProb[j];
 
  339       return totalRadTransProb;   
 
  344       G4Exception(
"G4AtomicTransitionManager::TotalRadiativeTransitionProbability()",
"de0002", 
JustWarning,
"Energy Deposited Locally.");
 
  353     G4String msg = 
"No deexcitation for Z=" + (
G4String(Z))+ 
". Energy Deposited Locally.";
 
  367   std::map<G4int,std::vector<G4FluoTransition*>,std::less<G4int> >::iterator pos;
 
  369   pos = transitionTable.find(Z);
 
  371   if (pos!= transitionTable.end()){
 
  373     std::vector<G4FluoTransition*> 
v = (*pos).second;
 
  376     if (shellIndex<v.size()){
 
  382       for(
size_t j = 0; j<transProb.size(); j++) 
 
  384       totalRadTransProb = totalRadTransProb + transProb[j];
 
  387       if (totalRadTransProb > 1) {
 
  388     G4Exception( 
"G4AtomicTransitionManager::TotalNonRadiativeTransitionProbability()",
"de0003",
FatalException,
"Total probability mismatch");
 
  391       G4double totalNonRadTransProb= (1 - totalRadTransProb);
 
  393       return totalNonRadTransProb;    }
 
  397 G4Exception(
"G4AtomicTransitionManager::TotalNonRadiativeTransitionProbability()",
"de0002", 
JustWarning,
"Energy Deposited Locally.");
 
  406     G4String msg = 
"No deexcitation for Z=" + (
G4String(Z))+ 
". Energy Deposited Locally.";
 
  408     G4Exception(
"G4AtomicTransitionManager::TotalNonRadiativeTransitionProbability()",
"de0001",
JustWarning,msg);
 
G4double TotalNonRadiativeTransitionProbability(G4int Z, size_t shellIndex)
 
G4int NumberOfShells(G4int Z) const 
 
G4double StartShellProb(G4int initIndex, G4int vacancyIndex) const 
 
G4double TotalRadiativeTransitionProbability(G4int Z, size_t shellIndex)
 
const G4AugerTransition * ReachableAugerShell(G4int Z, G4int shellIndex) const 
 
G4int NumberOfReachableShells(G4int Z) const 
 
const G4DataVector & TransitionProbabilities() const 
 
G4int ShellId(G4int Z, G4int shellIndex) const 
 
void LoadData(const G4String &fileName)
 
G4GLOB_DLL std::ostream G4cout
 
G4double BindingEnergy(G4int Z, G4int shellIndex) const 
 
G4int VacancyId(G4int vacancyIndex) const 
 
G4int NumberOfReachableAugerShells(G4int Z) 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 
 
const G4FluoTransition * ReachableShell(G4int Z, size_t shellIndex) const 
 
size_t NumberOfShells(G4int Z) const 
 
size_t NumberOfTransitions(G4int vacancyIndex) const 
 
~G4AtomicTransitionManager()
 
G4AtomicTransitionManager(G4int minZ=1, G4int maxZ=100, G4int limitInfTable=6, G4int limitSupTable=100)
 
G4AugerTransition * GetAugerTransition(G4int Z, G4int vacancyShellIndex)
 
size_t NumberOfVacancies(G4int Z) const 
 
G4double bindingEnergy(G4int A, G4int Z)
 
static G4AtomicTransitionManager * Instance()
 
G4AtomicShell * Shell(G4int Z, size_t shellIndex) const