Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/eRosita/physics/src/G4RDAugerTransition.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 /examples/advanced/eRosita/physics/src/G4RDAugerTransition.cc (Version 11.3.0) and /examples/advanced/eRosita/physics/src/G4RDAugerTransition.cc (Version 11.2)


  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 //                                                 27 // 
 28 // Based on G4AtomicTransition.cc by               28 // Based on G4AtomicTransition.cc by 
 29 // Elena Guardincerri (Elena.Guardincerri@ge.i     29 // Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
 30 //                                                 30 // 
 31 // Author: Alfonso Mantero (Alfonso.Mantero@ge     31 // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
 32 //                                                 32 //
 33 // History:                                        33 // History:
 34 // -----------                                     34 // -----------
 35 // 4 Mar 2002: first implementation                35 // 4 Mar 2002: first implementation
 36 //                                                 36 //
 37 // -------------------------------------------     37 // -------------------------------------------------------------------
 38                                                    38 
 39 #include "G4RDAugerTransition.hh"                  39 #include "G4RDAugerTransition.hh"
 40                                                    40 
 41 // the final shell in wich the electron goes i     41 // the final shell in wich the electron goes is needed, to know the data for the auger electron emitted
 42 // (i.e. originating shell id, electron energy     42 // (i.e. originating shell id, electron energy and transition probability) 
 43                                                    43 
 44 G4RDAugerTransition::G4RDAugerTransition(G4int     44 G4RDAugerTransition::G4RDAugerTransition(G4int finalShell, std::vector<G4int> transIds,
 45              const std::map<G4int,std::vector<     45              const std::map<G4int,std::vector<G4int>,std::less<G4int> >* idMap,
 46              const std::map<G4int,G4DataVector     46              const std::map<G4int,G4DataVector,std::less<G4int> >* energyMap,
 47              const std::map<G4int,G4DataVector     47              const std::map<G4int,G4DataVector,std::less<G4int> >* probabilityMap)
 48 {                                                  48 {
 49   finalShellId = finalShell;                       49   finalShellId = finalShell;
 50   augerOriginatingShellIdsMap = *idMap;            50   augerOriginatingShellIdsMap = *idMap;
 51   augerTransitionEnergiesMap = *energyMap;         51   augerTransitionEnergiesMap = *energyMap;
 52   augerTransitionProbabilitiesMap = *probabili     52   augerTransitionProbabilitiesMap = *probabilityMap;
 53   transitionOriginatingShellIds = transIds;        53   transitionOriginatingShellIds = transIds;
 54                                                    54   
 55                                                    55 
 56 }                                                  56 }
 57                                                    57 
 58 G4RDAugerTransition::~G4RDAugerTransition()        58 G4RDAugerTransition::~G4RDAugerTransition()
 59 {                                                  59 { 
 60                                                    60 
 61 }                                                  61 }
 62                                                    62 
 63 // Returns the ids of the shells from wich an      63 // Returns the ids of the shells from wich an auger electron culd came from, given th shell
 64 // from wich the transition electron cames fro     64 // from wich the transition electron cames from.
 65                                                    65 
 66 const std::vector<G4int>* G4RDAugerTransition:     66 const std::vector<G4int>* G4RDAugerTransition::AugerOriginatingShellIds(G4int startShellId) const
 67 {                                                  67 {
 68   std::map<G4int,std::vector<G4int>,std::less<     68   std::map<G4int,std::vector<G4int>,std::less<G4int> >::const_iterator shellId = augerOriginatingShellIdsMap.find(startShellId);
 69                                                    69 
 70   const std::vector<G4int>* dataSet = &(*shell     70   const std::vector<G4int>* dataSet = &(*shellId).second;
 71   //const std::vector<G4int>* dataOut = 0;         71   //const std::vector<G4int>* dataOut = 0;
 72                                                    72 
 73   if (dataSet->size() == 0) {G4cout << "Error:     73   if (dataSet->size() == 0) {G4cout << "Error: no auger Id found"<< G4endl;}
 74   else {                                           74   else {
 75                                                    75     
 76     // dataOut = &dataSet;                         76     // dataOut = &dataSet;  
 77                                                    77 
 78   }                                                78   }
 79                                                    79 
 80   return dataSet;                                  80   return dataSet;
 81 }                                                  81 }
 82                                                    82 
 83 // Returns the ids of the shells from wich an      83 // Returns the ids of the shells from wich an electron cuuld fill the vacancy in finalShellId
 84                                                    84 
 85 const std::vector<G4int>* G4RDAugerTransition:     85 const std::vector<G4int>* G4RDAugerTransition::TransitionOriginatingShellIds() const
 86 {                                                  86 {
 87                                                    87 
 88   const std::vector<G4int>* dataSet = &transit     88   const std::vector<G4int>* dataSet = &transitionOriginatingShellIds;
 89   return dataSet;                                  89   return dataSet;
 90 }                                                  90 }
 91                                                    91 
 92 // Returns the energiess of the possible auger     92 // Returns the energiess of the possible auger electrons, given th shell
 93 // from wich the transition electron cames fro     93 // from wich the transition electron cames from.
 94                                                    94 
 95 const G4DataVector* G4RDAugerTransition::Auger     95 const G4DataVector* G4RDAugerTransition::AugerTransitionEnergies(G4int startShellId) const
 96 {                                                  96 {
 97   std::map<G4int,G4DataVector,std::less<G4int>     97   std::map<G4int,G4DataVector,std::less<G4int> >::const_iterator shellId = augerTransitionEnergiesMap.find(startShellId);
 98   const G4DataVector* dataSet = &(*shellId).se     98   const G4DataVector* dataSet = &(*shellId).second;
 99                                                    99 
100                                                   100 
101   return dataSet;                                 101   return dataSet;
102 }                                                 102 }
103                                                   103 
104 // Returns the emission probabilities of the a    104 // Returns the emission probabilities of the auger electrons, given th shell
105 // from wich the transition electron cames fro    105 // from wich the transition electron cames from.
106                                                   106 
107 const G4DataVector* G4RDAugerTransition::Auger    107 const G4DataVector* G4RDAugerTransition::AugerTransitionProbabilities(G4int startShellId) const
108 {                                                 108 {
109   std::map<G4int,G4DataVector,std::less<G4int>    109   std::map<G4int,G4DataVector,std::less<G4int> >::const_iterator shellId = augerTransitionProbabilitiesMap.find(startShellId);
110   const G4DataVector* dataSet = &(*shellId).se    110   const G4DataVector* dataSet = &(*shellId).second;
111   return dataSet;                                 111   return dataSet; 
112 }                                                 112 }
113                                                   113 
114 G4int G4RDAugerTransition::FinalShellId() cons    114 G4int G4RDAugerTransition::FinalShellId() const
115 {                                                 115 { 
116   return finalShellId;                            116   return finalShellId;
117 }                                                 117 }
118                                                   118 
119 // Returns the id of the shell from wich come     119 // Returns the id of the shell from wich come the auger electron , given the shell
120 // from wich the transition electron cames fro    120 // from wich the transition electron cames from and the index number.
121                                                   121 
122 G4int G4RDAugerTransition::AugerOriginatingShe    122 G4int G4RDAugerTransition::AugerOriginatingShellId(G4int index, G4int startShellId) const
123 {                                                 123 {
124   const std::vector<G4int>* ids = AugerOrigina    124   const std::vector<G4int>* ids = AugerOriginatingShellIds(startShellId);
125   // G4int i =                                    125   // G4int i = 
126   std::vector<G4int>::const_iterator pos = ids    126   std::vector<G4int>::const_iterator pos = ids->begin();
127   G4int n = 0;                                    127   G4int n = 0;
128   n = *(pos+index);                               128   n = *(pos+index);
129   return n;                                       129   return n;
130 }                                                 130 }
131                                                   131 
132 // Returns the energy of the auger electron, g    132 // Returns the energy of the auger electron, given the shell
133 // from wich the transition electron cames fro    133 // from wich the transition electron cames from and the index number.
134                                                   134 
135 G4double G4RDAugerTransition::AugerTransitionE    135 G4double G4RDAugerTransition::AugerTransitionEnergy(G4int index, G4int startShellId) const
136 {                                                 136 {
137   const G4DataVector* energies = AugerTransiti    137   const G4DataVector* energies = AugerTransitionEnergies(startShellId);
138     G4double energy = 0;                          138     G4double energy = 0;    
139   if (index < (G4int) energies->size()) {         139   if (index < (G4int) energies->size()) {
140     G4DataVector::const_iterator pos = energie    140     G4DataVector::const_iterator pos = energies->begin();
141     energy = *(pos+index);                        141     energy = *(pos+index);
142   }                                               142   }
143   return energy;                                  143   return energy; 
144 }                                                 144 }
145                                                   145 
146 // Returns the probability of the auger emissi    146 // Returns the probability of the auger emission, given the shell
147 // from wich the transition electron cames fro    147 // from wich the transition electron cames from and the index number.
148                                                   148 
149 G4double G4RDAugerTransition::AugerTransitionP    149 G4double G4RDAugerTransition::AugerTransitionProbability(G4int index, G4int startShellId) const
150 {                                                 150 {
151                                                   151 
152   const G4DataVector *probabilities = AugerTra    152   const G4DataVector *probabilities = AugerTransitionProbabilities(startShellId);
153   G4DataVector::const_iterator pos = probabili    153   G4DataVector::const_iterator pos = probabilities->begin();
154                                                   154 
155   G4double probability = 0;                       155   G4double probability = 0; 
156   probability = *(pos+index);                     156   probability = *(pos+index);
157                                                   157 
158   return  probability;                            158   return  probability;
159                                                   159   
160 }                                                 160 }
161                                                   161 
162 G4int G4RDAugerTransition::TransitionOriginati    162 G4int G4RDAugerTransition::TransitionOriginatingShellId(G4int index) const
163 {                                                 163 {
164   return  transitionOriginatingShellIds[index]    164   return  transitionOriginatingShellIds[index];
165 }                                                 165 }
166                                                   166 
167                                                   167 
168                                                   168 
169                                                   169 
170                                                   170 
171                                                   171 
172                                                   172 
173                                                   173 
174                                                   174 
175                                                   175 
176                                                   176 
177                                                   177 
178                                                   178 
179                                                   179 
180                                                   180 
181                                                   181 
182                                                   182 
183                                                   183 
184                                                   184 
185                                                   185 
186                                                   186 
187                                                   187