GGEMS  1.1
GPU GEant4-based Monte Carlo Simulations
GGEMSRangeCuts Class Reference

GGEMS class storing and converting the cut in energy cut. More...

#include "GGEMSRangeCuts.hh"

Collaboration diagram for GGEMSRangeCuts:
Collaboration graph

Public Member Functions

 GGEMSRangeCuts (void)
 GGEMSRangeCuts constructor. More...
 
 ~GGEMSRangeCuts (void)
 GGEMSRangeCuts destructor. More...
 
 GGEMSRangeCuts (GGEMSRangeCuts const &range_cuts)=delete
 Avoid copy by reference. More...
 
GGEMSRangeCutsoperator= (GGEMSRangeCuts const &range_cuts)=delete
 Avoid assignement by reference. More...
 
 GGEMSRangeCuts (GGEMSRangeCuts const &&range_cuts)=delete
 Avoid copy by rvalue reference. More...
 
GGEMSRangeCutsoperator= (GGEMSRangeCuts const &&range_cuts)=delete
 Avoid copy by rvalue reference. More...
 
void SetPhotonDistanceCut (GGfloat const &cut)
 set the photon length cut by the range cut manager More...
 
void SetElectronDistanceCut (GGfloat const &cut)
 set the electron length cut by the range cut manager More...
 
void SetPositronDistanceCut (GGfloat const &cut)
 set the positron length cut by the range cut manager More...
 
GGfloat GetPhotonDistanceCut (void) const
 get the photon length cut More...
 
EnergyCutUMap GetPhotonEnergyCut (void) const
 get the map of energy cut with material More...
 
GGfloat GetElectronDistanceCut (void) const
 get the electron length cut for photon More...
 
EnergyCutUMap GetElectronEnergyCut (void) const
 get the map of energy cut with material for electron More...
 
GGfloat GetPositronDistanceCut (void) const
 get the positron length cut More...
 
EnergyCutUMap GetPositronEnergyCut (void) const
 get the map of energy cut with material for positron More...
 
void ConvertCutsFromDistanceToEnergy (GGEMSMaterials *materials)
 Convert cut from length to energy. More...
 

Private Member Functions

GGfloat ConvertToEnergy (GGEMSMaterialTables *material_table, GGushort const &index_mat, std::string const &particle_name)
 Convert length cut to energy cut for gamma, e- and e+. More...
 
void BuildElementsLossTable (GGEMSMaterialTables *material_table, GGushort const &index_mat, std::string const &particle_name)
 Build loss table for elements in material. More...
 
void BuildAbsorptionLengthTable (GGEMSMaterialTables *material_table, GGushort const &index_mat)
 Build absorption length table for photon. More...
 
void BuildMaterialLossTable (GGEMSMaterialTables *material_table, GGushort const &index_mat)
 Build loss table for material in case of electron and positron. More...
 
GGfloat ComputePhotonCrossSection (GGuchar const &atomic_number, GGfloat const &energy) const
 compute cross secton value for photon depending on Z and energy More...
 
GGfloat ComputeLossElectron (GGuchar const &atomic_number, GGfloat const &energy) const
 compute the loss de/dx for electron More...
 
GGfloat ComputeLossPositron (GGuchar const &atomic_number, GGfloat const &energy) const
 compute the loss de/dx for positron More...
 
GGfloat ConvertLengthToEnergyCut (GGfloat const &length_cut) const
 convert length to energy cut More...
 

Private Attributes

GGfloat min_energy_
 
GGfloat max_energy_
 
GGsize number_of_bins_
 
GGfloat distance_cut_photon_
 
EnergyCutUMap energy_cuts_photon_
 
GGfloat distance_cut_electron_
 
EnergyCutUMap energy_cuts_electron_
 
GGfloat distance_cut_positron_
 
EnergyCutUMap energy_cuts_positron_
 
GGEMSLogEnergyTablerange_table_material_
 
GGEMSLogEnergyTable ** loss_table_dedx_table_elements_
 
GGsize number_of_tables_
 

Detailed Description

GGEMS class storing and converting the cut in energy cut.

Definition at line 49 of file GGEMSRangeCuts.hh.

Constructor & Destructor Documentation

◆ GGEMSRangeCuts() [1/3]

GGEMSRangeCuts::GGEMSRangeCuts ( void  )

GGEMSRangeCuts constructor.

Definition at line 41 of file GGEMSRangeCuts.cc.

◆ ~GGEMSRangeCuts()

GGEMSRangeCuts::~GGEMSRangeCuts ( void  )

GGEMSRangeCuts destructor.

Definition at line 62 of file GGEMSRangeCuts.cc.

◆ GGEMSRangeCuts() [2/3]

