| # Gaudi Framework, version v21r8 |

Home |  | Generated: 17 Mar 2010

# RndmEngine Class Reference

Random Generator engine definition. More...

`#include <RndmEngine.h>`

Inheritance diagram for RndmEngine:

[legend]
Collaboration diagram for RndmEngine:

[legend]

List of all members.

## Public Member Functions
virtual StatusCode | initialize ()
| Service override: initialization.
virtual StatusCode | finalize ()
| Service override: finalization.
virtual double | rndm () const
| Single shot returning single random number.
virtual StatusCode | rndmArray (std::vector< double > &array, long howmany, long start=0) const
| Multiple shots returning vector with flat random numbers.
virtual StreamBuffer & | serialize (StreamBuffer &str)
| Input serialization from stream buffer.
virtual StreamBuffer & | serialize (StreamBuffer &str) const
| Output serialization to stream buffer.
virtual void | handle (const Incident &inc)
| Inform that a new incident has occurred.
## Protected Member Functions
| RndmEngine (const std::string &name, ISvcLocator *loc)
| Standard Constructor.
virtual | ~RndmEngine ()
| Standard Destructor.
## Protected Attributes
SmartIF< IIncidentSvc > | m_pIncidentSvc
| Reference to the incident service.

## 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.

    00032 : base_class(name, loc)
    00033 {
    00034 }

RndmEngine::~RndmEngine | ( |  | ) | `[protected, virtual]`

Standard Destructor.

Standard Service destructor.

Definition at line 37 of file RndmEngine.cpp.

    00037                           {
    00038 }

## Member Function Documentation

StatusCode RndmEngine::initialize | ( |  | ) | `[virtual]`

Service override: initialization.

Reimplemented from Service.

Reimplemented in HepRndm::Engine< TYPE >.

Definition at line 41 of file RndmEngine.cpp.

    00041                                     {
    00042   StatusCode status = Service::initialize();
    00043   if ( status.isSuccess() )   {
    00044     status = setProperties();
    00045     if ( status.isSuccess() )   {
    00046       m_pIncidentSvc = serviceLocator()->service("IncidentSvc");
    00047       if (!m_pIncidentSvc.isValid()) {
    00048         status = StatusCode::FAILURE;
    00049       }
    00050     }
    00051   }
    00052   return status;
    00053 }

StatusCode RndmEngine::finalize | ( | void |  | ) | `[virtual]`

Service override: finalization.

Reimplemented from Service.

Reimplemented in HepRndm::Engine< TYPE >.

Definition at line 56 of file RndmEngine.cpp.

    00056                                   {
    00057   m_pIncidentSvc = 0; // release
    00058   return Service::finalize();
    00059 }

double RndmEngine::rndm | ( |  | ) | const`[virtual]`

Single shot returning single random number.

Reimplemented in HepRndm::Engine< TYPE >.

Definition at line 73 of file RndmEngine.cpp.

    00073                                 {
    00074   return DBL_MAX;
    00075 }

StatusCode RndmEngine::rndmArray | ( | std::vector< double > & | array,
|  | long | howmany,
|  | long | start = `0` |
| ) |  |  | const`[virtual]`

Multiple shots returning vector with flat random numbers.

Parameters:

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

Returns:
  StatusCode indicating failure or success.

Parameters:

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

Returns:
  StatusCode indicating failure or success.

Definition at line 87 of file RndmEngine.cpp.

    00087                                                                                             {
    00088   long cnt = start;
    00089   array.resize(start+howmany);
    00090   for ( long i = start, num = start+howmany; i < num; i++ )     {
    00091     array[cnt++] = rndm();
    00092   }
    00093   return StatusCode::SUCCESS;
    00094 }

StreamBuffer & RndmEngine::serialize | ( | StreamBuffer & | str | ) | `[virtual]`

Input serialization from stream buffer.

IRndmEngine interface implementation.

Restores the status of the object.

Parameters:

  | str | Reference 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.

    00063                                                         {
    00064   return str;
    00065 }

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:

  | str | Reference to Streambuffer to be read

Returns:
  Reference to read stream buffer

Definition at line 68 of file RndmEngine.cpp.

    00068                                                               {
    00069   return str;
    00070 }

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.

    00078                                                       {
    00079 }

## 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:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v21r8/GaudiSvc/src/RndmGenSvc/RndmEngine.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v21r8/GaudiSvc/src/RndmGenSvc/RndmEngine.cpp