Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/electromagnetic/lowenergy/src/G4AugerTransition.cc (Version 11.3.0) and /processes/electromagnetic/lowenergy/src/G4AugerTransition.cc (Version 10.4.p2)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
                                                   >>  27 // $Id: G4AugerTransition.cc,v 1.2 ????
 27 //                                                 28 // 
 28 // Based on G4AtomicTransition.cc by               29 // Based on G4AtomicTransition.cc by 
 29 // Elena Guardincerri (Elena.Guardincerri@ge.i     30 // Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
 30 //                                                 31 // 
 31 // Author: Alfonso Mantero (Alfonso.Mantero@ge     32 // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
 32 //                                                 33 //
 33 // History:                                        34 // History:
 34 // -----------                                     35 // -----------
 35 // 4 Mar 2002: first implementation                36 // 4 Mar 2002: first implementation
 36 //                                                 37 //
 37 // -------------------------------------------     38 // -------------------------------------------------------------------
 38                                                    39 
 39 #include "G4AugerTransition.hh"                    40 #include "G4AugerTransition.hh"
 40                                                    41 
 41 //....oooOO0OOooo........oooOO0OOooo........oo << 
 42 // the final shell in wich the electron goes i     42 // the final shell in wich the electron goes is needed, to know the data for the auger electron emitted
 43 // (i.e. originating shell id, electron energy     43 // (i.e. originating shell id, electron energy and transition probability) 
                                                   >>  44 
 44 G4AugerTransition::G4AugerTransition(G4int fin     45 G4AugerTransition::G4AugerTransition(G4int finalShell, std::vector<G4int> transIds,
 45              const std::map<G4int,std::vector<     46              const std::map<G4int,std::vector<G4int>,std::less<G4int> >* idMap,
 46              const std::map<G4int,G4DataVector     47              const std::map<G4int,G4DataVector,std::less<G4int> >* energyMap,
 47              const std::map<G4int,G4DataVector     48              const std::map<G4int,G4DataVector,std::less<G4int> >* probabilityMap)
 48 {                                                  49 {
 49   finalShellId = finalShell;                       50   finalShellId = finalShell;
 50   augerOriginatingShellIdsMap = *idMap;            51   augerOriginatingShellIdsMap = *idMap;
 51   augerTransitionEnergiesMap = *energyMap;         52   augerTransitionEnergiesMap = *energyMap;
 52   augerTransitionProbabilitiesMap = *probabili     53   augerTransitionProbabilitiesMap = *probabilityMap;
 53   transitionOriginatingShellIds = std::move(tr <<  54   transitionOriginatingShellIds = transIds;
 54 }                                              <<  55   
 55                                                    56 
 56 //....oooOO0OOooo........oooOO0OOooo........oo <<  57 }
 57                                                    58 
 58 G4AugerTransition::~G4AugerTransition()            59 G4AugerTransition::~G4AugerTransition()
 59 {;}                                            <<  60 { 
                                                   >>  61 
                                                   >>  62 }
 60                                                    63 
 61 //....oooOO0OOooo........oooOO0OOooo........oo << 
 62 // Returns the ids of the shells from wich an      64 // Returns the ids of the shells from wich an auger electron culd came from, given th shell
 63 // from wich the transition electron cames fro     65 // from wich the transition electron cames from.
                                                   >>  66 
 64 const std::vector<G4int>* G4AugerTransition::A     67 const std::vector<G4int>* G4AugerTransition::AugerOriginatingShellIds(G4int startShellId) const
 65 {                                                  68 {
 66   auto shellId = augerOriginatingShellIdsMap.f <<  69   std::map<G4int,std::vector<G4int>,std::less<G4int> >::const_iterator shellId = augerOriginatingShellIdsMap.find(startShellId);
 67                                                    70 
 68   const std::vector<G4int>* dataSet = &(*shell     71   const std::vector<G4int>* dataSet = &(*shellId).second;
 69   if (dataSet->empty())                        <<  72   //const std::vector<G4int>* dataOut = 0;
 70     G4cout << "Error: no auger Id found"<< G4e <<  73 
                                                   >>  74   if (dataSet->size() == 0) {G4cout << "Error: no auger Id found"<< G4endl;}
                                                   >>  75   else {
                                                   >>  76     
                                                   >>  77     // dataOut = &dataSet;  
                                                   >>  78 
                                                   >>  79   }
                                                   >>  80 
 71   return dataSet;                                  81   return dataSet;
 72 }                                                  82 }
 73                                                    83 
 74 //....oooOO0OOooo........oooOO0OOooo........oo << 
 75 // Returns the ids of the shells from wich an      84 // Returns the ids of the shells from wich an electron cuuld fill the vacancy in finalShellId
                                                   >>  85 
 76 const std::vector<G4int>* G4AugerTransition::T     86 const std::vector<G4int>* G4AugerTransition::TransitionOriginatingShellIds() const
 77 {                                                  87 {
                                                   >>  88 
 78   const std::vector<G4int>* dataSet = &transit     89   const std::vector<G4int>* dataSet = &transitionOriginatingShellIds;
 79   return dataSet;                                  90   return dataSet;
 80 }                                                  91 }
 81                                                    92 
 82 //....oooOO0OOooo........oooOO0OOooo........oo <<  93 // Returns the energiess of the possible auger electrons, given th shell
 83 // Returns the energies of the possible auger  <<  94 // from wich the transition electron cames from.
 84 // from which the transition electron came fro <<  95 
 85 const G4DataVector* G4AugerTransition::AugerTr     96 const G4DataVector* G4AugerTransition::AugerTransitionEnergies(G4int startShellId) const
 86 {                                                  97 {
 87   auto shellId = augerTransitionEnergiesMap.fi <<  98   std::map<G4int,G4DataVector,std::less<G4int> >::const_iterator shellId = augerTransitionEnergiesMap.find(startShellId);
 88                                                    99 
 89   if (shellId == augerTransitionEnergiesMap.en    100   if (shellId == augerTransitionEnergiesMap.end() ) 
 90     {                                             101     {
 91       G4Exception("G4AugerTransition::AugerTra << 102       G4Exception("G4AugerTransition::AugerTransitionEnergies()","de0002",JustWarning,"corresponding map element not found, energy deposited locally");
 92       "corresponding map element not found, en << 
 93       return 0;                                   103       return 0; 
 94     }                                             104     }
                                                   >> 105 
 95   const G4DataVector* dataSet = &(*shellId).se    106   const G4DataVector* dataSet = &(*shellId).second;
                                                   >> 107 
                                                   >> 108 
 96   return dataSet;                                 109   return dataSet;
 97 }                                                 110 }
 98                                                   111 
 99 //....oooOO0OOooo........oooOO0OOooo........oo << 
100 // Returns the emission probabilities of the a    112 // Returns the emission probabilities of the auger electrons, given the shell
101 // from wich the transition electron cames fro    113 // from wich the transition electron cames from.
                                                   >> 114 
102 const G4DataVector* G4AugerTransition::AugerTr    115 const G4DataVector* G4AugerTransition::AugerTransitionProbabilities(G4int startShellId) const
103 {                                                 116 {
104   auto shellId = augerTransitionProbabilitiesM << 117 
                                                   >> 118   //debugging
                                                   >> 119   //if (startShellId == 1){G4cout <<"OI!!!"<< G4endl;}
                                                   >> 120 
                                                   >> 121   std::map<G4int,G4DataVector,std::less<G4int> >::const_iterator shellId = augerTransitionProbabilitiesMap.find(startShellId);
                                                   >> 122 
105   if (shellId == augerTransitionProbabilitiesM    123   if (shellId == augerTransitionProbabilitiesMap.end() ) 
106     {                                             124     {
107                                                   125 
108       G4Exception("G4AugerTransition::AugerTra << 126       G4Exception("G4AugerTransition::AugerTransitionProbabilities()","de0002",JustWarning,"corresponding map element not found, energy deposited locally");
109       JustWarning,"corresponding map element n << 
110       return 0;                                   127       return 0;
111     }                                             128     }
112                                                   129   
113   const G4DataVector* dataSet = &(*shellId).se    130   const G4DataVector* dataSet = &(*shellId).second;
                                                   >> 131   // debugging purpose:
                                                   >> 132   /*  G4cout << "id: " << shellId->first << G4endl;
                                                   >> 133   G4cout << "size:" << dataSet->size() << G4endl;
                                                   >> 134   for (G4int i = 0; i < dataSet->size(); i++){
                                                   >> 135     G4cout << (dataSet[0])[i] << G4endl;
                                                   >> 136     }*/
114   return dataSet;                                 137   return dataSet; 
115 }                                                 138 }
116                                                   139 
117 //....oooOO0OOooo........oooOO0OOooo........oo << 
118 G4int G4AugerTransition::FinalShellId() const     140 G4int G4AugerTransition::FinalShellId() const
119 {                                                 141 { 
120   return finalShellId;                            142   return finalShellId;
121 }                                                 143 }
122                                                   144 
123 //....oooOO0OOooo........oooOO0OOooo........oo << 
124 // Returns the id of the shell from wich come     145 // Returns the id of the shell from wich come the auger electron , given the shell
125 // from wich the transition electron cames fro    146 // from wich the transition electron cames from and the index number.
                                                   >> 147 
126 G4int G4AugerTransition::AugerOriginatingShell    148 G4int G4AugerTransition::AugerOriginatingShellId(G4int index, G4int startShellId) const
127 {                                                 149 {
128   const std::vector<G4int>* ids = AugerOrigina    150   const std::vector<G4int>* ids = AugerOriginatingShellIds(startShellId);
129   // G4int i =                                    151   // G4int i = 
130   std::vector<G4int>::const_iterator pos = ids    152   std::vector<G4int>::const_iterator pos = ids->begin();
131   G4int n = 0;                                    153   G4int n = 0;
132   n = *(pos+index);                               154   n = *(pos+index);
133   return n;                                       155   return n;
134 }                                                 156 }
135                                                   157 
136 //....oooOO0OOooo........oooOO0OOooo........oo << 
137 // Returns the energy of the auger electron, g    158 // Returns the energy of the auger electron, given the shell
138 // from wich the transition electron cames fro    159 // from wich the transition electron cames from and the index number.
                                                   >> 160 
139 G4double G4AugerTransition::AugerTransitionEne    161 G4double G4AugerTransition::AugerTransitionEnergy(G4int index, G4int startShellId) const
140 {                                                 162 {
141   const G4DataVector* energies = AugerTransiti    163   const G4DataVector* energies = AugerTransitionEnergies(startShellId);
142   G4double energy = 0;                         << 164     G4double energy = 0;    
143   if (index < (G4int) energies->size()) {         165   if (index < (G4int) energies->size()) {
144     G4DataVector::const_iterator pos = energie    166     G4DataVector::const_iterator pos = energies->begin();
145     energy = *(pos+index);                        167     energy = *(pos+index);
146   }                                               168   }
147   return energy;                                  169   return energy; 
148 }                                                 170 }
149                                                   171 
150 //....oooOO0OOooo........oooOO0OOooo........oo << 
151 // Returns the probability of the auger emissi    172 // Returns the probability of the auger emission, given the shell
152 // from wich the transition electron cames fro    173 // from wich the transition electron cames from and the index number.
                                                   >> 174 
153 G4double G4AugerTransition::AugerTransitionPro    175 G4double G4AugerTransition::AugerTransitionProbability(G4int index, G4int startShellId) const
154 {                                                 176 {
155                                                   177 
156   const G4DataVector *probabilities = AugerTra    178   const G4DataVector *probabilities = AugerTransitionProbabilities(startShellId);
157   G4DataVector::const_iterator pos = probabili    179   G4DataVector::const_iterator pos = probabilities->begin();
158                                                   180 
159   G4double probability = 0;                       181   G4double probability = 0; 
160   probability = *(pos+index);                     182   probability = *(pos+index);
161                                                   183 
162   return  probability;                         << 184   return  probability;
                                                   >> 185   
163 }                                                 186 }
164                                                   187 
165 //....oooOO0OOooo........oooOO0OOooo........oo << 
166 G4int G4AugerTransition::TransitionOriginating    188 G4int G4AugerTransition::TransitionOriginatingShellId(G4int index) const
167 {                                                 189 {
168   return  transitionOriginatingShellIds[index]    190   return  transitionOriginatingShellIds[index];
169 }                                                 191 }
170                                                   192 
171                                                   193 
172                                                   194 
173                                                   195 
174                                                   196 
175                                                   197 
176                                                   198 
177                                                   199 
178                                                   200 
179                                                   201 
180                                                   202 
181                                                   203 
182                                                   204 
183                                                   205 
184                                                   206 
185                                                   207 
186                                                   208 
187                                                   209 
188                                                   210 
189                                                   211 
190                                                   212 
191                                                   213