| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# IRndmGen.h

Go to the documentation of this file.

    00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/IRndmGen.h,v 1.5 2008/10/27 19:22:20 marcocle Exp $
    00002 #ifndef GAUDIKERNEL_IRNDMGEN_H
    00003 #define GAUDIKERNEL_IRNDMGEN_H
    00004
    00005 // STL include files
    00006 #include <string>
    00007 #include <vector>
    00008
    00009 // Framework include files
    00010 #include "GaudiKernel/IInterface.h"
    00011
    00012 // Declaration of the interface ID ( interface id, major version, minor version)
    00013 static const InterfaceID IID_IRndmGen(140, 1, 0);
    00014 static const InterfaceID IID_IRndmBit(150, 1, 0);
    00015 static const InterfaceID IID_IRndmFlat(151, 1, 0);
    00016 static const InterfaceID IID_IRndmChi2(152, 1, 0);
    00017 static const InterfaceID IID_IRndmGamma(153, 1, 0);
    00018 static const InterfaceID IID_IRndmGauss(154, 1, 0);
    00019 static const InterfaceID IID_IRndmLandau(155, 1, 0);
    00020 static const InterfaceID IID_IRndmPoisson(156, 1, 0);
    00021 static const InterfaceID IID_IRndmStudentT(157, 1, 0);
    00022 static const InterfaceID IID_IRndmBinomial(158, 1, 0);
    00023 static const InterfaceID IID_IRndmExponential(159, 1, 0);
    00024 static const InterfaceID IID_IRndmBreitWigner(160, 1, 0);
    00025 static const InterfaceID IID_IRndmBreitWignerCutOff(161, 1, 0);
    00026 static const InterfaceID IID_IRndmDefinedPdf(162, 1, 0);
    00027 static const InterfaceID IID_IRndmGaussianTail(163, 1, 0);
    00028
    00029
    00037 class IRndmGen : virtual public IInterface    {
    00038 public:
    00039
    00040   class Param     {
    00041   protected:
    00043     const InterfaceID  m_type;
    00044   public:
    00046     Param( const InterfaceID& type = IID_IRndmFlat ) : m_type(type) {
    00047     }
    00049     virtual ~Param()    {
    00050     }
    00052     virtual const InterfaceID& type() const   {
    00053       return m_type;
    00054     }
    00056     virtual Param* clone()  const = 0;
    00057   };
    00058
    00060   static const InterfaceID& interfaceID() { return IID_IRndmGen; }
    00062   virtual StatusCode initialize(const IRndmGen::Param& par) = 0;
    00064   virtual StatusCode finalize() = 0;
    00066   virtual const InterfaceID& type() const = 0;
    00068   virtual long ID() const = 0;
    00070   virtual const IRndmGen::Param* parameters() const = 0;
    00072   virtual double shoot() const = 0;
    00079   virtual StatusCode shootArray( std::vector<double>& array, long howmany, long start = 0) const = 0;
    00080 };
    00081
    00082 #endif // GAUDIKERNEL_IRNDMGEN_H