00001 // $Id: IFuncMinimum.h,v 1.4 2005/01/10 14:35:09 mato Exp $ 00002 // ============================================================================= 00003 #ifndef GAUDIGSL_IFUNCMINIMUM_H 00004 #define GAUDIGSL_IFUNCMINIMUM_H 1 00005 // Include files 00006 // from STL 00007 #include <vector> 00008 #include <string> 00009 // from Gaudi 00010 #include "GaudiKernel/IAlgTool.h" 00011 00012 // forward declarations 00013 namespace Genfun 00014 { 00015 class AbsFunction ; 00016 class Argument ; 00017 }; 00018 namespace CLHEP { 00019 class HepSymMatrix ; 00020 } 00025 static const InterfaceID IID_IFuncMinimum("IFuncMinimum", 1 , 0); 00026 00034 class IFuncMinimum : virtual public IAlgTool 00035 00036 { 00037 public: 00038 00040 typedef Genfun::AbsFunction GenFunc ; 00042 typedef Genfun::Argument Arg ; 00044 typedef CLHEP::HepSymMatrix Covariance; 00045 00046 public: 00047 00049 static const InterfaceID& interfaceID() { return IID_IFuncMinimum; } 00050 00052 00058 virtual StatusCode minimum( const GenFunc& fun , 00059 Arg& pars ) const = 0 ; 00060 00068 virtual StatusCode minimum( const GenFunc& fun , 00069 Arg& pars , 00070 Covariance& covar ) const = 0 ; 00071 00072 protected: 00073 00074 private: 00075 00076 }; 00077 #endif // GAUDIGSL_IFUNCMINIMUM_H