ROOT   Reference Guide
Searching...
No Matches
ROOT::Math::BasicFitMethodFunction< FunctionType > Class Template Referenceabstract
template<class FunctionType>
class ROOT::Math::BasicFitMethodFunction< FunctionType >

FitMethodFunction class Interface for objective functions (like chi2 and likelihood used in the fit) In addition to normal function interface provide interface for calculating each data contribution to the function which is required by some algorithm (like Fumili)

Definition at line 38 of file FitMethodFunction.h.

## Public Types

typedef FunctionType::BaseFunc BaseFunction

enum  Type_t { kUndefined = 0 , kLeastSquare , kLogLikelihood , kPoissonLikelihood }
enumeration specifying the possible fit method types More...

## Public Member Functions

BasicFitMethodFunction (int dim, int npoint)

~BasicFitMethodFunction () override
Virtual Destructor (no operations)

virtual double DataElement (const double *x, unsigned int i, double *g=nullptr, double *h=nullptr, bool fullHessian=false) const =0
method returning the data i-th contribution to the fit objective function For example the residual for the least square functions or the pdf element for the likelihood functions.

virtual bool G2 (const double *, double *) const
Computes the Second derivatives.

virtual bool HasHessian () const

virtual bool Hessian (const double *x, double *hess) const
Computes the full Hessian.

virtual unsigned int NCalls () const
return the total number of function calls (override if needed)

unsigned int NDim () const override
Number of dimension (parameters) .

virtual unsigned int NPoints () const
return the number of data points used in evaluating the function

virtual void ResetNCalls ()
reset number of function calls

virtual Type_t Type () const
return the type of method, override if needed

virtual void UpdateNCalls () const
update number of calls

## Static Public Member Functions

Static function to indicate if a function is supporting gradient.

## Private Attributes

unsigned int fNCalls

unsigned int fNDim

unsigned int fNPoints

#include <Math/FitMethodFunction.h>

Inheritance diagram for ROOT::Math::BasicFitMethodFunction< FunctionType >:
[legend]

## ◆ BaseFunction

template<class FunctionType >
 typedef FunctionType::BaseFunc ROOT::Math::BasicFitMethodFunction< FunctionType >::BaseFunction

Definition at line 43 of file FitMethodFunction.h.

## ◆ Type_t

template<class FunctionType >

enumeration specifying the possible fit method types

Enumerator
kUndefined
kLeastSquare
kLogLikelihood
kPoissonLikelihood

Definition at line 46 of file FitMethodFunction.h.

## ◆ BasicFitMethodFunction()

template<class FunctionType >
 ROOT::Math::BasicFitMethodFunction< FunctionType >::BasicFitMethodFunction ( int dim, int npoint )
inline

Definition at line 49 of file FitMethodFunction.h.

## ◆ ~BasicFitMethodFunction()

template<class FunctionType >
 ROOT::Math::BasicFitMethodFunction< FunctionType >::~BasicFitMethodFunction ( )
inlineoverride

Virtual Destructor (no operations)

Definition at line 58 of file FitMethodFunction.h.

## ◆ DataElement()

template<class FunctionType >
 virtual double ROOT::Math::BasicFitMethodFunction< FunctionType >::DataElement ( const double * x, unsigned int i, double * g = nullptr, double * h = nullptr, bool fullHessian = false ) const
pure virtual

method returning the data i-th contribution to the fit objective function For example the residual for the least square functions or the pdf element for the likelihood functions.

Estimating also the gradient of the data element if the passed pointer is not null and the Hessian. The flag fullHessian is set when one needs to compute the full Hessian (not the approximated one) and should be used when the full second derivatives of the model functions are available

## ◆ G2()

template<class FunctionType >
 virtual bool ROOT::Math::BasicFitMethodFunction< FunctionType >::G2 ( const double * , double * ) const
inlinevirtual

Computes the Second derivatives.

Return false if this is not supported

Definition at line 104 of file FitMethodFunction.h.

## ◆ HasHessian()

template<class FunctionType >
 virtual bool ROOT::Math::BasicFitMethodFunction< FunctionType >::HasHessian ( ) const
inlinevirtual

## ◆ Hessian()

template<class FunctionType >
 virtual bool ROOT::Math::BasicFitMethodFunction< FunctionType >::Hessian ( const double * x, double * hess ) const
inlinevirtual

Computes the full Hessian.

Return false if Hessian is not supported

Definition at line 81 of file FitMethodFunction.h.

template<class FunctionType >
 static bool ROOT::Math::BasicFitMethodFunction< FunctionType >::IsAGradFCN ( )
inlinestatic

Static function to indicate if a function is supporting gradient.

Definition at line 135 of file FitMethodFunction.h.

inline

Definition at line 149 of file FitMethodFunction.h.

## ◆ NCalls()

template<class FunctionType >
 virtual unsigned int ROOT::Math::BasicFitMethodFunction< FunctionType >::NCalls ( ) const
inlinevirtual

return the total number of function calls (override if needed)

Definition at line 119 of file FitMethodFunction.h.

## ◆ NDim()

template<class FunctionType >
 unsigned int ROOT::Math::BasicFitMethodFunction< FunctionType >::NDim ( ) const
inlineoverride

Number of dimension (parameters) .

From IGenMultiFunction interface

Definition at line 63 of file FitMethodFunction.h.

## ◆ NPoints()

template<class FunctionType >
 virtual unsigned int ROOT::Math::BasicFitMethodFunction< FunctionType >::NPoints ( ) const
inlinevirtual

return the number of data points used in evaluating the function

Definition at line 109 of file FitMethodFunction.h.

## ◆ ResetNCalls()

template<class FunctionType >
 virtual void ROOT::Math::BasicFitMethodFunction< FunctionType >::ResetNCalls ( )
inlinevirtual

reset number of function calls

Definition at line 129 of file FitMethodFunction.h.

## ◆ Type()

template<class FunctionType >
 virtual Type_t ROOT::Math::BasicFitMethodFunction< FunctionType >::Type ( ) const
inlinevirtual

return the type of method, override if needed

Definition at line 114 of file FitMethodFunction.h.

## ◆ UpdateNCalls()

template<class FunctionType >
 virtual void ROOT::Math::BasicFitMethodFunction< FunctionType >::UpdateNCalls ( ) const
inlinevirtual

update number of calls

Definition at line 124 of file FitMethodFunction.h.

## ◆ fNCalls

template<class FunctionType >
 unsigned int ROOT::Math::BasicFitMethodFunction< FunctionType >::fNCalls
mutableprivate

Definition at line 143 of file FitMethodFunction.h.

## ◆ fNDim

template<class FunctionType >
 unsigned int ROOT::Math::BasicFitMethodFunction< FunctionType >::fNDim
private

Definition at line 141 of file FitMethodFunction.h.

## ◆ fNPoints

template<class FunctionType >
 unsigned int ROOT::Math::BasicFitMethodFunction< FunctionType >::fNPoints
private

Definition at line 142 of file FitMethodFunction.h.

• math/mathcore/inc/Fit/Fitter.h
• math/mathcore/inc/Math/FitMethodFunction.h