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

Class implementing the standard chi square function, which is the sum of the squares of the figures-of-merit calculated for each measurement point, the individual figures-of-merit being: (the Value predicted by the model-measured Value)/standard deviation.

Author
Andras Zsenei and Lorenzo Moneta, Creation date: 31 Aug 2004
See also
FumiliChi2FCN

Definition at line 43 of file FumiliStandardChi2FCN.h.

Public Member Functions

 FumiliStandardChi2FCN (const ParametricFunction &modelFCN, std::span< const double > meas, std::span< const double > pos, std::span< const double > mvar)
 Constructor which initializes chi square function for one-dimensional model function.
 FumiliStandardChi2FCN (const ParametricFunction &modelFCN, std::span< const double > meas, std::span< const std::vector< double > > pos, std::span< const double > mvar)
 Constructor which initializes the multi-dimensional model function.
virtual unsigned int Dimension ()
 return number of function variable (parameters) , i.e.
std::vector< doubleElements (std::vector< double > const &par) const override
 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 double ErrorDef () const
 Error definition of the function.
void EvaluateAll (std::vector< double > const &par) override
 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 std::vector< doubleG2 (std::vector< double > const &) const
 Return the diagonal elements of the Hessian (second derivatives).
const std::vector< double > & GetMeasurement (int Index) const override
 Accessor to the position of the measurement (x coordinate).
int GetNumberOfMeasurements () const override
 Accessor to the number of measurements used for calculating the chi-square.
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
 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
bool HasGradient () const override
virtual bool HasHessian () const
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
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.
virtual void SetErrorDef (double)
 add interface to set dynamically a new error definition Re-implement this function if needed.
void SetModelFunction (const ParametricFunction &modelFCN)
 Sets the model function for the data (for example gaussian+linear for a peak).
double Up () const override
 !
virtual double Value () const
 Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method.

Protected Member Functions

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)

Private Attributes

std::vector< doublefGradient
std::vector< doublefHessian
std::vector< doublefInvErrors
std::vector< doublefMeasurements
const ParametricFunctionfModelFunction = nullptr
unsigned int fNumberOfParameters
std::vector< std::vector< double > > fPositions
double fValue

#include <Minuit2/FumiliStandardChi2FCN.h>

Inheritance diagram for ROOT::Minuit2::FumiliStandardChi2FCN:
ROOT::Minuit2::FumiliChi2FCN ROOT::Minuit2::FumiliFCNBase ROOT::Minuit2::FCNBase

Constructor & Destructor Documentation

◆ FumiliStandardChi2FCN() [1/2]

ROOT::Minuit2::FumiliStandardChi2FCN::FumiliStandardChi2FCN ( const ParametricFunction & modelFCN,
std::span< const double > meas,
std::span< const double > pos,
std::span< const double > mvar )
inline

Constructor which initializes chi square function for one-dimensional model function.

Parameters
modelFCNthe model function used for describing the data.
measvector containing the measured values.
posvector containing the x values corresponding to the measurements
mvarvector containing the variances corresponding to each measurement (where the variance equals the standard deviation squared). If the variances are zero, a Value of 1 is used (as it is done in ROOT/PAW)

Definition at line 63 of file FumiliStandardChi2FCN.h.

◆ FumiliStandardChi2FCN() [2/2]

ROOT::Minuit2::FumiliStandardChi2FCN::FumiliStandardChi2FCN ( const ParametricFunction & modelFCN,
std::span< const double > meas,
std::span< const std::vector< double > > pos,
std::span< const double > mvar )
inline

Constructor which initializes the multi-dimensional model function.

Parameters
modelFCNthe model function used for describing the data.
measvector containing the measured values.
posvector containing the x values corresponding to the measurements
mvarvector containing the variances corresponding to each measurement (where the variance equals the standard deviation squared). If the variances are zero, a Value of 1 is used (as it is done in ROOT/PAW)

Definition at line 104 of file FumiliStandardChi2FCN.h.

Member Function Documentation

◆ Dimension()

virtual unsigned int ROOT::Minuit2::FumiliFCNBase::Dimension ( )
inlinevirtualinherited

return number of function variable (parameters) , i.e.

function dimension

Definition at line 121 of file FumiliFCNBase.h.

◆ Elements()

std::vector< double > ROOT::Minuit2::FumiliStandardChi2FCN::Elements ( std::vector< double > const & par) const
overridevirtual

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.

The figure-of-merit is (Value predicted by the model function-measured Value)/standard deviation.

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.

Implements ROOT::Minuit2::FumiliChi2FCN.

Definition at line 19 of file FumiliStandardChi2FCN.cxx.

◆ ErrorDef()

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

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.

◆ EvaluateAll()

void ROOT::Minuit2::FumiliStandardChi2FCN::EvaluateAll ( std::vector< double > const & par)
overridevirtual

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.

Parameters
parvector of parameters

Implements ROOT::Minuit2::FumiliFCNBase.

Definition at line 57 of file FumiliStandardChi2FCN.cxx.

◆ G2()

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

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.

◆ GetMeasurement()

const std::vector< double > & ROOT::Minuit2::FumiliStandardChi2FCN::GetMeasurement ( int Index) const
overridevirtual

Accessor to the position of the measurement (x coordinate).

Parameters
IndexIndex of the measuerement the position of which to return.
Returns
the position of the measurement.

Implements ROOT::Minuit2::FumiliChi2FCN.

Definition at line 45 of file FumiliStandardChi2FCN.cxx.

◆ GetNumberOfMeasurements()

