|
GGEMS
1.1
GPU GEant4-based Monte Carlo Simulations
|
Go to the documentation of this file. 1 #ifndef GUARD_GGEMS_SOURCES_GGEMSXRAYSOURCE_HH
2 #define GUARD_GGEMS_SOURCES_GGEMSXRAYSOURCE_HH
88 void SetBeamAperture(
GGfloat const& beam_aperture, std::string
const& unit =
"deg");
98 void SetFocalSpotSize(
GGfloat const& width,
GGfloat const& height,
GGfloat const& depth, std::string
const& unit =
"mm");
106 void SetMonoenergy(
GGfloat const& monoenergy, std::string
const& unit =
"keV");
113 void SetPolyenergy(std::string
const& energy_spectrum_filename);
120 void Initialize(
bool const& is_tracking =
false)
override;
147 void FillEnergy(
void);
249 #endif // End of GUARD_GGEMS_SOURCES_GGEMSXRAYSOURCE_HH
void set_beam_aperture_ggems_xray_source(GGEMSXRaySource *xray_source, GGfloat const beam_aperture, char const *unit)
set the beam aperture of the x-ray source
std::string energy_spectrum_filename_
GGEMS mother class for the source.
GGEMSXRaySource & operator=(GGEMSXRaySource const &xray_source)=delete
Avoid assignement by reference.
GGEMSXRaySource(GGEMSXRaySource const &&xray_source)=delete
Avoid copy by rvalue reference.
void set_focal_spot_size_ggems_xray_source(GGEMSXRaySource *xray_source, GGfloat const width, GGfloat const height, GGfloat const depth, char const *unit)
Set the focal spot size of the x-ray source.
This class define a XRay source in GGEMS useful for CT/CBCT simulation.
virtual void InitializeKernel(void)=0
Initialize kernel for specific source in OpenCL.
void set_rotation_ggems_xray_source(GGEMSXRaySource *xray_source, GGfloat const rx, GGfloat const ry, GGfloat const rz, char const *unit)
Set the rotation of the source around global axis.
void set_monoenergy_ggems_xray_source(GGEMSXRaySource *xray_source, GGfloat const monoenergy, char const *unit)
Set the monoenergy value for the GGEMSXRaySource.
GGfloat3 focal_spot_size_
void set_position_ggems_xray_source(GGEMSXRaySource *xray_source, GGfloat const pos_x, GGfloat const pos_y, GGfloat const pos_z, char const *unit)
Set the position of the source in the global coordinates.
virtual void GetPrimaries(GGsize const &thread_index, GGsize const &number_of_particles)=0
Generate primary particles.
virtual void PrintInfos(void) const =0
Printing infos about the source.
GGEMSXRaySource * create_ggems_xray_source(char const *source_name)
Get the GGEMSXRaySource pointer for python user.
GGbool is_monoenergy_mode_
virtual void CheckParameters(void) const
Check mandatory parameters for a source.
cl::Buffer ** energy_spectrum_
GGEMSXRaySource & operator=(GGEMSXRaySource const &&xray_source)=delete
Avoid copy by rvalue reference.
void set_source_particle_type_ggems_xray_source(GGEMSXRaySource *xray_source, char const *particle_name)
Set the type of the source particle.
GGsize number_of_energy_bins_
void set_polyenergy_ggems_xray_source(GGEMSXRaySource *xray_source, char const *energy_spectrum)
Set the polyenergetic spectrum value for the GGEMSXRaySource.
virtual void Initialize(bool const &is_tracking=false)
Initialize a GGEMS source.
GGEMSXRaySource(GGEMSXRaySource const &xray_source)=delete
Avoid copy by reference.
void set_number_of_particles_xray_source(GGEMSXRaySource *xray_source, GGsize const number_of_particles)
Set the number of particles to simulate during the simulation.
GGEMS mother class for the source.