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

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 in the case of chi-square is the sum of the squares of the figures-of-merit calculated for each measurement point, which is implemented by the operator() member function. The user still has to implement the calculation of the individual figures-of-merit (which in the majority of the cases will be the (measured Value - the Value predicted by the model)/standard deviation implemented by the FumiliStandardChi2FCN; however this form can become more complicated (see for an example Numerical Recipes' section on "Straight-Line Data with Errors in Both Coordinates")).

Author
Andras Zsenei and Lorenzo Moneta, Creation date: 24 Aug 2004
See also
MINUIT Tutorial on function minimization, section 5
FumiliStandardChi2FCN

Definition at line 49 of file FumiliChi2FCN.h.

Public Member Functions

 FumiliChi2FCN ()
 
 ~FumiliChi2FCN () override
 
virtual std::vector< doubleElements (std::vector< double > const &par) const =0
 Evaluates the model function for the different measurement points and the Parameter values supplied, calculates a figure-of-merit for each measurement and returns a vector containing the result of this evaluation.
 
virtual const std::vector< double > & GetMeasurement (int Index) const =0
 Accessor to the parameters of a given measurement.
 
virtual int GetNumberOfMeasurements () const =0
 Accessor to the number of measurements used for calculating the present figure of merit.
 
const ParametricFunctionModelFunction () const
 Returns the model function used for the data.
 
double operator() (std::vector< double > const &par) const override
 Calculates the sum of Elements squared, ie the chi-square.
 
void SetModelFunction (const ParametricFunction &modelFCN)
 Sets the model function for the data (for example gaussian+linear for a peak)
 
double Up () const override
 !!!!!!!!!!!! to be commented
 
- Public Member Functions inherited from ROOT::Minuit2::FumiliFCNBase
 FumiliFCNBase ()
 Default Constructor.
 
 FumiliFCNBase (unsigned int npar)
 Constructor which initializes the class with the function provided by the user for modeling the data.
 
 ~FumiliFCNBase () override
 
virtual unsigned int Dimension ()
 return number of function variable (parameters) , i.e.
 
virtual void EvaluateAll (std::vector< double > const &par)=0
 Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p The result is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and FumiliFCNBase::Hessian methods.
 
virtual const std::vector< double > & Gradient () const
 Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method.
 
std::vector< doubleGradient (std::vector< double > const &) const override
 
bool HasGradient () const override
 
std::vector< doubleHessian (std::vector< double > const &) const override
 Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNBase::EvaluateAll method.
 
virtual double Hessian (unsigned int row, unsigned int col) const
 
virtual double Value () const
 Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method.
 
- Public Member Functions inherited from ROOT::Minuit2::FCNBase
virtual double ErrorDef () const
 Error definition of the function.
 
virtual std::vector< doubleG2 (std::vector< double > const &) const
 return second derivatives (diagonal of the Hessian matrix)
 
virtual std::vector< doubleGradientWithPrevResult (std::vector< double > const &parameters, double *, double *, double *) const
 
virtual GradientParameterSpace gradParameterSpace () const
 
virtual bool HasG2 () const
 
virtual bool HasHessian () const
 
virtual void SetErrorDef (double)
 add interface to set dynamically a new error definition Re-implement this function if needed.
 
- Public Member Functions inherited from ROOT::Minuit2::GenericFunction
virtual ~GenericFunction ()
 

Private Attributes

const ParametricFunctionfModelFunction = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from ROOT::Minuit2::FumiliFCNBase
std::vector< double > & Gradient ()
 
std::vector< double > & Hessian ()
 
virtual void InitAndReset (unsigned int npar)
 initialize and reset values of gradien and Hessian
 
void SetFCNValue (double value)
 

#include <Minuit2/FumiliChi2FCN.h>

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

Constructor & Destructor Documentation

◆ FumiliChi2FCN()

ROOT::Minuit2::FumiliChi2FCN::FumiliChi2FCN ( )
inline

Definition at line 52 of file FumiliChi2FCN.h.

◆ ~FumiliChi2FCN()

ROOT::Minuit2::FumiliChi2FCN::~FumiliChi2FCN ( )
inlineoverride

Definition at line 54 of file FumiliChi2FCN.h.

Member Function Documentation

◆ Elements()

virtual std::vector< double > ROOT::Minuit2::FumiliChi2FCN::Elements ( std::vector< double > const &  par) const
pure virtual

Evaluates the model function for the different measurement points and the Parameter values supplied, calculates a figure-of-merit for each measurement and returns a vector containing the result of this evaluation.

Parameters
parvector of Parameter values to feed to the model function.
Returns
A vector containing the figures-of-merit for the model function evaluated for each set of measurements.

Implemented in ROOT::Minuit2::FumiliStandardChi2FCN.

◆ GetMeasurement()

virtual const std::vector< double > & ROOT::Minuit2::FumiliChi2FCN::GetMeasurement ( int  Index) const
pure virtual

Accessor to the parameters of a given measurement.

For example in the case of a chi-square fit with a one-dimensional Gaussian, the Parameter characterizing the measurement will be the position. It is the Parameter that is passed to the model function.

Parameters
IndexIndex of the measueremnt the parameters of which to return
Returns
A reference to a vector containing the values characterizing a measurement

Implemented in ROOT::Minuit2::FumiliStandardChi2FCN.

◆ GetNumberOfMeasurements()

virtual int ROOT::Minuit2::FumiliChi2FCN::GetNumberOfMeasurements ( ) const
pure virtual

Accessor to the number of measurements used for calculating the present figure of merit.

Returns
the number of measurements

Implemented in ROOT::Minuit2::FumiliStandardChi2FCN.

◆ ModelFunction()

const ParametricFunction * ROOT::Minuit2::FumiliChi2FCN::ModelFunction ( ) const
inline

Returns the model function used for the data.

Returns
Returns a pointer to the model function.

Definition at line 74 of file FumiliChi2FCN.h.

◆ operator()()

double ROOT::Minuit2::FumiliChi2FCN::operator() ( std::vector< double > const &  par) const
inlineoverridevirtual

Calculates the sum of Elements squared, ie the chi-square.

The user must implement in a class which inherits from FumiliChi2FCN the member function Elements() which will supply the Elements for the sum.

Parameters
parvector containing the Parameter values for the model function
Returns
The sum of Elements squared
See also
FumiliFCNBase::elements

Implements ROOT::Minuit2::FCNBase.

Definition at line 132 of file FumiliChi2FCN.h.

◆ SetModelFunction()

void ROOT::Minuit2::FumiliChi2FCN::SetModelFunction ( const ParametricFunction modelFCN)
inline

Sets the model function for the data (for example gaussian+linear for a peak)

Parameters
modelFCNa reference to the model function.

Definition at line 64 of file FumiliChi2FCN.h.

◆ Up()

double ROOT::Minuit2::FumiliChi2FCN::Up ( ) const
inlineoverridevirtual

!!!!!!!!!!!! to be commented

Implements ROOT::Minuit2::FCNBase.

Definition at line 151 of file FumiliChi2FCN.h.

Member Data Documentation

◆ fModelFunction

const ParametricFunction* ROOT::Minuit2::FumiliChi2FCN::fModelFunction = nullptr
private

Definition at line 155 of file FumiliChi2FCN.h.

Libraries for ROOT::Minuit2::FumiliChi2FCN:

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