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

Class managing the random number in GGEMS. More...

#include "GGEMSPseudoRandomGenerator.hh"

Collaboration diagram for GGEMSPseudoRandomGenerator:
Collaboration graph

Public Member Functions

 GGEMSPseudoRandomGenerator (void)
 GGEMSPseudoRandomGenerator constructor. More...
 
 ~GGEMSPseudoRandomGenerator (void)
 GGEMSPseudoRandomGenerator destructor. More...
 
 GGEMSPseudoRandomGenerator (GGEMSPseudoRandomGenerator const &random)=delete
 Avoid copy of the class by reference. More...
 
GGEMSPseudoRandomGeneratoroperator= (GGEMSPseudoRandomGenerator const &random)=delete
 Avoid assignement of the class by reference. More...
 
 GGEMSPseudoRandomGenerator (GGEMSPseudoRandomGenerator const &&random)=delete
 Avoid copy of the class by rvalue reference. More...
 
GGEMSPseudoRandomGeneratoroperator= (GGEMSPseudoRandomGenerator const &&random)=delete
 Avoid copy of the class by rvalue reference. More...
 
void Initialize (GGuint const &seed)
 Initialize the Random object. More...
 
void SetSeed (GGuint const &seed)
 set the initial seed More...
 
void PrintInfos (void) const
 printing infos about random More...
 
cl::Buffer * GetPseudoRandomNumbers (GGsize const &thread_index) const
 return the pointer to OpenCL buffer storing random numbers More...
 

Private Member Functions

void AllocateRandom (void)
 Allocate memory for random numbers. More...
 
void InitializeSeeds (void)
 Initialize seeds for random. More...
 
GGuint GenerateSeed (void) const
 generate a seed by GGEMS and return it More...
 

Private Attributes

cl::Buffer ** pseudo_random_numbers_
 
GGsize number_activated_devices_
 
GGuint seed_
 

Detailed Description

Class managing the random number in GGEMS.

Definition at line 41 of file GGEMSPseudoRandomGenerator.hh.

Constructor & Destructor Documentation

◆ GGEMSPseudoRandomGenerator() [1/3]

GGEMSPseudoRandomGenerator::GGEMSPseudoRandomGenerator ( void  )

GGEMSPseudoRandomGenerator constructor.

Definition at line 51 of file GGEMSPseudoRandomGenerator.cc.

◆ ~GGEMSPseudoRandomGenerator()

GGEMSPseudoRandomGenerator::~GGEMSPseudoRandomGenerator ( void  )

GGEMSPseudoRandomGenerator destructor.

Definition at line 64 of file GGEMSPseudoRandomGenerator.cc.

◆ GGEMSPseudoRandomGenerator() [2/3]

GGEMSPseudoRandomGenerator::GGEMSPseudoRandomGenerator ( GGEMSPseudoRandomGenerator const &  random)
delete

Avoid copy of the class by reference.

Parameters
random- reference on the random

◆ GGEMSPseudoRandomGenerator() [3/3]

GGEMSPseudoRandomGenerator::GGEMSPseudoRandomGenerator ( GGEMSPseudoRandomGenerator const &&  random)
delete

Avoid copy of the class by rvalue reference.

Parameters
random- rvalue reference on the random

Member Function Documentation

◆ AllocateRandom()

void GGEMSPseudoRandomGenerator::AllocateRandom ( void  )
private

Allocate memory for random numbers.

Definition at line 113 of file GGEMSPseudoRandomGenerator.hh.

◆ GenerateSeed()

GGuint GGEMSPseudoRandomGenerator::GenerateSeed ( void  ) const
private

generate a seed by GGEMS and return it

Returns
the seed computed by GGEMS

Definition at line 85 of file GGEMSPseudoRandomGenerator.cc.

◆ GetPseudoRandomNumbers()

cl::Buffer * GGEMSPseudoRandomGenerator::GetPseudoRandomNumbers ( GGsize const &  thread_index) const
inline

return the pointer to OpenCL buffer storing random numbers

Parameters
thread_index- index of activated device (thread index)
Returns
pointer to OpenCL buffer storing random numbers

Definition at line 109 of file GGEMSPseudoRandomGenerator.hh.

◆ Initialize()

void GGEMSPseudoRandomGenerator::Initialize ( GGuint const &  seed)

Initialize the Random object.

Parameters
seed- seed of the random

Definition at line 123 of file GGEMSPseudoRandomGenerator.cc.

◆ InitializeSeeds()

void GGEMSPseudoRandomGenerator::InitializeSeeds ( void  )
private

Initialize seeds for random.

Definition at line 140 of file GGEMSPseudoRandomGenerator.cc.

◆ operator=() [1/2]

GGEMSPseudoRandomGenerator & GGEMSPseudoRandomGenerator::operator= ( GGEMSPseudoRandomGenerator const &&  random)
delete

Avoid copy of the class by rvalue reference.

Parameters
random- rvalue reference on the random

◆ operator=() [2/2]

GGEMSPseudoRandomGenerator & GGEMSPseudoRandomGenerator::operator= ( GGEMSPseudoRandomGenerator const &  random)
delete

Avoid assignement of the class by reference.

Parameters
random- reference on the random

◆ PrintInfos()

void GGEMSPseudoRandomGenerator::PrintInfos ( void  ) const

printing infos about random

Definition at line 194 of file GGEMSPseudoRandomGenerator.cc.

◆ SetSeed()

void GGEMSPseudoRandomGenerator::SetSeed ( GGuint const &  seed)

set the initial seed

Parameters
seed- seed of random

Member Data Documentation

◆ number_activated_devices_

GGsize GGEMSPseudoRandomGenerator::number_activated_devices_
private

Number of activated device

Definition at line 133 of file GGEMSPseudoRandomGenerator.hh.

◆ pseudo_random_numbers_

cl::Buffer** GGEMSPseudoRandomGenerator::pseudo_random_numbers_
private

Pointer storing the buffer about random numbers in activated device

Definition at line 132 of file GGEMSPseudoRandomGenerator.hh.

◆ seed_

GGuint GGEMSPseudoRandomGenerator::seed_
private

Initial seed generating state of GGEMS random

Definition at line 134 of file GGEMSPseudoRandomGenerator.hh.


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