00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/IRndmEngine.h,v 1.2 2001/01/19 14:22:55 mato Exp $ 00002 #ifndef GAUDIKERNEL_IRNDMENGINE_H 00003 #define GAUDIKERNEL_IRNDMENGINE_H 00004 00005 // STL include files 00006 #include <vector> 00007 00008 // Framework include files 00009 #include "GaudiKernel/IInterface.h" 00010 00011 // Declaration of the interface ID ( interface id, major version, minor version) 00012 static const InterfaceID IID_IRndmEngine(142, 1 , 0); 00013 00023 class IRndmEngine : virtual public IInterface { 00024 public: 00026 static const InterfaceID& interfaceID() { return IID_IRndmEngine; } 00028 virtual double rndm() const = 0; 00035 virtual StatusCode rndmArray( std::vector<double>& array, long howmany, long start = 0) const = 0; 00037 virtual StatusCode setSeeds(const std::vector<long>& seeds) = 0; 00039 virtual StatusCode seeds(std::vector<long>& seeds) const = 0; 00040 00042 virtual StatusCode setRndmState(const std::vector<unsigned long>& state) = 0; 00043 00045 virtual StatusCode rndmState(std::vector<unsigned long>& state) const = 0; 00046 }; 00047 00048 #endif // GAUDI_INTERFACES_IRNDMENGINE_H