GGEMSRangeCuts::GGEMSRangeCuts ( GGEMSRangeCuts const &  range_cuts)
delete

Avoid copy by reference.

Parameters
range_cuts- reference on the GGEMS range cuts

◆ GGEMSRangeCuts() [3/3]

GGEMSRangeCuts::GGEMSRangeCuts ( GGEMSRangeCuts const &&  range_cuts)
delete

Avoid copy by rvalue reference.

Parameters
range_cuts- rvalue reference on the GGEMS range cuts

Member Function Documentation

◆ BuildAbsorptionLengthTable()

void GGEMSRangeCuts::BuildAbsorptionLengthTable ( GGEMSMaterialTables material_table,
GGushort const &  index_mat 
)
private

Build absorption length table for photon.

Parameters
material_table- material table on OpenCL device
index_mat- index of the material

Definition at line 214 of file GGEMSRangeCuts.cc.

◆ BuildElementsLossTable()

void GGEMSRangeCuts::BuildElementsLossTable ( GGEMSMaterialTables material_table,
GGushort const &  index_mat,
std::string const &  particle_name 
)
private

Build loss table for elements in material.

Parameters
material_table- material table on OpenCL device
index_mat- index of the material
particle_name- name of the particle

Definition at line 302 of file GGEMSRangeCuts.cc.

◆ BuildMaterialLossTable()

void GGEMSRangeCuts::BuildMaterialLossTable ( GGEMSMaterialTables material_table,
GGushort const &  index_mat 
)
private

Build loss table for material in case of electron and positron.

Parameters
material_table- material table on OpenCL device
index_mat- index of the material

Definition at line 244 of file GGEMSRangeCuts.cc.

◆ ComputeLossElectron()

GGfloat GGEMSRangeCuts::ComputeLossElectron ( GGuchar const &  atomic_number,
GGfloat const &  energy 
) const
private

compute the loss de/dx for electron

Parameters
atomic_number- atomic number of the elements
energy- energy of the bin
Returns
loss energy, dE/dX

Definition at line 409 of file GGEMSRangeCuts.cc.

◆ ComputeLossPositron()

GGfloat GGEMSRangeCuts::ComputeLossPositron ( GGuchar const &  atomic_number,
GGfloat const &  energy 
) const
private

compute the loss de/dx for positron

Parameters
atomic_number- atomic number of the elements
energy- energy of the bin
Returns
loss energy, dE/dX

Definition at line 472 of file GGEMSRangeCuts.cc.

◆ ComputePhotonCrossSection()

GGfloat GGEMSRangeCuts::ComputePhotonCrossSection ( GGuchar const &  atomic_number,
GGfloat const &  energy 
) const
private

compute cross secton value for photon depending on Z and energy

Parameters
atomic_number- atomic number of the elements
energy- energy of the bin
Returns
cross secton value

Definition at line 343 of file GGEMSRangeCuts.cc.

◆ ConvertCutsFromDistanceToEnergy()

void GGEMSRangeCuts::ConvertCutsFromDistanceToEnergy ( GGEMSMaterials materials)

Convert cut from length to energy.

Parameters
materials- pointer on the list of activated materials

Definition at line 590 of file GGEMSRangeCuts.cc.

◆ ConvertLengthToEnergyCut()

GGfloat GGEMSRangeCuts::ConvertLengthToEnergyCut ( GGfloat const &  length_cut) const
private

convert length to energy cut

Parameters
length_cut- length cut of the particle
Returns
converted cut

Definition at line 534 of file GGEMSRangeCuts.cc.

◆ ConvertToEnergy()

GGfloat GGEMSRangeCuts::ConvertToEnergy ( GGEMSMaterialTables material_table,
GGushort const &  index_mat,
std::string const &  particle_name 
)
private

Convert length cut to energy cut for gamma, e- and e+.

Parameters
material_table- material table on OpenCL device
index_mat- index of the material
particle_name- name of the particle
Returns
energy cut of photon

Definition at line 129 of file GGEMSRangeCuts.cc.

◆ GetElectronDistanceCut()

GGfloat GGEMSRangeCuts::GetElectronDistanceCut ( void  ) const
inline

get the electron length cut for photon

Returns
the electron length cut for photon

Definition at line 130 of file GGEMSRangeCuts.hh.

◆ GetElectronEnergyCut()

EnergyCutUMap GGEMSRangeCuts::GetElectronEnergyCut ( void  ) const
inline

get the map of energy cut with material for electron

Returns
list of energy cut in each material for electron

Definition at line 137 of file GGEMSRangeCuts.hh.

◆ GetPhotonDistanceCut()

GGfloat GGEMSRangeCuts::GetPhotonDistanceCut ( void  ) const
inline

get the photon length cut

Returns
the photon length cut in mm

