Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RndmGen.h
Go to the documentation of this file.
1 //====================================================================
2 // Random RndmGen class definition
3 //--------------------------------------------------------------------
4 //
5 // Package : Gaudi/RndmGen ( The LHCb Offline System)
6 // Author : M.Frank
7 //====================================================================
8 #ifndef GAUDI_RANDOMGENSVC_RNDMGEN_H
9 #define GAUDI_RANDOMGENSVC_RNDMGEN_H 1
10 
11 #include <memory>
12 // Framework include files
13 #include "GaudiKernel/IRndmGen.h"
14 #include "GaudiKernel/SmartIF.h"
15 
16 // Forward declarations
17 class IRndmEngine;
18 
41 class RndmGen : public implements<IRndmGen> {
42 
43 protected:
48 
50  RndmGen( IInterface* engine );
51 
52 public:
54  StatusCode initialize( const IRndmGen::Param& par ) override;
57  StatusCode finalize() override;
59  const InterfaceID& type() const override { return ( m_params != 0 ) ? m_params->type() : IID_IRndmFlat; }
61  long ID() const override { return long( this ); }
63  const IRndmGen::Param* parameters() const override { return m_params.get(); }
69  StatusCode shootArray( std::vector<double>& array, long howmany, long start ) const override;
70 };
71 
72 #endif // GAUDI_RANDOMGENSVC_RNDMGEN_H
Base class used to implement the interfaces.
Definition: implements.h:9
RndmGen(IInterface *engine)
Standard Constructor.
Definition: RndmGen.cpp:23
virtual const InterfaceID & type() const
Parameter&#39;s type.
Definition: IRndmGen.h:50
const InterfaceID & type() const override
Random number generator type.
Definition: RndmGen.h:59
long ID() const override
Random number generator ID.
Definition: RndmGen.h:61
const IRndmGen::Param * parameters() const override
Access to random number generator parameters.
Definition: RndmGen.h:63
Interface ID class.
Definition: IInterface.h:29
SmartIF< IRndmEngine > m_engine
Hosting service: Access must always be possible.
Definition: RndmGen.h:47
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
StatusCode shootArray(std::vector< double > &array, long howmany, long start) const override
Multiple shots returning vector with random number according to specified distribution.
Definition: RndmGen.cpp:34
Definition of the basic interface.
Definition: IInterface.h:244
StatusCode initialize(const IRndmGen::Param &par) override
IRndmGen implementation.
Definition: RndmGen.cpp:26
start
Definition: IOTest.py:97
Random Generator definition.
Definition: RndmGen.h:41
StatusCode finalize() override
Finalize the generator.
Definition: RndmGen.cpp:31
T get(T...args)
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
std::unique_ptr< IRndmGen::Param > m_params
Generation parameters.
Definition: RndmGen.h:45
Definition of a interface for a generic random number generator giving randomly distributed numbers i...
Definition: IRndmEngine.h:19