Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Minuit2::FumiliFCNAdapter< Function > Class Template Reference

template<class Function>
class ROOT::Minuit2::FumiliFCNAdapter< Function >

template wrapped class for adapting to FumiliFCNBase signature

Author
Lorenzo Moneta

Definition at line 43 of file FumiliFCNAdapter.h.

Public Types

typedef Function::Type_t Type_t
 

Public Member Functions

 FumiliFCNAdapter (const Function &f, unsigned int ndim, double up=1.)
 
void EvaluateAll (std::vector< double > const &v) override
 evaluate gradient hessian and function value needed by fumili
 
double operator() (const double *v) const
 
double operator() (std::vector< double > const &v) const override
 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.
 
void SetErrorDef (double up) override
 add interface to set dynamically a new error definition Re-implement this function if needed.
 
double Up () const override
 Error definition of the function.
 
- 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 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
 
- Public Member Functions inherited from ROOT::Minuit2::GenericFunction
virtual ~GenericFunction ()
 

Private Attributes

const FunctionfFunc
 
double fUp
 

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/FumiliFCNAdapter.h>

Inheritance diagram for ROOT::Minuit2::FumiliFCNAdapter< Function >:
[legend]

Member Typedef Documentation

◆ Type_t

template<class Function >
typedef Function::Type_t ROOT::Minuit2::FumiliFCNAdapter< Function >::Type_t

Definition at line 47 of file FumiliFCNAdapter.h.

Constructor & Destructor Documentation

◆ FumiliFCNAdapter()

template<class Function >
ROOT::Minuit2::FumiliFCNAdapter< Function >::FumiliFCNAdapter ( const Function f,
unsigned int  ndim,
double  up = 1. 
)
inline

Definition at line 49 of file FumiliFCNAdapter.h.

Member Function Documentation

◆ EvaluateAll()

template<class Function >
void ROOT::Minuit2::FumiliFCNAdapter< Function >::EvaluateAll ( std::vector< double > const &  v)
overridevirtual

evaluate gradient hessian and function value needed by fumili

Implements ROOT::Minuit2::FumiliFCNBase.

Definition at line 73 of file FumiliFCNAdapter.h.

◆ operator()() [1/2]

template<class Function >
double ROOT::Minuit2::FumiliFCNAdapter< Function >::operator() ( const double v) const
inline

Definition at line 52 of file FumiliFCNAdapter.h.

◆ operator()() [2/2]

template<class Function >
double ROOT::Minuit2::FumiliFCNAdapter< Function >::operator() ( std::vector< double > const &  v) const
inlineoverridevirtual

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.

The order and the position of these parameters is strictly the one specified by the user when supplying the starting values for minimization. The starting values must be specified by the user, either via an std::vector<double> or the MnUserParameters supplied as input to the MINUIT minimizers such as VariableMetricMinimizer or MnMigrad. Later values are determined by MINUIT as it searches for the Minimum or performs whatever analysis is requested by the user.

Parameters
vfunction parameters as defined by the user.
Returns
the Value of the function.
See also
MnUserParameters
VariableMetricMinimizer
MnMigrad

Implements ROOT::Minuit2::FCNBase.

Definition at line 51 of file FumiliFCNAdapter.h.

◆ SetErrorDef()

template<class Function >
void ROOT::Minuit2::FumiliFCNAdapter< Function >::SetErrorDef ( double  )
inlineoverridevirtual

add interface to set dynamically a new error definition Re-implement this function if needed.

Reimplemented from ROOT::Minuit2::FCNBase.

Definition at line 55 of file FumiliFCNAdapter.h.

◆ Up()

template<class Function >
double ROOT::Minuit2::FumiliFCNAdapter< Function >::Up ( ) const
inlineoverridevirtual

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.

Implements ROOT::Minuit2::FCNBase.

Definition at line 53 of file FumiliFCNAdapter.h.

Member Data Documentation

◆ fFunc

template<class Function >
const Function& ROOT::Minuit2::FumiliFCNAdapter< Function >::fFunc
private

Definition at line 68 of file FumiliFCNAdapter.h.

◆ fUp

template<class Function >
double ROOT::Minuit2::FumiliFCNAdapter< Function >::fUp
private

Definition at line 69 of file FumiliFCNAdapter.h.

  • math/minuit2/inc/Minuit2/FumiliFCNAdapter.h