GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSPhotoElectricEffect.hh
Go to the documentation of this file.
1 #ifndef GUARD_GGEMS_PHYSICS_GGEMSPHOTOELECTRICEFFECT_HH
2 #define GUARD_GGEMS_PHYSICS_GGEMSPHOTOELECTRICEFFECT_HH
3 
4 // ************************************************************************
5 // * This file is part of GGEMS. *
6 // * *
7 // * GGEMS is free software: you can redistribute it and/or modify *
8 // * it under the terms of the GNU General Public License as published by *
9 // * the Free Software Foundation, either version 3 of the License, or *
10 // * (at your option) any later version. *
11 // * *
12 // * GGEMS is distributed in the hope that it will be useful, *
13 // * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 // * GNU General Public License for more details. *
16 // * *
17 // * You should have received a copy of the GNU General Public License *
18 // * along with GGEMS. If not, see <https://www.gnu.org/licenses/>. *
19 // * *
20 // ************************************************************************
21 
35 
40 class GGEMS_EXPORT GGEMSPhotoElectricEffect : public GGEMSEMProcess
41 {
42  public:
48  GGEMSPhotoElectricEffect(std::string const& primary_particle = "gamma", bool const& is_secondary = false);
49 
54 
60  GGEMSPhotoElectricEffect(GGEMSPhotoElectricEffect const& photoelectric_effect) = delete;
61 
67  GGEMSPhotoElectricEffect& operator=(GGEMSPhotoElectricEffect const& photoelectric_effect) = delete;
68 
74  GGEMSPhotoElectricEffect(GGEMSPhotoElectricEffect const&& photoelectric_effect) = delete;
75 
81  GGEMSPhotoElectricEffect& operator=(GGEMSPhotoElectricEffect const&& photoelectric_effect) = delete;
82 
83  private:
91  GGfloat ComputeCrossSectionPerAtom(GGfloat const& energy, GGuchar const& atomic_number) const override;
92 };
93 
94 #endif // End of GUARD_GGEMS_PHYSICS_GGEMSPHOTOELECTRICEFFECT_HH
GGEMSPhotoElectricEffect::GGEMSPhotoElectricEffect
GGEMSPhotoElectricEffect(GGEMSPhotoElectricEffect const &&photoelectric_effect)=delete
Avoid copy by rvalue reference.
GGEMSPhotoElectricEffect::operator=
GGEMSPhotoElectricEffect & operator=(GGEMSPhotoElectricEffect const &&photoelectric_effect)=delete
Avoid copy by rvalue reference.
GGEMSEMProcess.hh
GGEMS mother class for electromagnectic process.
GGEMSPhotoElectricEffect::GGEMSPhotoElectricEffect
GGEMSPhotoElectricEffect(GGEMSPhotoElectricEffect const &photoelectric_effect)=delete
Avoid copy by reference.
GGEMSEMProcess
GGEMS mother class for electromagnectic process.
Definition: GGEMSEMProcess.hh:47
GGEMSPhotoElectricEffect::operator=
GGEMSPhotoElectricEffect & operator=(GGEMSPhotoElectricEffect const &photoelectric_effect)=delete
Avoid assignement by reference.
GGEMSEMProcess::ComputeCrossSectionPerAtom
virtual GGfloat ComputeCrossSectionPerAtom(GGfloat const &energy, GGuchar const &atomic_number) const =0
compute a cross section for an atom
GGEMSPhotoElectricEffect
Photoelectric Effect process using Sandia table.
Definition: GGEMSPhotoElectricEffect.hh:41
GGuchar
#define GGuchar
Definition: GGEMSTypes.hh:203
GGfloat
#define GGfloat
Definition: GGEMSTypes.hh:273