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 6.2.p2)


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