EGSnrc C++ class library
Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Coding Examples
File List
File Members
egs++
egs_atomic_relaxations.h
Go to the documentation of this file.
1
/*
2
###############################################################################
3
#
4
# EGSnrc egs++ atomic relaxation headers
5
# Copyright (C) 2015 National Research Council Canada
6
#
7
# This file is part of EGSnrc.
8
#
9
# EGSnrc is free software: you can redistribute it and/or modify it under
10
# the terms of the GNU Affero General Public License as published by the
11
# Free Software Foundation, either version 3 of the License, or (at your
12
# option) any later version.
13
#
14
# EGSnrc is distributed in the hope that it will be useful, but WITHOUT ANY
15
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
17
# more details.
18
#
19
# You should have received a copy of the GNU Affero General Public License
20
# along with EGSnrc. If not, see <http://www.gnu.org/licenses/>.
21
#
22
###############################################################################
23
#
24
# Author: Iwan Kawrakow, 2008
25
#
26
# Contributors: Reid Townson
27
#
28
###############################################################################
29
*/
30
31
37
#ifndef EGS_ATOMIC_RELAXATIONS_
38
39
#define EGS_ATOMIC_RELAXATIONS_
40
41
#include "
egs_simple_container.h
"
42
43
struct
EGS_RelaxationParticle
{
44
int
q
;
45
EGS_Float
E
;
46
EGS_RelaxationParticle
(
int
Q, EGS_Float e) :
q
(Q),
E
(e) {};
47
EGS_RelaxationParticle
() {};
48
};
49
50
class
EGS_RelaxImplementation
;
51
class
EGS_RandomGenerator
;
52
61
class
EGS_EXPORT
EGS_AtomicRelaxations
{
62
63
public
:
64
71
EGS_AtomicRelaxations
(
const
char
*data_path = 0);
72
73
~
EGS_AtomicRelaxations
();
74
79
int
loadData(
int
Z);
80
85
int
loadAllData();
86
91
int
loadData(
int
nz,
const
int
*Zarray);
92
102
void
relax(
int
Z,
int
sh, EGS_Float ecut, EGS_Float pcut,
103
EGS_RandomGenerator
*rndm,
double
&edep,
104
EGS_SimpleContainer<EGS_RelaxationParticle>
&particles);
105
107
EGS_Float getBindingEnergy(
int
Z,
int
shell);
108
110
int
getNShell(
int
Z);
111
117
void
setBindingEnergy(
int
Z,
int
shell, EGS_Float new_be);
118
122
EGS_Float getMaxGammaEnergy(
int
Z,
int
shell);
123
127
EGS_Float getMaxElectronEnergy(
int
Z,
int
shell);
128
129
protected
:
130
131
EGS_RelaxImplementation
*p;
132
133
};
134
135
#endif
EGS_EXPORT
#define EGS_EXPORT
Export symbols from the egspp library.
Definition:
egs_libconfig.h:90
EGS_SimpleContainer< EGS_RelaxationParticle >
EGS_AtomicRelaxations
Definition:
egs_atomic_relaxations.h:61
EGS_RelaxationParticle::q
int q
charge (0-photon, -1=electron)
Definition:
egs_atomic_relaxations.h:44
EGS_RandomGenerator
Base random number generator class. All random number generators should be derived from this class...
Definition:
egs_rndm.h:67
egs_simple_container.h
EGS_SimpleContainer template class.
EGS_RelaxationParticle::E
EGS_Float E
energy in MeV
Definition:
egs_atomic_relaxations.h:45
EGS_RelaxImplementation
Definition:
egs_atomic_relaxations.cpp:229
EGS_RelaxationParticle
Definition:
egs_atomic_relaxations.h:43
Generated by
1.8.5