EGSnrc C++ class library  Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
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 
44  int q;
45  EGS_Float E;
46  EGS_RelaxationParticle(int Q, EGS_Float e) : q(Q), E(e) {};
48 };
49 
52 
62 
63 public:
64 
71  EGS_AtomicRelaxations(const char *data_path = 0);
72 
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,
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 
132 
133 };
134 
135 #endif
#define EGS_EXPORT
Export symbols from the egspp library.
Definition: egs_libconfig.h:90
int q
charge (0-photon, -1=electron)
Base random number generator class. All random number generators should be derived from this class...
Definition: egs_rndm.h:67
EGS_SimpleContainer template class.
EGS_Float E
energy in MeV