| # Gaudi Framework, version v22r2 |

Home |  | Generated: Tue May 10 2011

Public Member Functions | Protected Member Functions | Protected Attributes

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

    : base_class(name, loc)
    {
    }

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

Standard Destructor.

Standard Service destructor.

Definition at line 37 of file RndmEngine.cpp.

                              {
    }

## Member Function Documentation

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

Service override: finalization.

Reimplemented from Service.

Reimplemented in HepRndm::Engine< TYPE >.

Definition at line 56 of file RndmEngine.cpp.

                                      {
      m_pIncidentSvc = 0; // release
      return Service::finalize();
    }

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.

                                                          {
    }

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

Service override: initialization.

Reimplemented from Service.

Reimplemented in HepRndm::Engine< TYPE >.

Definition at line 41 of file RndmEngine.cpp.

                                        {
      StatusCode status = Service::initialize();
      if ( status.isSuccess() )   {
        status = setProperties();
        if ( status.isSuccess() )   {
          m_pIncidentSvc = serviceLocator()->service("IncidentSvc");
          if (!m_pIncidentSvc.isValid()) {
            status = StatusCode::FAILURE;
          }
        }
      }
      return status;
    }

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

Single shot returning single random number.

Reimplemented in HepRndm::Engine< TYPE >.

Definition at line 73 of file RndmEngine.cpp.

                                    {
      return DBL_MAX;
    }

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.

Definition at line 87 of file RndmEngine.cpp.

                                                                                                {
      long cnt = start;
      array.resize(start+howmany);
      for ( long i = start, num = start+howmany; i < num; i++ )     {
        array[cnt++] = rndm();
      }
      return StatusCode::SUCCESS;
    }

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.

                                                            {
      return str;
    }

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.

                                                                  {
      return str;
    }

## 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_v22r2/GaudiSvc/src/RndmGenSvc/RndmEngine.h
- /afs/.cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v22r2/GaudiSvc/src/RndmGenSvc/RndmEngine.cpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines