Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4AugerData.hh
Go to the documentation of this file.
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// Author: Alfonso Mantero ([email protected])
28//
29// History:
30// -----------
31// 2 June 2002 First committed to cvs
32//
33// -------------------------------------------------------------------
34// Class description:
35// Low Energy Electromagnetic Physics
36// This Class loads and stores all the information of auger effect (shellIds,
37// probabilities and energies of the electrons emitted)
38// -------------------------------------------------------------------
39
40#ifndef G4AUGERDATA_HH
41#define G4AUGERDATA_HH 1
42
43#include "globals.hh"
44#include <vector>
45#include <map>
46#include "G4AugerTransition.hh"
47
48class G4DataVector;
49
51{
52public:
53
54 explicit G4AugerData();
55 ~G4AugerData() = default;
56
57 /// The method returns the number of shells in wich a
58 /// vacancy can be filled by a NON-radiative transition, given the atomic number
59 size_t NumberOfVacancies(G4int Z) const;
60
61 /// Given the index of the vacancy (and the atomic number Z) returns its identity
62 G4int VacancyId(G4int Z, G4int vacancyIndex) const;
63
64 /// Given the index of a vacancy in the atom with the atomc number Z, returns the number of
65 /// shells starting from wich an electron can fill the vacancy
66 size_t NumberOfTransitions(G4int Z, G4int vacancyIndex) const;
67
68 /// Given the atomic number Z, the Index of the initial vacancy shell
69 /// and the index of the starting shell for the
70 /// transition, returns the identity of the shell originating the electron transition
71 G4int StartShellId(G4int Z, G4int initialVacancyIndex, G4int transitionShellIndex) const;
72
73 /// Given the atomic number , the indexes of the starting, the auger originating shell,
74 /// and the transition shell Id, returns the transition energy
75 G4double StartShellEnergy(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const;
76
77 /// Given the atomic number, the index of the starting shell, the auger originating shells,
78 /// and the transition shell Id, returns the transition probability
79 G4double StartShellProb(G4int Z, G4int vacancyIndex,G4int transitionId,G4int augerIndex) const;
80
81 /// Given the atomic number, the index of the starting vacancy shell and the transition shell Id,
82 /// returns the number of shells wich an auger electron can come from.
83 size_t NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const;
84
85 /// Given the atomic number, th index of the starting and the auger originating shell,
86 /// and the transition shell Id, returns the ager originating shell Id
87 size_t AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const;
88
89 std::vector<G4AugerTransition> LoadData(G4int Z);
91 void PrintData(G4int Z);
92
93 /// Given the atomic number and the vacancy initial shell index returns
94 /// the AugerTransition object related to that shell
95 G4AugerTransition* GetAugerTransition(G4int Z, G4int vacancyShellIndex);
96
97 /// Given the atomic number returns a vector of possible AugerTransition objects
98 std::vector<G4AugerTransition>* GetAugerTransitions(G4int Z);
99
100private:
101 typedef std::map<G4int,std::vector<G4AugerTransition>,std::less<G4int> > trans_Table;
102 trans_Table augerTransitionTable;
103
104 std::vector<G4int> nInitShells;
105 std::vector<G4int> numberOfVacancies;
106
107};
108
109#endif
110
111
112
113
114
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
void BuildAugerTransitionTable()
size_t AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const
std::vector< G4AugerTransition > LoadData(G4int Z)
size_t NumberOfVacancies(G4int Z) const
~G4AugerData()=default
std::vector< G4AugerTransition > * GetAugerTransitions(G4int Z)
Given the atomic number returns a vector of possible AugerTransition objects.
size_t NumberOfTransitions(G4int Z, G4int vacancyIndex) const
G4int StartShellId(G4int Z, G4int initialVacancyIndex, G4int transitionShellIndex) const
size_t NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const
G4AugerTransition * GetAugerTransition(G4int Z, G4int vacancyShellIndex)
G4double StartShellProb(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const
G4double StartShellEnergy(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const
G4int VacancyId(G4int Z, G4int vacancyIndex) const
Given the index of the vacancy (and the atomic number Z) returns its identity.
void PrintData(G4int Z)