Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Minuit2::FCNBase Class Referenceabstract

Interface (abstract class) defining the function to be minimized, which has to be implemented by the user.

Definition at line 37 of file FCNBase.h.

Public Member Functions

virtual ~FCNBase ()=default
 
virtual double ErrorDef () const
 Error definition of the function.
 
virtual std::vector< doubleG2 (std::vector< double > const &) const
 Return the diagonal elements of the Hessian (second derivatives).
 
virtual std::vector< doubleGradient (std::vector< double > const &) const
 Return the gradient vector of the function at the given parameter point.
 
virtual std::vector< doubleGradientWithPrevResult (std::vector< double > const &parameters, double *, double *, double *) const
 
virtual GradientParameterSpace gradParameterSpace () const
 
virtual bool HasG2 () const
 
virtual bool HasGradient () const
 
virtual bool HasHessian () const
 
virtual std::vector< doubleHessian (std::vector< double > const &) const
 Return the full Hessian matrix of the function.
 
virtual double operator() (std::vector< double > const &v) const =0
 The meaning of the vector of parameters is of course defined by the user, who uses the values of those parameters to calculate their function Value.
 
virtual void SetErrorDef (double)
 add interface to set dynamically a new error definition Re-implement this function if needed.
 
virtual double Up () const =0
 Error definition of the function.
 

#include <Minuit2/FCNBase.h>

Inheritance diagram for ROOT::Minuit2::FCNBase:
[legend]

Constructor & Destructor Documentation

◆ ~FCNBase()

virtual ROOT::Minuit2::FCNBase::~FCNBase ( )
virtualdefault

Member Function Documentation

◆ ErrorDef()

virtual double ROOT::Minuit2::FCNBase::ErrorDef ( ) const
inlinevirtual

Error definition of the function.

MINUIT defines Parameter errors as the change in Parameter Value required to change the function Value by up. Normally, for chisquared fits it is 1, and for negative log likelihood, its Value is 0.5. If the user wants instead the 2-sigma errors for chisquared fits, it becomes 4, as Chi2(x+n*sigma) = Chi2(x) + n*n.

Comment a little bit better with links!!!!!!!!!!!!!!!!!

Definition at line 70 of file FCNBase.h.

◆ G2()

virtual std::vector< double > ROOT::Minuit2::FCNBase::G2 ( std::vector< double > const & ) const
inlinevirtual

Return the diagonal elements of the Hessian (second derivatives).

By default, returns an empty vector. Override this method if analytic second derivatives (per-parameter curvature) are available.

Parameters
vParameter vector.
Returns
Vector of second derivatives with respect to each parameter.

Reimplemented in ROOT::Minuit2::FCNAdapter.

Definition at line 116 of file FCNBase.h.

◆ Gradient()

virtual std::vector< double > ROOT::Minuit2::FCNBase::Gradient ( std::vector< double > const & ) const
inlinevirtual

Return the gradient vector of the function at the given parameter point.

By default, returns an empty vector (no analytic gradient provided). Override this method if an analytic gradient is available.

Parameters
vParameter vector.
Returns
Gradient vector with respect to the parameters.

Reimplemented in ROOT::Minuit2::FumiliFCNBase, and ROOT::Minuit2::FCNAdapter.

Definition at line 95 of file FCNBase.h.

◆ GradientWithPrevResult()

virtual std::vector< double > ROOT::Minuit2::FCNBase::GradientWithPrevResult ( std::vector< double > const & parameters,
double * ,
double * ,
double *  ) const
inlinevirtual
Warning
Not meant to be overridden! This is a requirement for an internal optimization in RooFit that might go away with any refactoring.

Definition at line 99 of file FCNBase.h.

◆ gradParameterSpace()

virtual GradientParameterSpace ROOT::Minuit2::FCNBase::gradParameterSpace ( ) const
inlinevirtual
Warning
Not meant to be overridden! This is a requirement for an internal optimization in RooFit that might go away with any refactoring.

Definition at line 107 of file FCNBase.h.

◆ HasG2()

virtual bool ROOT::Minuit2::FCNBase::HasG2 ( ) const
inlinevirtual

Reimplemented in ROOT::Minuit2::FCNAdapter.

Definition at line 129 of file FCNBase.h.

◆ HasGradient()

virtual bool ROOT::Minuit2::FCNBase::HasGradient ( ) const
inlinevirtual

◆ HasHessian()

virtual bool ROOT::Minuit2::FCNBase::HasHessian ( ) const
inlinevirtual

Reimplemented in ROOT::Minuit2::FCNAdapter.

Definition at line 127 of file FCNBase.h.

◆ Hessian()

virtual std::vector< double > ROOT::Minuit2::FCNBase::Hessian ( std::vector< double > const & ) const
inlinevirtual

Return the full Hessian matrix of the function.

By default, returns an empty vector. Override this method if the full analytic Hessian (matrix of second derivatives) is available.

Parameters
vParameter vector.
Returns
Flattened Hessian matrix.

Reimplemented in ROOT::Minuit2::FumiliFCNBase, and ROOT::Minuit2::FCNAdapter.

Definition at line 125 of file FCNBase.h.

◆ operator()()

virtual double ROOT::Minuit2::FCNBase::operator() ( std::vector< double > const & v) const
pure virtual

The meaning of the vector of parameters is of course defined by the user, who uses the values of those parameters to calculate their function Value.

The order and the position of these parameters is strictly the one specified by the user when supplying the starting values for minimization. The starting values must be specified by the user, either via an std::vector<double> or the MnUserParameters supplied as input to the MINUIT minimizers such as VariableMetricMinimizer or MnMigrad. Later values are determined by MINUIT as it searches for the Minimum or performs whatever analysis is requested by the user.

Parameters
vfunction parameters as defined by the user.
Returns
the Value of the function.
See also
MnUserParameters
VariableMetricMinimizer
MnMigrad

Implemented in ROOT::Minuit2::FumiliChi2FCN, ROOT::Minuit2::FumiliMaximumLikelihoodFCN, ROOT::Minuit2::FCNAdapter, ROOT::Minuit2::FumiliFCNAdapter< Function >, and ROOT::Minuit2::ParametricFunction.

◆ SetErrorDef()

virtual void ROOT::Minuit2::FCNBase::SetErrorDef ( double )
inlinevirtual

add interface to set dynamically a new error definition Re-implement this function if needed.

Reimplemented in ROOT::Minuit2::FCNAdapter, and ROOT::Minuit2::FumiliFCNAdapter< Function >.

Definition at line 84 of file FCNBase.h.

◆ Up()

virtual double ROOT::Minuit2::FCNBase::Up ( ) const
pure virtual

Error definition of the function.

MINUIT defines Parameter errors as the change in Parameter Value required to change the function Value by up. Normally, for chisquared fits it is 1, and for negative log likelihood, its Value is 0.5. If the user wants instead the 2-sigma errors for chisquared fits, it becomes 4, as Chi2(x+n*sigma) = Chi2(x) + n*n.

Implemented in ROOT::Minuit2::FCNAdapter, ROOT::Minuit2::FumiliChi2FCN, ROOT::Minuit2::FumiliFCNAdapter< Function >, and ROOT::Minuit2::FumiliMaximumLikelihoodFCN.


The documentation for this class was generated from the following file: