All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
FuncMinimum.h
Go to the documentation of this file.
1 // $Id: FuncMinimum.h,v 1.3 2006/11/30 10:40:53 mato Exp $
2 // ============================================================================
3 #ifndef ALGTOOLS_FUNCMINIMUM_H
4 #define ALGTOOLS_FUNCMINIMUM_H 1
5 // Include files
6 // from CLHEP
7 #include "CLHEP/GenericFunctions/GenericFunctions.hh"
8 #include "CLHEP/GenericFunctions/Argument.hh"
9 #include "CLHEP/GenericFunctions/AbsFunction.hh"
10 #include "CLHEP/Matrix/SymMatrix.h"
11 // from Gaudi
12 #include "GaudiAlg/GaudiTool.h"
13 //from GSL
14 #include "gsl/gsl_multimin.h"
15 
16 // local
17 #include "GaudiGSL/IFuncMinimum.h"
18 
26 class FuncMinimum : public extends1<GaudiTool, IFuncMinimum> {
27 public:
28  typedef std::vector<const GenFunc*> Gradient;
29 public:
30 
35  virtual StatusCode minimum( const GenFunc& func ,
36  Arg& arg ) const;
37 
42  virtual StatusCode minimum( const GenFunc& func ,
43  Arg& arg ,
44  Covariance& covar ) const;
45 
47  virtual StatusCode initialize ();
48  virtual StatusCode finalize ();
49 
50  virtual ~FuncMinimum( );
51 
53  {
54  public:
58  FuncMinimumMisc (const GenFunc& func ,
59  Arg& arg );
60  // destructor
61  ~FuncMinimumMisc () ;
62 
63  public:
64  inline const Arg& argument () const { return m_argum ;}
65  inline Arg& argument () { return m_argum ;}
66  inline const GenFunc* equation () const { return m_eq ;}
67  inline const Gradient& gradient () const { return m_grad ;}
68  private:
69  // default constructor is disabled
70  FuncMinimumMisc () ;
71  // copy constructor is disabled
73  // assignment operator is disabled
75  private:
77  const GenFunc* m_eq ;
79  };
80 
81 
88  FuncMinimum( const std::string& type,
89  const std::string& name,
90  const IInterface* parent);
91 
92 private:
93 
95  FuncMinimum();
97  FuncMinimum ( const FuncMinimum& );
100 
101 private:
102 
103  std::string m_algType ;
104  double m_max_iter ;
106  double m_step_size ;
107  double m_tol ;
108  const gsl_multimin_fdfminimizer_type* m_type ;
109 };
110 
111 // ============================================================================
112 // The END
113 // ============================================================================
114 #endif // ALGTOOLS_FUNCMINIMUM_H
115 // ============================================================================
double m_norm_gradient
Definition: FuncMinimum.h:105
Header file for class GaudiAlgorithm.
FuncMinimumMisc & operator=(const FuncMinimumMisc &)
virtual const std::string & type() const
Retrieve type (concrete class) of the sub-algtool.
Definition: AlgTool.cpp:58
virtual StatusCode minimum(const GenFunc &func, Arg &arg) const
Find minimum of the function "GenFunc".
Genfun::Argument Arg
Argument of function "GenFunc" (.
Definition: IFuncMinimum.h:37
virtual StatusCode initialize()
Overriding initialize.
const Arg & argument() const
Definition: FuncMinimum.h:64
std::vector< const GenFunc * > Gradient
Definition: FuncMinimum.h:28
double m_tol
Definition: FuncMinimum.h:107
const GenFunc * equation() const
Definition: FuncMinimum.h:66
const gsl_multimin_fdfminimizer_type * m_type
Definition: FuncMinimum.h:108
virtual ~FuncMinimum()
Destructor.
double m_step_size
Definition: FuncMinimum.h:106
Genfun::AbsFunction GenFunc
Function which we minimize (.
Definition: IFuncMinimum.h:35
FuncMinimum & operator=(const FuncMinimum &)
assignment operator is
std::string m_algType
Definition: FuncMinimum.h:103
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
Definition of the basic interface.
Definition: IInterface.h:160
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
The simplest concrete implementation of IFuncMinimum interface.
Definition: FuncMinimum.h:26
const Gradient & gradient() const
Definition: FuncMinimum.h:67
CLHEP::HepSymMatrix Covariance
Covariance matrix (matrix of error) (.
Definition: IFuncMinimum.h:39
virtual const IInterface * parent() const
Retrieve parent of the sub-algtool.
Definition: AlgTool.cpp:65
double m_max_iter
Definition: FuncMinimum.h:104
virtual const std::string & name() const
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:51
virtual StatusCode finalize()
standard finalization method
FuncMinimum()
default constructor is private