int ROOT::Minuit2::FumiliStandardChi2FCN::GetNumberOfMeasurements ( ) const
overridevirtual

Accessor to the number of measurements used for calculating the chi-square.

Returns
the number of measurements.

Implements ROOT::Minuit2::FumiliChi2FCN.

Definition at line 51 of file FumiliStandardChi2FCN.cxx.

◆ Gradient() [1/3]

std::vector< double > & ROOT::Minuit2::FumiliFCNBase::Gradient ( )
inlineprotectedinherited

Definition at line 138 of file FumiliFCNBase.h.

◆ Gradient() [2/3]

virtual const std::vector< double > & ROOT::Minuit2::FumiliFCNBase::Gradient ( ) const
inlinevirtualinherited

Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method.

Definition at line 97 of file FumiliFCNBase.h.

◆ Gradient() [3/3]

std::vector< double > ROOT::Minuit2::FumiliFCNBase::Gradient ( std::vector< double > const & ) const
inlineoverridevirtualinherited

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 from ROOT::Minuit2::FCNBase.

Definition at line 98 of file FumiliFCNBase.h.

◆ GradientWithPrevResult()

virtual std::vector< double > ROOT::Minuit2::FCNBase::GradientWithPrevResult ( std::vector< double > const & parameters,
double * ,
double * ,
double *  ) const
inlinevirtualinherited
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
inlinevirtualinherited
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
inlinevirtualinherited

Reimplemented in ROOT::Minuit2::FCNAdapter.

Definition at line 129 of file FCNBase.h.

◆ HasGradient()

bool ROOT::Minuit2::FumiliFCNBase::HasGradient ( ) const
inlineoverridevirtualinherited

Reimplemented from ROOT::Minuit2::FCNBase.

Definition at line 56 of file FumiliFCNBase.h.

◆ HasHessian()

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

Reimplemented in ROOT::Minuit2::FCNAdapter.

Definition at line 127 of file FCNBase.h.

◆ Hessian() [1/3]

std::vector< double > & ROOT::Minuit2::FumiliFCNBase::Hessian ( )
inlineprotectedinherited

Definition at line 140 of file FumiliFCNBase.h.

◆ Hessian() [2/3]

std::vector< double > ROOT::Minuit2::FumiliFCNBase::Hessian ( std::vector< double > const & ) const
inlineoverridevirtualinherited

Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNBase::EvaluateAll method.

Parameters
rowrow Index of the matrix
colcol Index of the matrix

Reimplemented from ROOT::Minuit2::FCNBase.

Definition at line 107 of file FumiliFCNBase.h.

◆ Hessian() [3/3]

virtual double ROOT::Minuit2::FumiliFCNBase::Hessian ( unsigned int row,
unsigned int col ) const
inlinevirtualinherited

Definition at line 108 of file FumiliFCNBase.h.

◆ InitAndReset()

virtual void ROOT::Minuit2::FumiliFCNBase::InitAndReset ( unsigned int npar)
inlineprotectedvirtualinherited

initialize and reset values of gradien and Hessian

Definition at line 128 of file FumiliFCNBase.h.

◆ ModelFunction()

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

Returns the model function used for the data.

Returns
Returns a pointer to the model function.

Definition at line 70 of file FumiliChi2FCN.h.

◆ operator()()

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

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 128 of file FumiliChi2FCN.h.

◆ SetErrorDef()

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

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.

◆ SetFCNValue()

void ROOT::Minuit2::FumiliFCNBase::SetFCNValue ( double value)
inlineprotectedinherited

Definition at line 136 of file FumiliFCNBase.h.

◆ SetModelFunction()

void ROOT::Minuit2::FumiliChi2FCN::SetModelFunction ( const ParametricFunction & modelFCN)
inlineinherited

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

Parameters
modelFCNa reference to the model function.

Definition at line 60 of file FumiliChi2FCN.h.

◆ Up()

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

!

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

Implements ROOT::Minuit2::FCNBase.

Definition at line 147 of file FumiliChi2FCN.h.

◆ Value()

virtual double ROOT::Minuit2::FumiliFCNBase::Value ( ) const
inlinevirtualinherited

Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method.

Definition at line 91 of file FumiliFCNBase.h.

Member Data Documentation

◆ fGradient

std::vector<double> ROOT::Minuit2::FumiliFCNBase::fGradient
privateinherited

Definition at line 145 of file FumiliFCNBase.h.

◆ fHessian

std::vector<double> ROOT::Minuit2::FumiliFCNBase::fHessian
privateinherited

Definition at line 146 of file FumiliFCNBase.h.

◆ fInvErrors

std::vector<double> ROOT::Minuit2::FumiliStandardChi2FCN::fInvErrors
private

Definition at line 183 of file FumiliStandardChi2FCN.h.

◆ fMeasurements

std::vector<double> ROOT::Minuit2::FumiliStandardChi2FCN::fMeasurements
private

Definition at line 180 of file FumiliStandardChi2FCN.h.

◆ fModelFunction

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

Definition at line 151 of file FumiliChi2FCN.h.

◆ fNumberOfParameters

unsigned int ROOT::Minuit2::FumiliFCNBase::fNumberOfParameters
privateinherited

Definition at line 143 of file FumiliFCNBase.h.

◆ fPositions

std::vector<std::vector<double> > ROOT::Minuit2::FumiliStandardChi2FCN::fPositions
private

Definition at line 182 of file FumiliStandardChi2FCN.h.

◆ fValue

double ROOT::Minuit2::FumiliFCNBase::fValue
privateinherited

Definition at line 144 of file FumiliFCNBase.h.


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