Definition at line 116 of file GGEMSRangeCuts.hh.

◆ GetPhotonEnergyCut()

EnergyCutUMap GGEMSRangeCuts::GetPhotonEnergyCut ( void  ) const
inline

get the map of energy cut with material

Returns
list of energy cut in each material

Definition at line 123 of file GGEMSRangeCuts.hh.

◆ GetPositronDistanceCut()

GGfloat GGEMSRangeCuts::GetPositronDistanceCut ( void  ) const
inline

get the positron length cut

Returns
the positron length cut in mm

Definition at line 144 of file GGEMSRangeCuts.hh.

◆ GetPositronEnergyCut()

EnergyCutUMap GGEMSRangeCuts::GetPositronEnergyCut ( void  ) const
inline

get the map of energy cut with material for positron

Returns
list of energy cut in each material for positron

Definition at line 151 of file GGEMSRangeCuts.hh.

◆ operator=() [1/2]

GGEMSRangeCuts & GGEMSRangeCuts::operator= ( GGEMSRangeCuts const &&  range_cuts)
delete

Avoid copy by rvalue reference.

Parameters
range_cuts- rvalue reference on the GGEMS range cuts

◆ operator=() [2/2]

GGEMSRangeCuts & GGEMSRangeCuts::operator= ( GGEMSRangeCuts const &  range_cuts)
delete

Avoid assignement by reference.

Parameters
range_cuts- reference on the GGEMS range cuts

◆ SetElectronDistanceCut()

void GGEMSRangeCuts::SetElectronDistanceCut ( GGfloat const &  cut)

set the electron length cut by the range cut manager

Parameters
cut- cut in length (mm)

Definition at line 101 of file GGEMSRangeCuts.cc.

◆ SetPhotonDistanceCut()

void GGEMSRangeCuts::SetPhotonDistanceCut ( GGfloat const &  cut)

set the photon length cut by the range cut manager

Parameters
cut- cut in length (mm)

Definition at line 87 of file GGEMSRangeCuts.cc.

◆ SetPositronDistanceCut()

void GGEMSRangeCuts::SetPositronDistanceCut ( GGfloat const &  cut)

set the positron length cut by the range cut manager

Parameters
cut- cut in length (mm)

Definition at line 115 of file GGEMSRangeCuts.cc.

Member Data Documentation

◆ distance_cut_electron_

GGfloat GGEMSRangeCuts::distance_cut_electron_
private

Electron cut in length

Definition at line 241 of file GGEMSRangeCuts.hh.

◆ distance_cut_photon_

GGfloat GGEMSRangeCuts::distance_cut_photon_
private

Photon cut in length

Definition at line 237 of file GGEMSRangeCuts.hh.

◆ distance_cut_positron_

GGfloat GGEMSRangeCuts::distance_cut_positron_
private

Positron cut in length

Definition at line 245 of file GGEMSRangeCuts.hh.

◆ energy_cuts_electron_

EnergyCutUMap GGEMSRangeCuts::energy_cuts_electron_
private

List of energy cuts for electron a material

Definition at line 242 of file GGEMSRangeCuts.hh.

◆ energy_cuts_photon_

EnergyCutUMap GGEMSRangeCuts::energy_cuts_photon_
private

List of energy cuts for photon a material

Definition at line 238 of file GGEMSRangeCuts.hh.

◆ energy_cuts_positron_

EnergyCutUMap GGEMSRangeCuts::energy_cuts_positron_
private

List of energy cuts for Positron a material

Definition at line 246 of file GGEMSRangeCuts.hh.

◆ loss_table_dedx_table_elements_

GGEMSLogEnergyTable** GGEMSRangeCuts::loss_table_dedx_table_elements_
private

Table of dE/dX for each element in materials

Definition at line 249 of file GGEMSRangeCuts.hh.

◆ max_energy_

GGfloat GGEMSRangeCuts::max_energy_
private

Maximum energy of cross section table

Definition at line 233 of file GGEMSRangeCuts.hh.

◆ min_energy_

GGfloat GGEMSRangeCuts::min_energy_
private

Minimum energy of cross section table

Definition at line 232 of file GGEMSRangeCuts.hh.

◆ number_of_bins_

GGsize GGEMSRangeCuts::number_of_bins_
private

Number of bins in cross section table

Definition at line 234 of file GGEMSRangeCuts.hh.

◆ number_of_tables_

GGsize GGEMSRangeCuts::number_of_tables_
private

Number of tables in loss_table_dedx_table_elements_

Definition at line 250 of file GGEMSRangeCuts.hh.

◆ range_table_material_

GGEMSLogEnergyTable* GGEMSRangeCuts::range_table_material_
private

Table of dE/dX for material

Definition at line 248 of file GGEMSRangeCuts.hh.


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