ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4AtomicTransitionManager.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4AtomicTransitionManager.hh
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
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
29
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
30
//
31
// History:
32
// -----------
33
//
34
// 16 Sept 2001 EG Modified according to a design iteration in the
35
// LowEnergy category
36
//
37
// -------------------------------------------------------------------
38
39
// Class description:
40
// Low Energy Electromagnetic Physics: create or fills and manages G4AtomicShell,
41
// G4FluoTransition, G4AugerTransition objects.
42
// Further documentation available from http://www.ge.infn.it/geant4/lowE
43
44
// -------------------------------------------------------------------
45
46
#ifndef G4AtomicTransitionManager_h
47
#define G4AtomicTransitionManager_h 1
48
49
#include "
G4ShellData.hh
"
50
#include "
G4FluoTransition.hh
"
51
#include "
G4AugerTransition.hh
"
52
#include "
G4AtomicShell.hh
"
53
#include <vector>
54
#include "
globals.hh
"
55
56
class
G4AugerData
;
57
58
// This class is a singleton
59
class
G4AtomicTransitionManager
{
60
61
public
:
62
63
// The only way to get an instance of this class is to call the
64
// function Instance()
65
static
G4AtomicTransitionManager
*
Instance
();
66
67
// needs to be called once from other code before start of run
68
void
Initialise
();
69
70
// Z is the atomic number of the element, shellIndex is the
71
// index (in EADL) of the shell
72
G4AtomicShell
*
Shell
(
G4int
Z
,
size_t
shellIndex)
const
;
73
74
// Z is the atomic number of the element, shellIndex is the
75
// index (in EADL) of the final shell for the transition
76
// This function gives, upon Z and the Index of the initial shell where
77
// the vacancy is, the radiative transition that can happen (originating
78
// shell, energy, probability)
79
const
G4FluoTransition
*
ReachableShell
(
G4int
Z,
size_t
shellIndex)
const
;
80
81
// This function gives, upon Z and the Index of the initial shell where
82
// the vacancy is, the NON-radiative transition that can happen with
83
// originating shell for the transition, and the data for the possible
84
// auger electrons emitted (originating vacancy, energy amnd probability)
85
86
const
G4AugerTransition
*
ReachableAugerShell
(
G4int
Z,
G4int
shellIndex)
const
;
87
88
// This function returns the number of shells of the element
89
// whose atomic number is Z
90
G4int
NumberOfShells
(
G4int
Z)
const
;
91
92
// This function returns the number of those shells of the element
93
// whose atomic number is Z which are reachable through a radiative
94
// transition
95
G4int
NumberOfReachableShells
(
G4int
Z)
const
;
96
97
// This function returns the number of possible NON-radiative transitions
98
// for the atom with atomic number Z i.e. the number of shell in wich
99
// a vacancy can be filled by a NON-radiative transition
100
101
G4int
NumberOfReachableAugerShells
(
G4int
Z)
const
;
102
103
// Gives the sum of the probabilities of radiative transition towards the
104
// shell whose index is shellIndex
105
G4double
106
TotalRadiativeTransitionProbability
(
G4int
Z,
size_t
shellIndex)
const
;
107
108
// Gives the sum of the probabilities of non radiative transition from the
109
// shell whose index is shellIndex
110
G4double
111
TotalNonRadiativeTransitionProbability
(
G4int
Z,
size_t
shellIndex)
const
;
112
113
// Verbosity control
114
void
SetVerboseLevel
(
G4int
vl) {
verboseLevel
= vl;};
115
G4int
GetVerboseLevel
(){
return
verboseLevel
;};
116
117
private
:
118
119
G4AtomicTransitionManager
();
120
121
~G4AtomicTransitionManager
();
122
123
// Hide copy constructor and assignment operator
124
G4AtomicTransitionManager
&
operator=
(
const
G4AtomicTransitionManager
&
right
);
125
G4AtomicTransitionManager
(
const
G4AtomicTransitionManager
&);
126
127
static
G4AtomicTransitionManager
*
instance
;
128
129
// the first element of the map is the atomic number Z.
130
// the second element is a vector of G4AtomicShell*.
131
std::map<G4int,std::vector<G4AtomicShell*>,std::less<G4int> >
shellTable
;
132
133
// the first element of the map is the atomic number Z.
134
// the second element is a vector of G4AtomicTransition*.
135
std::map<G4int,std::vector<G4FluoTransition*>,std::less<G4int> >
transitionTable
;
136
137
// since Augereffect data r stored as a table in G4AugerData, we have
138
// here a pointer to an element of that class itself.
139
G4AugerData
*
augerData
;
140
141
// Minimum and maximum Z in EADL table containing identities and binding
142
// energies of shells
143
G4int
zMin
;
144
G4int
zMax
;
145
146
// Minimum and maximum Z in EADL table containing identities, transition
147
// energies and transition probabilities of shells
148
G4int
infTableLimit
;
149
G4int
supTableLimit
;
150
151
G4bool
isInitialized
;
152
153
G4int
verboseLevel
;
154
};
155
156
#endif
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
lowenergy
include
G4AtomicTransitionManager.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:31
using
1.8.2 with
ECCE GitHub integration