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
G4RDAtomicTransitionManager.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4RDAtomicTransitionManager.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 G4RDAtomicShell,
41
// G4RDFluoTransition, G4RDAugerTransition objects.
42
// Further documentation available from http://www.ge.infn.it/geant4/lowE
43
44
// -------------------------------------------------------------------
45
46
#ifndef G4RDAtomicTransitionManager_h
47
#define G4RDAtomicTransitionManager_h 1
48
49
#include "
G4RDShellData.hh
"
50
#include "
G4RDFluoData.hh
"
51
#include "
G4RDAugerData.hh
"
52
#include "
G4RDFluoTransition.hh
"
53
#include "
G4RDAtomicShell.hh
"
54
// #include "g4std/map"
55
#include <vector>
56
#include "
globals.hh
"
57
58
// This class is a singleton
59
class
G4RDAtomicTransitionManager
{
60
61
public
:
62
63
// The only way to get an instance of this class is to call the
64
// function Instance()
65
static
G4RDAtomicTransitionManager
*
Instance
();
66
67
// Z is the atomic number of the element, shellIndex is the
68
// index (in EADL) of the shell
69
G4RDAtomicShell
*
Shell
(
G4int
Z
,
size_t
shellIndex)
const
;
70
71
// Z is the atomic number of the element, shellIndex is the
72
// index (in EADL) of the final shell for the transition
73
// This function gives, upon Z and the Index of the initial shell where te vacancy is,
74
// the radiative transition that can happen (originating shell, energy, probability)
75
const
G4RDFluoTransition
*
ReachableShell
(
G4int
Z,
size_t
shellIndex)
const
;
76
77
// This function gives, upon Z and the Index of the initial shell where te vacancy is,
78
// the NON-radiative transition that can happen with originating shell for the transition, and the
79
// data for the possible auger electrons emitted (originating vacancy, energy amnd probability)
80
81
const
G4RDAugerTransition
*
ReachableAugerShell
(
G4int
Z,
G4int
shellIndex)
const
;
82
83
// This function returns the number of shells of the element
84
// whose atomic number is Z
85
G4int
NumberOfShells
(
G4int
Z)
const
;
86
87
// This function returns the number of those shells of the element
88
// whose atomic number is Z which are reachable through a radiative
89
// transition
90
91
// This function returns the number of possible radiative transitions for the atom with atomic number Z
92
// i.e. the number of shell in wich a vacancy can be filled with a radiative transition
93
94
G4int
NumberOfReachableShells
(
G4int
Z)
const
;
95
96
// This function returns the number of possible NON-radiative transitions for the atom with atomic number Z
97
// i.e. the number of shell in wich a vacancy can be filled by a NON-radiative transition
98
99
G4int
NumberOfReachableAugerShells
(
G4int
Z)
const
;
100
101
// Gives the sum of the probabilities of radiative transition towards the
102
// shell whose index is shellIndex
103
G4double
TotalRadiativeTransitionProbability
(
G4int
Z,
size_t
shellIndex);
104
105
// Gives the sum of the probabilities of non radiative transition from the
106
// shell whose index is shellIndex
107
G4double
TotalNonRadiativeTransitionProbability
(
G4int
Z,
size_t
shellIndex);
108
109
protected
:
110
111
G4RDAtomicTransitionManager
(
G4int
minZ = 1,
G4int
maxZ
= 100,
112
G4int
limitInfTable = 6,
G4int
limitSupTable=100 );
113
~G4RDAtomicTransitionManager
();
114
115
private
:
116
// Hide copy constructor and assignment operator
117
G4RDAtomicTransitionManager
&
operator=
(
const
G4RDAtomicTransitionManager
&
right
);
118
G4RDAtomicTransitionManager
(
const
G4RDAtomicTransitionManager
&);
119
120
static
G4RDAtomicTransitionManager
*
instance
;
121
122
// the first element of the map is the atomic number Z.
123
// the second element is a vector of G4RDAtomicShell*.
124
std::map<G4int,std::vector<G4RDAtomicShell*>,std::less<G4int> >
shellTable
;
125
126
// the first element of the map is the atomic number Z.
127
// the second element is a vector of G4AtomicTransition*.
128
std::map<G4int,std::vector<G4RDFluoTransition*>,std::less<G4int> >
transitionTable
;
129
130
// since Augereffect data r stored as a table in G4RDAugerData, we have here a pointer to an element of that class itself.
131
132
G4RDAugerData
*
augerData
;
133
134
// Minimum and maximum Z in EADL table containing identities and binding
135
// energies of shells
136
G4int
zMin
;
137
G4int
zMax
;
138
139
// Minimum and maximum Z in EADL table containing identities, transition
140
// energies and transition probabilities of shells
141
G4int
infTableLimit
;
142
G4int
supTableLimit
;
143
144
145
};
146
147
#endif
geant4
tree
geant4-10.6-release
examples
advanced
eRosita
physics
include
G4RDAtomicTransitionManager.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:57
using
1.8.2 with
ECCE GitHub integration