class ROOT::Minuit2::FumiliFCNBase: public ROOT::Minuit2::FCNBase



Extension of the FCNBase for the Fumili method. Fumili applies only to
minimization problems used for fitting. The method is based on a
linearization of the model function negleting second derivatives.
User needs to provide the model function. The figure-of-merit describing
the difference between the model function and the actual measurements
has to be implemented by the user in a subclass of FumiliFCNBase.
For an example see the FumiliChi2FCN and FumiliStandardChi2FCN classes.


@author  Andras Zsenei and Lorenzo Moneta, Creation date: 23 Aug 2004

@see <A HREF="http://www.cern.ch/winkler/minuit/tutorial/mntutorial.pdf">MINUIT Tutorial</A> on function minimization, section 5

@see FumiliChi2FCN

@see FumiliStandardChi2FCN

@ingroup Minuit


Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~FumiliFCNBase()
virtual unsigned intDimension()
virtual doubleROOT::Minuit2::FCNBase::ErrorDef() const
virtual voidEvaluateAll(const vector<double>& par)
virtual const vector<double>&Gradient() const
virtual doubleHessian(unsigned int row, unsigned int col) const
virtual doubleROOT::Minuit2::FCNBase::operator()(const vector<double>& x) const
ROOT::Minuit2::FCNBase&ROOT::Minuit2::FCNBase::operator=(const ROOT::Minuit2::FCNBase&)
virtual voidROOT::Minuit2::FCNBase::SetErrorDef(double)
virtual doubleROOT::Minuit2::FCNBase::Up() const
virtual doubleValue() const
protected:
vector<double>&Gradient()
vector<double>&Hessian()
virtual voidInitAndReset(unsigned int npar)
voidSetFCNValue(double Value)

Data Members

private:
vector<double>fGradient
vector<double>fHessian
const ROOT::Minuit2::ParametricFunction*fModelFunction
unsigned intfNumberOfParameters
doublefValue

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

virtual ~FumiliFCNBase()
   FumiliFCNBase(const ParametricFunction& modelFCN) { fModelFunction = &modelFCN; }
{}
void EvaluateAll(const vector<double>& par)

Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p
The resul is cached inside and is return from the FumiliFCNBase::Value ,  FumiliFCNBase::Gradient and
FumiliFCNBase::Hessian methods

@param par vector of parameters


double Value()
Return cached Value of objective function estimated previously using the  FumiliFCNBase::EvaluateAll method


{ return fValue; }
const std::vector<double> & Gradient()
Return cached Value of function Gradient estimated previously using the  FumiliFCNBase::EvaluateAll method

{ return fGradient; }
double Hessian(unsigned int row, unsigned int col) const
Return Value of the i-th j-th element of the Hessian matrix estimated previously using the  FumiliFCNBase::EvaluateAll method
@param row row Index of the matrix
@param col col Index of the matrix

unsigned int Dimension()
return number of function variable (parameters) , i.e. function dimension

{ return fNumberOfParameters; }
void InitAndReset(unsigned int npar)
initialize and reset values of gradien and Hessian

void SetFCNValue(double Value)
 methods to be used by the derived classes to set the values
{ fValue = Value; }
std::vector<double> & Gradient()
{ return fGradient; }
std::vector<double> & Hessian()
{ return fHessian; }

Last update: root/minuit2:$Id: FumiliFCNBase.h 21530 2007-12-20 11:14:35Z moneta $
Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.