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

GGEMS mother class for electromagnectic process. More...

#include "GGEMSEMProcess.hh"

Inheritance diagram for GGEMSEMProcess:
Inheritance graph
Collaboration diagram for GGEMSEMProcess:
Collaboration graph

Public Member Functions

 GGEMSEMProcess (void)
 GGEMSEMProcess constructor. More...
 
virtual ~GGEMSEMProcess (void)
 GGEMSEMProcess destructor. More...
 
 GGEMSEMProcess (GGEMSEMProcess const &em_process)=delete
 Avoid copy by reference. More...
 
GGEMSEMProcessoperator= (GGEMSEMProcess const &em_process)=delete
 Avoid assignement by reference. More...
 
 GGEMSEMProcess (GGEMSEMProcess const &&em_process)=delete
 Avoid copy by rvalue reference. More...
 
GGEMSEMProcessoperator= (GGEMSEMProcess const &&em_process)=delete
 Avoid copy by rvalue reference. More...
 
std::string GetProcessName (void) const
 get the name of the process More...
 
virtual void BuildCrossSectionTables (cl::Buffer *particle_cross_sections, cl::Buffer *material_tables, GGsize const &thread_index)
 build cross section tables and storing them in particle_cross_sections More...
 

Protected Member Functions

GGfloat ComputeCrossSectionPerMaterial (GGEMSParticleCrossSections *cross_section, GGEMSMaterialTables const *material_tables, GGsize const &material_index, GGsize const &energy_index)
 compute cross section for a process for a material More...
 
virtual GGfloat ComputeCrossSectionPerAtom (GGfloat const &energy, GGuchar const &atomic_number) const =0
 compute a cross section for an atom More...
 

Protected Attributes

GGchar process_id_
 
std::string process_name_
 
std::string primary_particle_
 
std::string secondary_particle_
 
bool is_secondaries_
 

Detailed Description

GGEMS mother class for electromagnectic process.

Definition at line 46 of file GGEMSEMProcess.hh.

Constructor & Destructor Documentation

◆ GGEMSEMProcess() [1/3]

GGEMSEMProcess::GGEMSEMProcess ( void  )

GGEMSEMProcess constructor.

Definition at line 38 of file GGEMSEMProcess.cc.

◆ ~GGEMSEMProcess()

GGEMSEMProcess::~GGEMSEMProcess ( void  )
virtual

GGEMSEMProcess destructor.

Definition at line 54 of file GGEMSEMProcess.cc.

◆ GGEMSEMProcess() [2/3]

GGEMSEMProcess::GGEMSEMProcess ( GGEMSEMProcess const &  em_process)
delete

Avoid copy by reference.

Parameters
em_process- reference on the GGEMS electromagnetic process

◆ GGEMSEMProcess() [3/3]

GGEMSEMProcess::GGEMSEMProcess ( GGEMSEMProcess const &&  em_process)
delete

Avoid copy by rvalue reference.

Parameters
em_process- rvalue reference on the GGEMS electromagnetic process

Member Function Documentation

◆ BuildCrossSectionTables()

void GGEMSEMProcess::BuildCrossSectionTables ( cl::Buffer *  particle_cross_sections,
cl::Buffer *  material_tables,
GGsize const &  thread_index 
)
virtual

build cross section tables and storing them in particle_cross_sections

Parameters
particle_cross_sections- OpenCL buffer storing all the cross section tables for each particles
material_tables- material tables on OpenCL device
thread_index- index of activated device (thread index)

Definition at line 65 of file GGEMSEMProcess.cc.

◆ ComputeCrossSectionPerAtom()

GGfloat GGEMSEMProcess::ComputeCrossSectionPerAtom ( GGfloat const &  energy,
GGuchar const &  atomic_number 
) const
protectedpure virtual

compute a cross section for an atom

Parameters
energy- energy of the bin
atomic_number- Z number of the chemical element
Returns
cross section by atom

Implemented in GGEMSRayleighScattering, GGEMSPhotoElectricEffect, and GGEMSComptonScattering.

◆ ComputeCrossSectionPerMaterial()

GGfloat GGEMSEMProcess::ComputeCrossSectionPerMaterial ( GGEMSParticleCrossSections cross_section,
GGEMSMaterialTables const *  material_tables,
GGsize const &  material_index,
GGsize const &  energy_index 
)
protected

compute cross section for a process for a material

Parameters
cross_section- cross section
material_tables- activated material for a phantom
material_index- index of the material
energy_index- index of the energy
Returns
cross section for a process for a material

Definition at line 129 of file GGEMSEMProcess.cc.

◆ GetProcessName()

std::string GGEMSEMProcess::GetProcessName ( void  ) const
inline

get the name of the process

Returns
name of the process

Definition at line 92 of file GGEMSEMProcess.hh.

◆ operator=() [1/2]

GGEMSEMProcess & GGEMSEMProcess::operator= ( GGEMSEMProcess const &&  em_process)
delete

Avoid copy by rvalue reference.

Parameters
em_process- rvalue reference on the GGEMS electromagnetic process

◆ operator=() [2/2]

GGEMSEMProcess & GGEMSEMProcess::operator= ( GGEMSEMProcess const &  em_process)
delete

Avoid assignement by reference.

Parameters
em_process- reference on the GGEMS electromagnetic process

Member Data Documentation

◆ is_secondaries_

bool GGEMSEMProcess::is_secondaries_
protected

Flag to activate secondaries

Definition at line 129 of file GGEMSEMProcess.hh.

◆ primary_particle_

std::string GGEMSEMProcess::primary_particle_
protected

Type of primary particle

Definition at line 127 of file GGEMSEMProcess.hh.

◆ process_id_

GGchar GGEMSEMProcess::process_id_
protected

Id of the process as defined in GGEMSEMProcessConstants.hh

Definition at line 125 of file GGEMSEMProcess.hh.

◆ process_name_

std::string GGEMSEMProcess::process_name_
protected

Name of the process

Definition at line 126 of file GGEMSEMProcess.hh.

◆ secondary_particle_

std::string GGEMSEMProcess::secondary_particle_
protected

Type of secondary particle

Definition at line 128 of file GGEMSEMProcess.hh.


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