RndmGen.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef GAUDI_RANDOMGENSVC_RNDMGEN_H
00009 #define GAUDI_RANDOMGENSVC_RNDMGEN_H 1
00010
00011
00012 #include "GaudiKernel/IRndmGen.h"
00013
00014
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