| # Gaudi Framework, version v21r7 |

Home |  | Generated: 22 Jan 2010

# RndmGen.h

Go to the documentation of this file.

    00001 //====================================================================
    00002 //      Random RndmGen class definition
    00003 //--------------------------------------------------------------------
    00004 //
    00005 //      Package    : Gaudi/RndmGen ( The LHCb Offline System)
    00006 //      Author     : M.Frank
    00007 //====================================================================
    00008 #ifndef GAUDI_RANDOMGENSVC_RNDMGEN_H
    00009 #define GAUDI_RANDOMGENSVC_RNDMGEN_H 1
    00010
    00011 // Framework include files
    00012 #include "GaudiKernel/IRndmGen.h"
    00013
    00014 // Forward declarations
    00015 class IRndmEngine;
    00016
    00039 class RndmGen : public implements1<IRndmGen> {
    00040
    00041 protected:
    00043   IRndmGen::Param*  m_params;
    00045   IRndmEngine*      m_engine;
    00046
    00048   RndmGen(IInterface* engine);
    00050   virtual ~RndmGen();
    00051
    00052 public:
    00053
    00055
    00056   virtual StatusCode initialize(const IRndmGen::Param& par);
    00058   virtual StatusCode finalize();
    00060   virtual const InterfaceID& type() const    {
    00061     return (m_params != 0) ? m_params->type() : IID_IRndmFlat;
    00062   }
    00064   virtual long ID() const    {
    00065     return long(this);
    00066   }
    00068   virtual const IRndmGen::Param* parameters() const    {
    00069     return m_params;
    00070   }
    00072   virtual double shoot() const;
    00078   virtual StatusCode shootArray( std::vector<double>& array, long howmany, long start) const;
    00079 };
    00080
    00081 #endif // GAUDI_RANDOMGENSVC_RNDMGEN_H