GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSRangeCutsManager.hh
Go to the documentation of this file.
1 #ifndef GUARD_GGEMS_PHYSICS_GGEMSRANGECUTSMANAGER_HH
2 #define GUARD_GGEMS_PHYSICS_GGEMSRANGECUTSMANAGER_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 
34 #ifdef _MSC_VER
35 #pragma warning(disable: 4251) // Deleting warning exporting STL members!!!
36 #endif
37 
39 #include "GGEMS/global/GGEMSExport.hh"
40 
41 
46 class GGEMS_EXPORT GGEMSRangeCutsManager
47 {
48  private:
53 
57  ~GGEMSRangeCutsManager(void);
58 
59  public:
66  {
67  static GGEMSRangeCutsManager instance;
68  return instance;
69  }
70 
76  GGEMSRangeCutsManager(GGEMSRangeCutsManager const& range_cuts_manager) = delete;
77 
83  GGEMSRangeCutsManager& operator=(GGEMSRangeCutsManager const& range_cuts_manager) = delete;
84 
90  GGEMSRangeCutsManager(GGEMSRangeCutsManager const&& range_cuts_manager) = delete;
91 
97  GGEMSRangeCutsManager& operator=(GGEMSRangeCutsManager const&& range_cuts_manager) = delete;
98 
107  void SetLengthCut(std::string const& phantom_name, std::string const& particle_name, GGfloat const& value, std::string const& unit = "mm");
108 
113  void PrintInfos(void) const;
114 
119  void Clean(void);
120 };
121 
127 extern "C" GGEMS_EXPORT GGEMSRangeCutsManager* get_instance_range_cuts_manager(void);
128 
138 extern "C" GGEMS_EXPORT void set_cut_range_cuts_manager(GGEMSRangeCutsManager* range_cut_manager, char const* phantom_name, char const* particle_name, GGfloat const value, char const* unit);
139 
140 #endif // GUARD_GGEMS_PHYSICS_GGEMSRANGECUTSMANAGER_HH
GGEMSRangeCutsManager::GetInstance
static GGEMSRangeCutsManager & GetInstance(void)
Create at first time the Singleton.
Definition: GGEMSRangeCutsManager.hh:65
get_instance_range_cuts_manager
GGEMSRangeCutsManager * get_instance_range_cuts_manager(void)
Get the GGEMSRangeCutsManager pointer for python user.
Definition: GGEMSRangeCutsManager.cc:134
GGEMSRangeCutsManager::operator=
GGEMSRangeCutsManager & operator=(GGEMSRangeCutsManager const &range_cuts_manager)=delete
Avoid assignement of the class by reference.
GGEMSRangeCutsManager::GGEMSRangeCutsManager
GGEMSRangeCutsManager(GGEMSRangeCutsManager const &range_cuts_manager)=delete
Avoid copy of the class by reference.
GGEMSTypes.hh
Redefining types for OpenCL device and host.
GGEMSRangeCutsManager::operator=
GGEMSRangeCutsManager & operator=(GGEMSRangeCutsManager const &&range_cuts_manager)=delete
Avoid copy of the class by rvalue reference.
set_cut_range_cuts_manager
void set_cut_range_cuts_manager(GGEMSRangeCutsManager *range_cut_manager, char const *phantom_name, char const *particle_name, GGfloat const value, char const *unit)
set the range cut for a phantom and a particle
Definition: GGEMSRangeCutsManager.cc:143
GGEMSRangeCutsManager::GGEMSRangeCutsManager
GGEMSRangeCutsManager(GGEMSRangeCutsManager const &&range_cuts_manager)=delete
Avoid copy of the class by rvalue reference.
GGEMSRangeCutsManager
GGEMS class managing the range cuts in GGEMS simulation.
Definition: GGEMSRangeCutsManager.hh:47
GGfloat
#define GGfloat
Definition: GGEMSTypes.hh:273