GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSSolid Class Referenceabstract

GGEMS class for solid informations. More...

#include "GGEMSSolid.hh"

Inheritance diagram for GGEMSSolid:
Inheritance graph
Collaboration diagram for GGEMSSolid:
Collaboration graph

Public Member Functions

 GGEMSSolid (void)
 GGEMSSolid constructor. More...
 
virtual ~GGEMSSolid (void)
 GGEMSSolid destructor. More...
 
 GGEMSSolid (GGEMSSolid const &solid)=delete
 Avoid copy by reference. More...
 
GGEMSSolidoperator= (GGEMSSolid const &solid)=delete
 Avoid assignement by reference. More...
 
 GGEMSSolid (GGEMSSolid const &&solid)=delete
 Avoid copy by rvalue reference. More...
 
GGEMSSolidoperator= (GGEMSSolid const &&solid)=delete
 Avoid copy by rvalue reference. More...
 
void EnableTracking (void)
 Enabling tracking infos during simulation. More...
 
cl::Buffer * GetSolidData (GGsize const &thread_index) const
 get the informations about the solid geometry More...
 
cl::Buffer * GetLabelData (GGsize const &thread_index) const
 get buffer to label buffer More...
 
void SetRotation (GGfloat3 const &rotation_xyz)
 set a rotation for solid More...
 
void SetPosition (GGfloat3 const &position_xyz)
 set a position for solid More...
 
template<typename T >
void SetSolidID (GGsize const &solid_id, GGsize const &thread_index)
 set the global solid index More...
 
virtual void UpdateTransformationMatrix (GGsize const &thread_index)=0
 Update transformation matrix for solid object. More...
 
virtual void Initialize (GGEMSMaterials *materials)=0
 Initialize solid for geometric navigation. More...
 
virtual void EnableScatter (void)=0
 Activate scatter registration. More...
 
virtual void PrintInfos (void) const =0
 printing infos about solid More...
 
std::string GetRegisteredDataType (void) const
 get the type of registered data More...
 
cl::Kernel * GetKernelParticleSolidDistance (GGsize const &thread_index) const
 get the pointer to kernel associated to a device More...
 
cl::Kernel * GetKernelProjectToSolid (GGsize const &thread_index) const
 get the pointer to kernel associated to a device More...
 
cl::Kernel * GetKernelTrackThroughSolid (GGsize const &thread_index) const
 get the pointer to kernel associated to a device More...
 
cl::Buffer * GetHistogram (GGsize const &thread_index) const
 return the point on histogram More...
 
cl::Buffer * GetScatterHistogram (GGsize const &thread_index) const
 return the point on scatter histogram More...
 

Protected Member Functions

virtual void InitializeKernel (void)=0
 Initialize kernel for particle solid distance. More...
 

Protected Attributes

cl::Buffer ** solid_data_
 
cl::Buffer ** label_data_
 
GGsize number_activated_devices_
 
GGEMSGeometryTransformationgeometry_transformation_
 
cl::Kernel ** kernel_particle_solid_distance_
 
cl::Kernel ** kernel_project_to_solid_
 
cl::Kernel ** kernel_track_through_solid_
 
std::string kernel_option_
 
std::string data_reg_type_
 
GGEMSHistogramMode histogram_
 
bool is_scatter_
 

Detailed Description

GGEMS class for solid informations.

Definition at line 47 of file GGEMSSolid.hh.

Constructor & Destructor Documentation

◆ GGEMSSolid() [1/3]

GGEMSSolid::GGEMSSolid ( void  )

GGEMSSolid constructor.

Definition at line 43 of file GGEMSSolid.cc.

◆ ~GGEMSSolid()

GGEMSSolid::~GGEMSSolid ( void  )
virtual

GGEMSSolid destructor.

Definition at line 73 of file GGEMSSolid.cc.

◆ GGEMSSolid() [2/3]

GGEMSSolid::GGEMSSolid ( GGEMSSolid const &  solid)
delete

