|
Gaudi Framework, version v21r8 |
| Home | Generated: 17 Mar 2010 |
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