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 implemeted 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")).
Definition at line 52 of file FumiliChi2FCN.h.
Public Member Functions | |
FumiliChi2FCN () | |
virtual | ~FumiliChi2FCN () |
virtual std::vector< double > | Elements (const std::vector< double > &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. More... | |
virtual const std::vector< double > & | GetMeasurement (int Index) const =0 |
Accessor to the parameters of a given measurement. More... | |
virtual int | GetNumberOfMeasurements () const =0 |
Accessor to the number of measurements used for calculating the present figure of merit. More... | |
const ParametricFunction * | ModelFunction () const |
Returns the model function used for the data. More... | |
double | operator() (const std::vector< double > &par) const |
Calculates the sum of Elements squared, ie the chi-square. More... | |
void | SetModelFunction (const ParametricFunction &modelFCN) |
Sets the model function for the data (for example gaussian+linear for a peak) More... | |
virtual double | Up () const |
!!!!!!!!!!!! to be commented More... | |
Public Member Functions inherited from ROOT::Minuit2::FumiliFCNBase | |
FumiliFCNBase () | |
Default Constructor. More... | |
FumiliFCNBase (unsigned int npar) | |
Constructor which initializes the class with the function provided by the user for modeling the data. More... | |
virtual | ~FumiliFCNBase () |
virtual unsigned int | Dimension () |
return number of function variable (parameters) , i.e. More... | |
virtual void | EvaluateAll (const std::vector< double > &par)=0 |
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. More... | |
virtual const std::vector< double > & | Gradient () const |
Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method. More... | |
virtual 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. More... | |
virtual double | Value () const |
Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method. More... | |
Public Member Functions inherited from ROOT::Minuit2::FCNBase | |
virtual | ~FCNBase () |
virtual double | ErrorDef () const |
Error definition of the function. More... | |
virtual double | operator() (const std::vector< double > &x) 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. More... | |
virtual void | SetErrorDef (double) |
add interface to set dynamically a new error definition Re-implement this function if needed. More... | |
virtual double | Up () const =0 |
Error definition of the function. More... | |
Public Member Functions inherited from ROOT::Minuit2::GenericFunction | |
virtual | ~GenericFunction () |
virtual double | operator() (const std::vector< double > &x) const =0 |
Evaluates the function using the vector containing the input values. More... | |
Private Attributes | |
const ParametricFunction * | fModelFunction = 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 More... | |
void | SetFCNValue (double value) |
#include <Minuit2/FumiliChi2FCN.h>
|
inline |
Definition at line 56 of file FumiliChi2FCN.h.
|
inlinevirtual |
Definition at line 58 of file FumiliChi2FCN.h.
|
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.
par | vector of Parameter values to feed to the model function. |
Implemented in ROOT::Minuit2::FumiliStandardChi2FCN.
|
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 feeded to the model function.
Index | Index of the measueremnt the parameters of which to return |
Implemented in ROOT::Minuit2::FumiliStandardChi2FCN.
|
pure virtual |
Accessor to the number of measurements used for calculating the present figure of merit.
Implemented in ROOT::Minuit2::FumiliStandardChi2FCN.
|
inline |
Returns the model function used for the data.
Definition at line 81 of file FumiliChi2FCN.h.
|
inlinevirtual |
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.
par | vector containing the Parameter values for the model function |
Implements ROOT::Minuit2::FCNBase.
Definition at line 146 of file FumiliChi2FCN.h.
|
inline |
Sets the model function for the data (for example gaussian+linear for a peak)
modelFunction | a reference to the model function. |
Definition at line 69 of file FumiliChi2FCN.h.
|
inlinevirtual |
!!!!!!!!!!!! to be commented
Implements ROOT::Minuit2::FCNBase.
Definition at line 166 of file FumiliChi2FCN.h.
|
private |
Definition at line 171 of file FumiliChi2FCN.h.