Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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// $Id: G4AugerData.hh
27// GEANT4 tag $Name: not supported by cvs2svn $
28//
29// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
30//
31// History:
32// -----------
33// 2 June 2002 First committed to cvs
34//
35// -------------------------------------------------------------------
36
37// Class description:
38// Low Energy Electromagnetic Physics
39// This Class loads and stores all the information of auger effect (shellIds,
40// probabilities and energies of the electrons emitted)
41// Further documentation available from http://www.ge.infn.it/geant4/lowE
42
43// -------------------------------------------------------------------
44
45#ifndef G4AUGERDATA_HH
46#define G4AUGERDATA_HH 1
47
48#include "globals.hh"
49#include <vector>
50#include <map>
51#include "G4AugerTransition.hh"
52
53class G4DataVector;
54
56{
57public:
58
60
62
63 // The method returns the number of shells in wich a
64 // vacancy can be filled by a NON-radiative transition, given the atomic number
65 size_t NumberOfVacancies(G4int Z) const;
66
67 // Given the index of the vacancy (and the atomic number Z) returns its identity
68 G4int VacancyId(G4int Z, G4int vacancyIndex) const;
69
70 // Given the index of a vacancy in the atom with the atomc number Z, returns the number of
71 //shells starting from wich an electron can fill the vacancy
72 size_t NumberOfTransitions(G4int Z, G4int vacancyIndex) const;
73
74 // Given the atomic number Z, the Index of the initial vacancy shell
75 // and the index of the starting shell for the
76 // transition, returns the identity of the shell originating the electron transition
77 G4int StartShellId(G4int Z, G4int initialVacancyIndex, G4int transitionShellIndex) const;
78
79 // Given the atomic number , the indexes of the starting, the auger originating shell,
80 // and the transition shell Id, returns the transition energy
81 G4double StartShellEnergy(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const;
82
83 // Given the atomic number, the index of the starting shell, the auger originating shells,
84 // and the transition shell Id, returns the transition probability
85 G4double StartShellProb(G4int Z, G4int vacancyIndex,G4int transitionId,G4int augerIndex) const;
86
87 // Given the atomic number, the index of the starting vacancy shell and the transition shell Id,
88 // returns the number of shells wich an auger electron can come from.
89 size_t NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const;
90
91 // Given the atomic number, th index of the starting and the auger originating shell,
92 // and the transition shell Id, returns the ager originating shell Id
93 size_t AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const;
94
95 std::vector<G4AugerTransition> LoadData(G4int Z);
96
98
99 void PrintData(G4int Z);
100
101
102
103 // Given the atomic number and the vacancy intial shell index returns
104 // the AugerTransition object related to that shell
105
106 G4AugerTransition* GetAugerTransition(G4int Z, G4int vacancyShellIndex);
107
108 // Given the atomic number returns a vector of possible AugerTransition objects
109 std::vector<G4AugerTransition>* GetAugerTransitions(G4int Z);
110
111private:
112
113 // std::map<G4int,G4DataVector*,std::less<G4int> > idMap;
114
115 typedef std::map<G4int,std::vector<G4AugerTransition>,std::less<G4int> > trans_Table;
116 trans_Table augerTransitionTable;
117
118 /*
119 std::map<G4int,std::map<G4Int,G4DataVector*,std::less<G4int> >,std::less<G4int> > transProbabilityMap;
120 std::map<G4int,std::map<G4Int,G4DataVector*,std::less<G4int> >,std::less<G4int> > transAugerIdMap;
121 */
122
123 std::vector<G4int> nInitShells;
124 std::vector<G4int> numberOfVacancies;
125
126};
127
128#endif
129
130
131
132
133
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void BuildAugerTransitionTable()
Definition: G4AugerData.cc:508
std::vector< G4AugerTransition > LoadData(G4int Z)
Definition: G4AugerData.cc:276
size_t NumberOfTransitions(G4int Z, G4int vacancyIndex) const
Definition: G4AugerData.cc:142
size_t NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const
Definition: G4AugerData.cc:165
std::vector< G4AugerTransition > * GetAugerTransitions(G4int Z)
Definition: G4AugerData.cc:586
G4int StartShellId(G4int Z, G4int initialVacancyIndex, G4int transitionShellIndex) const
Definition: G4AugerData.cc:206
size_t AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const
Definition: G4AugerData.cc:186
G4AugerTransition * GetAugerTransition(G4int Z, G4int vacancyShellIndex)
Definition: G4AugerData.cc:577
G4double StartShellProb(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const
Definition: G4AugerData.cc:252
size_t NumberOfVacancies(G4int Z) const
Definition: G4AugerData.cc:113
G4double StartShellEnergy(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const
Definition: G4AugerData.cc:229
G4int VacancyId(G4int Z, G4int vacancyIndex) const
Definition: G4AugerData.cc:118
void PrintData(G4int Z)
Definition: G4AugerData.cc:546