| # Gaudi Framework, version v21r10p1 |

Home |  | Generated: 29 Jul 2010

# IRndmGen.h

Go to the documentation of this file.

    00001 // $Header: /tmp/svngaudi/tmp.jEpFh25751/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_IRndmBit(150, 1, 0);
    00014 static const InterfaceID IID_IRndmFlat(151, 1, 0);
    00015 static const InterfaceID IID_IRndmChi2(152, 1, 0);
    00016 static const InterfaceID IID_IRndmGamma(153, 1, 0);
    00017 static const InterfaceID IID_IRndmGauss(154, 1, 0);
    00018 static const InterfaceID IID_IRndmLandau(155, 1, 0);
    00019 static const InterfaceID IID_IRndmPoisson(156, 1, 0);
    00020 static const InterfaceID IID_IRndmStudentT(157, 1, 0);
    00021 static const InterfaceID IID_IRndmBinomial(158, 1, 0);
    00022 static const InterfaceID IID_IRndmExponential(159, 1, 0);
    00023 static const InterfaceID IID_IRndmBreitWigner(160, 1, 0);
    00024 static const InterfaceID IID_IRndmBreitWignerCutOff(161, 1, 0);
    00025 static const InterfaceID IID_IRndmDefinedPdf(162, 1, 0);
    00026 static const InterfaceID IID_IRndmGaussianTail(163, 1, 0);
    00027
    00028
    00036 class GAUDI_API IRndmGen: virtual public IInterface {
    00037 public:
    00039   DeclareInterfaceID(IRndmGen,2,0);
    00040
    00041   class Param {
    00042   protected:
    00044     const InterfaceID  m_type;
    00045   public:
    00047     Param( const InterfaceID& type = IID_IRndmFlat ) : m_type(type) {}
    00049     virtual ~Param() {}
    00051     virtual const InterfaceID& type() const { return m_type; }
    00053     virtual Param* clone() const = 0;
    00054   };
    00055
    00057   virtual StatusCode initialize(const IRndmGen::Param& par) = 0;
    00059   virtual StatusCode finalize() = 0;
    00061   virtual const InterfaceID& type() const = 0;
    00063   virtual long ID() const = 0;
    00065   virtual const IRndmGen::Param* parameters() const = 0;
    00067   virtual double shoot() const = 0;
    00074   virtual StatusCode shootArray( std::vector<double>& array, long howmany, long start = 0) const = 0;
    00075
    00077   virtual ~IRndmGen() {}
    00078
    00079 };
    00080
    00081 #endif // GAUDIKERNEL_IRNDMGEN_H