Avoid copy by reference.

Parameters
solid- reference on the GGEMS solid

◆ GGEMSSolid() [3/3]

GGEMSSolid::GGEMSSolid ( GGEMSSolid const &&  solid)
delete

Avoid copy by rvalue reference.

Parameters
solid- rvalue reference on the GGEMS solid

Member Function Documentation

◆ EnableScatter()

void GGEMSSolid::EnableScatter ( void  )
pure virtual

Activate scatter registration.

Implemented in GGEMSVoxelizedSolid, and GGEMSSolidBox.

◆ EnableTracking()

void GGEMSSolid::EnableTracking ( void  )

Enabling tracking infos during simulation.

Definition at line 125 of file GGEMSSolid.cc.

◆ GetHistogram()

GGEMSHistogramMode * GGEMSSolid::GetHistogram ( GGsize const &  thread_index) const
inline

return the point on histogram

Parameters
thread_index- index of activated device (thread index)
Returns
pointer on histogram

Definition at line 196 of file GGEMSSolid.hh.

◆ GetKernelParticleSolidDistance()

cl::Kernel * GGEMSSolid::GetKernelParticleSolidDistance ( GGsize const &  thread_index) const
inline

get the pointer to kernel associated to a device

Parameters
thread_index- index of activated device (thread index)
Returns
pointer to kernel associated to a device

Definition at line 172 of file GGEMSSolid.hh.

◆ GetKernelProjectToSolid()

cl::Kernel * GGEMSSolid::GetKernelProjectToSolid ( GGsize const &  thread_index) const
inline

get the pointer to kernel associated to a device

Parameters
thread_index- index of activated device (thread index)
Returns
pointer to kernel associated to a device

Definition at line 180 of file GGEMSSolid.hh.

◆ GetKernelTrackThroughSolid()

cl::Kernel * GGEMSSolid::GetKernelTrackThroughSolid ( GGsize const &  thread_index) const
inline

get the pointer to kernel associated to a device

Parameters
thread_index- index of activated device (thread index)
Returns
pointer to kernel associated to a device

Definition at line 188 of file GGEMSSolid.hh.

◆ GetLabelData()

cl::Buffer * GGEMSSolid::GetLabelData ( GGsize const &  thread_index) const
inline

get buffer to label buffer

Parameters
thread_index- index of the thread (= activated device index)
Returns
data on label infos

Definition at line 108 of file GGEMSSolid.hh.

◆ GetRegisteredDataType()

std::string GGEMSSolid::GetRegisteredDataType ( void  ) const
inline

get the type of registered data

Returns
the type of registered data

Definition at line 164 of file GGEMSSolid.hh.

◆ GetScatterHistogram()

GGEMSHistogramMode * GGEMSSolid::GetScatterHistogram ( GGsize const &  thread_index) const
inline

return the point on scatter histogram

Parameters
thread_index- index of activated device (thread index)
Returns
pointer on scatter histogram

Definition at line 204 of file GGEMSSolid.hh.

◆ GetSolidData()

cl::Buffer * GGEMSSolid::GetSolidData ( GGsize const &  thread_index) const
inline

get the informations about the solid geometry

Parameters
thread_index- index of the thread (= activated device index)
Returns
header data OpenCL pointer about solid

Definition at line 100 of file GGEMSSolid.hh.

◆ Initialize()

void GGEMSSolid::Initialize ( GGEMSMaterials materials)
pure virtual

Initialize solid for geometric navigation.

Parameters
materials- pointer on GGEMS materials

Implemented in GGEMSVoxelizedSolid, and GGEMSSolidBox.

◆ InitializeKernel()

void GGEMSSolid::InitializeKernel ( void  )
protectedpure virtual

Initialize kernel for particle solid distance.

Implemented in GGEMSVoxelizedSolid, and GGEMSSolidBox.

◆ operator=() [1/2]

