Logo ROOT  
Reference Guide
 
Loading...
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.
 
bool IsAGradFCN ()
 
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 bool IsAGradFCN ()
 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]

Member Typedef Documentation

◆ BaseFunction

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

Definition at line 43 of file FitMethodFunction.h.

Member Enumeration Documentation

◆ Type_t

template<class FunctionType >
enum ROOT::Math::BasicFitMethodFunction::Type_t

enumeration specifying the possible fit method types

Enumerator
kUndefined 
kLeastSquare 
kLogLikelihood 
kPoissonLikelihood 

Definition at line 46 of file FitMethodFunction.h.

Constructor & Destructor Documentation

◆ 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.

Member Function Documentation

◆ 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

Implemented in ROOT::Fit::PoissonLikelihoodFCN< DerivFunType, ModelFunType >, ROOT::Fit::Chi2FCN< DerivFunType, ModelFunType >, and ROOT::Fit::LogLikelihoodFCN< DerivFunType, ModelFunType >.

◆ 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()

◆ 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.

◆ IsAGradFCN() [1/2]

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.

◆ IsAGradFCN() [2/2]

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

◆ 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.

Member Data Documentation

◆ 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