Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
Loading...
Searching...
No Matches
Garfield::RandomEngine< Engine, SeedType > Class Template Reference

Abstract base class for random number generators. More...

#include <RandomEngine.hh>

Public Types

using seed_t = SeedType
using engine_t = Engine

Public Member Functions

 RandomEngine ()=default
 RandomEngine (const SeedType &seed)
void SetSeed (const seed_t &seed)
 Initialise the random number generator.
double operator() ()
 Draw a random number.
double Draw ()
 Draw a random number.
seed_t GetSeed ()
 Retrieve the seed that was used.
void Print ()
 Print some information about the random number generator.

Protected Attributes

seed_t m_seed {0}

Detailed Description

template<typename Engine, typename SeedType>
class Garfield::RandomEngine< Engine, SeedType >

Abstract base class for random number generators.

Definition at line 8 of file RandomEngine.hh.

Member Typedef Documentation

◆ engine_t

template<typename Engine, typename SeedType>
using Garfield::RandomEngine< Engine, SeedType >::engine_t = Engine

Definition at line 11 of file RandomEngine.hh.

◆ seed_t

template<typename Engine, typename SeedType>
using Garfield::RandomEngine< Engine, SeedType >::seed_t = SeedType

Definition at line 10 of file RandomEngine.hh.

Constructor & Destructor Documentation

◆ RandomEngine() [1/2]

template<typename Engine, typename SeedType>
Garfield::RandomEngine< Engine, SeedType >::RandomEngine ( )
default

◆ RandomEngine() [2/2]

template<typename Engine, typename SeedType>
Garfield::RandomEngine< Engine, SeedType >::RandomEngine ( const SeedType & seed)
inline

Definition at line 13 of file RandomEngine.hh.

13{ this->SetSeed(seed); }
Abstract base class for random number generators.
void SetSeed(const seed_t &seed)
Initialise the random number generator.

Member Function Documentation

◆ Draw()

template<typename Engine, typename SeedType>
double Garfield::RandomEngine< Engine, SeedType >::Draw ( )
inline

Draw a random number.

Definition at line 22 of file RandomEngine.hh.

22{ return static_cast<Engine*>(this)->Draw(); }
double Draw()
Draw a random number.

◆ GetSeed()

template<typename Engine, typename SeedType>
seed_t Garfield::RandomEngine< Engine, SeedType >::GetSeed ( )
inline

Retrieve the seed that was used.

Definition at line 24 of file RandomEngine.hh.

24{ return static_cast<Engine*>(this)->GetSeed(); }
seed_t GetSeed()
Retrieve the seed that was used.

◆ operator()()

template<typename Engine, typename SeedType>
double Garfield::RandomEngine< Engine, SeedType >::operator() ( )
inline

Draw a random number.

Definition at line 20 of file RandomEngine.hh.

20{ return Draw(); }

◆ Print()

template<typename Engine, typename SeedType>
void Garfield::RandomEngine< Engine, SeedType >::Print ( )
inline

Print some information about the random number generator.

Definition at line 26 of file RandomEngine.hh.

26{ return static_cast<Engine*>(this)->Print(); }
void Print()
Print some information about the random number generator.

◆ SetSeed()

template<typename Engine, typename SeedType>
void Garfield::RandomEngine< Engine, SeedType >::SetSeed ( const seed_t & seed)
inline

Initialise the random number generator.

Definition at line 15 of file RandomEngine.hh.

15 {
16 m_seed = seed;
17 static_cast<Engine*>(this)->SetSeed(m_seed);
18 }

Member Data Documentation

◆ m_seed

template<typename Engine, typename SeedType>
seed_t Garfield::RandomEngine< Engine, SeedType >::m_seed {0}
protected

Definition at line 29 of file RandomEngine.hh.

29{0};

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