![]() |
|
|
Generated: 18 Jul 2008 |
00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/IRndmGen.h,v 1.4 2004/07/06 10:17:40 mato 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 const 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