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