GGEMSSolid & GGEMSSolid::operator= ( GGEMSSolid const &&  solid)
delete

Avoid copy by rvalue reference.

Parameters
solid- rvalue reference on the GGEMS solid

◆ operator=() [2/2]

GGEMSSolid & GGEMSSolid::operator= ( GGEMSSolid const &  solid)
delete

Avoid assignement by reference.

Parameters
solid- reference on the GGEMS solid

◆ PrintInfos()

void GGEMSSolid::PrintInfos ( void  ) const
pure virtual

printing infos about solid

Implemented in GGEMSVoxelizedSolid, and GGEMSSolidBox.

◆ SetPosition()

void GGEMSSolid::SetPosition ( GGfloat3 const &  position_xyz)

set a position for solid

Parameters
position_xyz- position in X, Y and Z

Definition at line 143 of file GGEMSSolid.cc.

◆ SetRotation()

void GGEMSSolid::SetRotation ( GGfloat3 const &  rotation_xyz)

set a rotation for solid

Parameters
rotation_xyz- rotation in X, Y and Z

Definition at line 111 of file GGEMSSolid.hh.

◆ SetSolidID()

template<typename T >
void GGEMSSolid::SetSolidID ( GGsize const &  solid_id,
GGsize const &  thread_index 
)

set the global solid index

Parameters
solid_id- index of the solid
thread_index- index of the thread (= activated device index)

Definition at line 239 of file GGEMSSolid.hh.

◆ UpdateTransformationMatrix()

void GGEMSSolid::UpdateTransformationMatrix ( GGsize const &  thread_index)
pure virtual

Update transformation matrix for solid object.

Parameters
thread_index- index of the thread (= activated device index)

Implemented in GGEMSVoxelizedSolid, and GGEMSSolidBox.

Member Data Documentation

◆ data_reg_type_

std::string GGEMSSolid::data_reg_type_
protected

Type of registering data

Definition at line 229 of file GGEMSSolid.hh.

◆ geometry_transformation_

GGEMSGeometryTransformation* GGEMSSolid::geometry_transformation_
protected

Pointer storing the geometry transformation

Definition at line 220 of file GGEMSSolid.hh.

◆ histogram_

GGEMSHistogramMode GGEMSSolid::histogram_
protected

Storing histogram useful for GGEMSSystem only

Definition at line 230 of file GGEMSSolid.hh.

◆ is_scatter_

bool GGEMSSolid::is_scatter_
protected

boolean storing scatter in solid

Definition at line 231 of file GGEMSSolid.hh.

◆ kernel_option_

std::string GGEMSSolid::kernel_option_
protected

Preprocessor option for kernel

Definition at line 226 of file GGEMSSolid.hh.

◆ kernel_particle_solid_distance_

cl::Kernel** GGEMSSolid::kernel_particle_solid_distance_
protected

OpenCL kernel computing distance between particles and solid

Definition at line 223 of file GGEMSSolid.hh.

◆ kernel_project_to_solid_

cl::Kernel** GGEMSSolid::kernel_project_to_solid_
protected

OpenCL kernel moving particles to solid

Definition at line 224 of file GGEMSSolid.hh.

◆ kernel_track_through_solid_

cl::Kernel** GGEMSSolid::kernel_track_through_solid_
protected

OpenCL kernel tracking particles through a solid

Definition at line 225 of file GGEMSSolid.hh.

◆ label_data_

cl::Buffer** GGEMSSolid::label_data_
protected

Pointer storing the buffer about label data, useful for voxelized solid only

Definition at line 216 of file GGEMSSolid.hh.

◆ number_activated_devices_

GGsize GGEMSSolid::number_activated_devices_
protected

Number of activated device

Definition at line 217 of file GGEMSSolid.hh.

◆ solid_data_

cl::Buffer** GGEMSSolid::solid_data_
protected

Data about solid

Definition at line 215 of file GGEMSSolid.hh.


The documentation for this class was generated from the following files: