|
GGEMS
1.1
GPU GEant4-based Monte Carlo Simulations
|
Go to the documentation of this file. 1 #ifndef GUARD_GGEMS_GEOMETRIES_GGEMSSOLID_HH
2 #define GUARD_GGEMS_GEOMETRIES_GGEMSSOLID_HH
92 void EnableTracking(
void);
100 inline cl::Buffer*
GetSolidData(
GGsize const& thread_index)
const {
return solid_data_[thread_index];};
108 inline cl::Buffer*
GetLabelData(
GGsize const& thread_index)
const {
return label_data_[thread_index];};
115 void SetRotation(
GGfloat3 const& rotation_xyz);
122 void SetPosition(
GGfloat3 const& position_xyz);
131 void SetSolidID(
GGsize const& solid_id,
GGsize const& thread_index);
196 inline cl::Buffer*
GetHistogram(
GGsize const& thread_index)
const {
return histogram_.histogram_[thread_index];}
247 solid_data_device->solid_id_ =
static_cast<GGint>(solid_id);
253 #endif // End of GUARD_GGEMS_GEOMETRIES_GGEMSSOLID_HH
GGEMS class handling RAM memory.
cl::Buffer ** label_data_
GGEMSSolid & operator=(GGEMSSolid const &&solid)=delete
Avoid copy by rvalue reference.
GGEMS class handling the navigators (detector + phantom) in GGEMS.
This class handles everything about geometry transformation.
virtual void EnableScatter(void)=0
Activate scatter registration.
cl::Kernel * GetKernelProjectToSolid(GGsize const &thread_index) const
get the pointer to kernel associated to a device
cl::Buffer ** solid_data_
GGEMS class handling material(s) for a specific navigator.
Structure storing histogram infos.
GGEMS class for solid informations.
cl::Buffer * GetSolidData(GGsize const &thread_index) const
get the informations about the solid geometry
cl::Kernel ** kernel_project_to_solid_
void ReleaseDeviceBuffer(cl::Buffer *const device_ptr, T *host_ptr, GGsize const &thread_index)
Get the device pointer on host to write on it. Mandatory after a GetDeviceBufferWrite ou GetDeviceBuf...
cl::Buffer * GetScatterHistogram(GGsize const &thread_index) const
return the point on scatter histogram
cl::Kernel ** kernel_track_through_solid_
cl::Kernel * GetKernelParticleSolidDistance(GGsize const &thread_index) const
get the pointer to kernel associated to a device
GGEMSSolid & operator=(GGEMSSolid const &solid)=delete
Avoid assignement by reference.
GGEMSGeometryTransformation * geometry_transformation_
cl::Kernel ** kernel_particle_solid_distance_
virtual void PrintInfos(void) const =0
printing infos about solid
GGEMSHistogramMode histogram_
std::string GetRegisteredDataType(void) const
get the type of registered data
GGEMSSolid(GGEMSSolid const &solid)=delete
Avoid copy by reference.
cl::Buffer * GetLabelData(GGsize const &thread_index) const
get buffer to label buffer
void SetSolidID(GGsize const &solid_id, GGsize const &thread_index)
set the global solid index
Namespaces for different useful fonctions reading input text file. Namespaces for material database f...
cl::Kernel * GetKernelTrackThroughSolid(GGsize const &thread_index) const
get the pointer to kernel associated to a device
cl::Buffer * GetHistogram(GGsize const &thread_index) const
return the point on histogram
virtual void UpdateTransformationMatrix(GGsize const &thread_index)=0
Update transformation matrix for solid object.
GGsize number_activated_devices_
virtual void Initialize(GGEMSMaterials *materials)=0
Initialize solid for geometric navigation.
GGEMSSolid(GGEMSSolid const &&solid)=delete
Avoid copy by rvalue reference.
T * GetDeviceBuffer(cl::Buffer *device_ptr, GGsize const &size, GGsize const &thread_index)
Get the device pointer on host to write on it. ReleaseDeviceBuffer must be used after this method!...
Structure storing histogram infos.
Singleton class storing all informations about OpenCL and managing GPU/CPU devices,...
std::string data_reg_type_
std::string kernel_option_
virtual void InitializeKernel(void)=0
Initialize kernel for particle solid distance.
static GGEMSOpenCLManager & GetInstance(void)
Create at first time the Singleton.