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.)
virtual unsigned int Dimension ()
 return number of function variable (parameters) , i.e.
virtual double ErrorDef () const
 Error definition of the function.
void EvaluateAll (std::vector< double > const &v) override
 evaluate gradient hessian and function value needed by Fumili
virtual std::vector< doubleG2 (std::vector< double > const &) const
 Return the diagonal elements of the Hessian (second derivatives).
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
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.
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

const FunctionfFunc
std::vector< doublefGradient
std::vector< doublefHessian
unsigned int fNumberOfParameters
double fUp
double fValue

#include <Minuit2/FumiliFCNAdapter.h>

Inheritance diagram for ROOT::Minuit2::FumiliFCNAdapter< Function >:
ROOT::Minuit2::FumiliFCNBase ROOT::Minuit2::FCNBase

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

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

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

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 69 of file FumiliFCNAdapter.h.

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

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

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

◆ SetFCNValue()

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

Definition at line 136 of file FumiliFCNBase.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.

◆ 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

◆ fFunc

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

Definition at line 64 of file FumiliFCNAdapter.h.

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

◆ fNumberOfParameters

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

Definition at line 143 of file FumiliFCNBase.h.

◆ fUp

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

Definition at line 65 of file FumiliFCNAdapter.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 file: