| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RndmGen Class Reference

Random Generator definition. More...

`#include <src/RndmGenSvc/RndmGen.h>`

Inheritance diagram for RndmGen:
[legend]
Collaboration diagram for RndmGen:
[legend]

## Public Member Functions
StatusCode | initialize (const IRndmGen::Param &par) override
| IRndmGen implementation. More...
StatusCode | finalize () override
| Finalize the generator. More...
const InterfaceID & | type () const override
| Random number generator type. More...
long | ID () const override
| Random number generator ID. More...
const IRndmGen::Param * | parameters () const override
| Access to random number generator parameters. More...
StatusCode | shootArray (std::vector< double > &array, long howmany, long start) const override
| Multiple shots returning vector with random number according to specified distribution. More...
Public Member Functions inherited from implements< IRndmGen >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| implements ()=default
| Default constructor. More...
| implements (const implements &)
| Copy constructor (zero the reference count) More...
implements & | operator= (const implements &)
| Assignment operator (do not touch the reference count). More...
unsigned long | addRef () override
| Reference Interface instance. More...
unsigned long | release () override
| Release Interface instance. More...
unsigned long | refCount () const override
| Current reference count. More...

## Protected Member Functions
| RndmGen (IInterface *engine)
| Standard Constructor. More...

## Protected Attributes
std::unique_ptr< IRndmGen::Param > | m_params
| Generation parameters. More...
SmartIF< IRndmEngine > | m_engine
| Hosting service: Access must always be possible. More...
Protected Attributes inherited from implements< IRndmGen >
std::atomic_ulong | m_refCount
| Reference counter. More...

## Additional Inherited Members
Public Types inherited from implements< IRndmGen >
using | base_class = implements< Interfaces... >
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
using | iids = typename extend_interfaces_base::ext_iids
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...

## Detailed Description

Random Generator definition.

Description: Definition of a interface for a generic random number generators.

Dependencies:

- Generic Service interface: Gaudi/Interfaces/IInterface.h

History :

    +---------+----------------------------------------------+--------+
    |    Date |                 Comment                      | Who    |
    +---------+----------------------------------------------+--------+
    | 21/11/99| Initial version.                             | MF     |
    +---------+----------------------------------------------+--------+

Author: M.Frank Version: 1.0

Definition at line 41 of file RndmGen.h.

## Constructor & Destructor Documentation

## ◆ RndmGen()

RndmGen::RndmGen | ( | IInterface * | engine | ) |
| protected

Standard Constructor.

Definition at line 23 of file RndmGen.cpp.

23 : m_engine{engine} {}
RndmGen::m_engine
SmartIF< IRndmEngine > m_engine
Hosting service: Access must always be possible.
Definition: RndmGen.h:47

## Member Function Documentation

## ◆ finalize()

StatusCode RndmGen::finalize | ( |  | ) |
| override

Finalize the generator.

Definition at line 31 of file RndmGen.cpp.

31 { return StatusCode::SUCCESS; }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85

## ◆ ID()

long RndmGen::ID | ( |  | ) | const
| inline override

Random number generator ID.

Definition at line 61 of file RndmGen.h.

61 { return long( this ); }

## ◆ initialize()

StatusCode RndmGen::initialize | ( | const IRndmGen::Param & | par | ) |
| override

IRndmGen implementation.

Initialize the generator.

Initialize the generator

Definition at line 26 of file RndmGen.cpp.

26 {
27 m_params.reset( par.clone() );
28 return m_engine ? StatusCode::SUCCESS : StatusCode::FAILURE;
29 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
compareOutputFiles.par
string par
Definition: compareOutputFiles.py:465
RndmGen::m_engine
SmartIF< IRndmEngine > m_engine
Hosting service: Access must always be possible.
Definition: RndmGen.h:47
std::unique_ptr::reset
T reset(T... args)
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
RndmGen::m_params
std::unique_ptr< IRndmGen::Param > m_params
Generation parameters.
Definition: RndmGen.h:45

## ◆ parameters()

const IRndmGen::Param* RndmGen::parameters | ( |  | ) | const
| inline override

Access to random number generator parameters.

Definition at line 63 of file RndmGen.h.

63 { return m_params.get(); }
std::unique_ptr::get
T get(T... args)
RndmGen::m_params
std::unique_ptr< IRndmGen::Param > m_params
Generation parameters.
Definition: RndmGen.h:45

## ◆ shootArray()

StatusCode RndmGen::shootArray | ( | std::vector< double > & | array,
|  | long | howmany,
|  | long | start
| ) |  | const
| override

Multiple shots returning vector with random number according to specified distribution.

Parameters

  array | Array containing random numbers
  howmany | fill 'howmany' random numbers into array
  start | ... starting at position start

Definition at line 34 of file RndmGen.cpp.

34 {
35 if ( !m_engine ) return StatusCode::FAILURE;
36 array.resize( start + howmany );
37 std::generate_n( std::next( std::begin( array ), start ), howmany, [&]() { return this->shoot(); } );
38 return StatusCode::SUCCESS;
39 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IOTest.start
def start
Definition: IOTest.py:97
RndmGen::m_engine
SmartIF< IRndmEngine > m_engine
Hosting service: Access must always be possible.
Definition: RndmGen.h:47
std::next
T next(T... args)
std::generate_n
T generate_n(T... args)
Containers::array
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
Definition: KeyedObjectManager.h:27
std::begin
T begin(T... args)
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ type()

const InterfaceID& RndmGen::type | ( |  | ) | const
| inline override

Random number generator type.

Definition at line 59 of file RndmGen.h.

59 { return ( m_params != 0 ) ? m_params->type() : IID_IRndmFlat; }
IRndmGen::Param::type
virtual const InterfaceID & type() const
Parameter's type.
Definition: IRndmGen.h:50
RndmGen::m_params
std::unique_ptr< IRndmGen::Param > m_params
Generation parameters.
Definition: RndmGen.h:45

## Member Data Documentation

## ◆ m_engine

SmartIF<IRndmEngine> RndmGen::m_engine
| protected

Hosting service: Access must always be possible.

Definition at line 47 of file RndmGen.h.

## ◆ m_params

std::unique_ptr<IRndmGen::Param> RndmGen::m_params
| protected

Generation parameters.

Definition at line 45 of file RndmGen.h.

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

- GaudiSvc/src/RndmGenSvc/RndmGen.h
- GaudiSvc/src/RndmGenSvc/RndmGen.cpp