RndmEngine Class Reference

Random Generator engine definition. More...

#include <src/RndmGenSvc/RndmEngine.h>

Inheritance diagram for RndmEngine:
Collaboration diagram for RndmEngine:

Public Member Functions

virtual StatusCode initialize ()
 Service override: initialization. More...
 
virtual StatusCode finalize ()
 Service override: finalization. More...
 
virtual double rndm () const
 Single shot returning single random number. More...
 
virtual StatusCode rndmArray (std::vector< double > &array, long howmany, long start=0) const
 Multiple shots returning vector with flat random numbers. More...
 
virtual StreamBufferserialize (StreamBuffer &str)
 Input serialization from stream buffer. More...
 
virtual StreamBufferserialize (StreamBuffer &str) const
 Output serialization to stream buffer. More...
 
virtual void handle (const Incident &inc)
 Inform that a new incident has occurred. More...
 
- Public Member Functions inherited from extends< BASE, Interfaces >
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...
 
 ~extends () override=default
 Virtual destructor. More...
 
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...
 
 ~extends () override=default
 Virtual destructor. More...
 
- Public Member Functions inherited from extend_interfaces< Interfaces...>
 ~extend_interfaces () override=default
 Virtual destructor. More...
 
 ~extend_interfaces () override=default
 Virtual destructor. More...
 

Protected Member Functions

 RndmEngine (const std::string &name, ISvcLocator *loc)
 Standard Constructor. More...
 
virtual ~RndmEngine ()
 Standard Destructor. More...
 

Protected Attributes

SmartIF< IIncidentSvcm_pIncidentSvc
 Reference to the incident service. More...
 

Additional Inherited Members

- Public Types inherited from extends< BASE, Interfaces >
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces...>
 Typedef to the base of this class. More...
 
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces...>
 Typedef to the base of this class. More...
 
- 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...
 
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 engine definition.

Description: Definition of a interface for a generic random number generator giving randomly distributed numbers in the range [0...1] number generators.

Dependencies:

  • Generic Service interface: Gaudi/Interfaces/IRndmEngine.h

History :

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

Author: M.Frank Version: 1.0

Definition at line 46 of file RndmEngine.h.

Constructor & Destructor Documentation

RndmEngine::RndmEngine ( const std::string &  name,
ISvcLocator loc 
)
protected

Standard Constructor.

Standard Service constructor.

Definition at line 31 of file RndmEngine.cpp.

32 : base_class(name, loc)
33 {
34 }
extends base_class
Typedef to this class.
Definition: extends.h:14
RndmEngine::~RndmEngine ( )
protectedvirtual

Standard Destructor.

Standard Service destructor.

Definition at line 37 of file RndmEngine.cpp.

37  {
38 }

Member Function Documentation

StatusCode RndmEngine::finalize ( )
virtual

Service override: finalization.

Reimplemented in HepRndm::BaseEngine, and HepRndm::Engine< TYPE >.

Definition at line 56 of file RndmEngine.cpp.

56  {
57  m_pIncidentSvc = 0; // release
58  return Service::finalize();
59 }
StatusCode finalize() override
Definition: Service.cpp:188
SmartIF< IIncidentSvc > m_pIncidentSvc
Reference to the incident service.
Definition: RndmEngine.h:50
void RndmEngine::handle ( const Incident inc)
virtual

Inform that a new incident has occurred.

Single shot returning single random number.

Definition at line 78 of file RndmEngine.cpp.

78  {
79 }
StatusCode RndmEngine::initialize ( )
virtual

Service override: initialization.

Reimplemented in HepRndm::Engine< TYPE >.

Definition at line 41 of file RndmEngine.cpp.

41  {
43  if ( status.isSuccess() ) {
44  status = setProperties();
45  if ( status.isSuccess() ) {
46  m_pIncidentSvc = serviceLocator()->service("IncidentSvc");
47  if (!m_pIncidentSvc) {
48  status = StatusCode::FAILURE;
49  }
50  }
51  }
52  return status;
53 }
StatusCode initialize() override
Definition: Service.cpp:63
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
SmartIF< IIncidentSvc > m_pIncidentSvc
Reference to the incident service.
Definition: RndmEngine.h:50
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
double RndmEngine::rndm ( ) const
virtual

Single shot returning single random number.

Reimplemented in HepRndm::BaseEngine.

Definition at line 73 of file RndmEngine.cpp.

73  {
74  return DBL_MAX;
75 }
StatusCode RndmEngine::rndmArray ( std::vector< double > &  array,
long  howmany,
long  start = 0 
) const
virtual

Multiple shots returning vector with flat random numbers.

Parameters
arrayArray containing random numbers
howmanyfill 'howmany' random numbers into array
start... starting at position start
Returns
StatusCode indicating failure or success.

Definition at line 87 of file RndmEngine.cpp.

87  {
88  long cnt = start;
89  array.resize(start+howmany);
90  for ( long i = start, num = start+howmany; i < num; i++ ) {
91  array[cnt++] = rndm();
92  }
93  return StatusCode::SUCCESS;
94 }
virtual double rndm() const
Single shot returning single random number.
Definition: RndmEngine.cpp:73
list i
Definition: ana.py:128
tuple start
Definition: IOTest.py:88
StreamBuffer & RndmEngine::serialize ( StreamBuffer str)
virtual

Input serialization from stream buffer.

IRndmEngine interface implementation.

Restores the status of the object.

Parameters
strReference to Streambuffer to be filled
Returns
Reference to filled stream buffer

Input serialization from stream buffer. Restores the status of the generator engine.

Definition at line 63 of file RndmEngine.cpp.

63  {
64  return str;
65 }
StreamBuffer & RndmEngine::serialize ( StreamBuffer str) const
virtual

Output serialization to stream buffer.

Output serialization to stream buffer. Saves the status of the generator engine.

Saves the status of the object.

Parameters
strReference to Streambuffer to be read
Returns
Reference to read stream buffer

Definition at line 68 of file RndmEngine.cpp.

68  {
69  return str;
70 }

Member Data Documentation

SmartIF<IIncidentSvc> RndmEngine::m_pIncidentSvc
protected

Reference to the incident service.

Definition at line 50 of file RndmEngine.h.


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