BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
ROOT::Minuit2::FCNAdapter< Function > Class Template Reference

Description

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

template wrapped class for adapting to FCNBase signature

Author
Lorenzo Moneta

Definition at line 31 of file FCNAdapter.h.

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

Public Member Functions

 FCNAdapter (const Function &f, double up=1.)
 
 ~FCNAdapter ()
 
virtual double ErrorDef () const
 
double operator() (const double *v) const
 
double operator() (const std::vector< double > &v) const
 
void SetErrorDef (double up)
 
double Up () const
 

Private Attributes

const Function & fFunc
 
double fUp
 

Constructor & Destructor Documentation

◆ FCNAdapter()

template<class Function >
ROOT::Minuit2::FCNAdapter< Function >::FCNAdapter ( const Function &  f,
double  up = 1. 
)
inline

Definition at line 35 of file FCNAdapter.h.

35  :
36  fFunc(f) ,
37  fUp (up)
38  {}
const Function & fFunc
Definition: FCNAdapter.h:59

◆ ~FCNAdapter()

template<class Function >
ROOT::Minuit2::FCNAdapter< Function >::~FCNAdapter ( )
inline

Definition at line 40 of file FCNAdapter.h.

40 {}

Member Function Documentation

◆ 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 93 of file FCNBase.h.

93 {return Up();}
virtual double Up() const =0

References ROOT::Minuit2::FCNBase::Up().

Here is the call graph for this function:

◆ operator()() [1/2]

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

Definition at line 46 of file FCNAdapter.h.

46  {
47  return fFunc.operator()(v);
48  }

References ROOT::Minuit2::FCNAdapter< Function >::fFunc.

◆ operator()() [2/2]

template<class Function >
double ROOT::Minuit2::FCNAdapter< Function >::operator() ( const std::vector< double > &  x) const
inlinevirtual

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
parfunction parameters as defined by the user.
Returns
the Value of the function.
See also
MnUserParameters
VariableMetricMinimizer
MnMigrad

Implements ROOT::Minuit2::FCNBase.

Definition at line 43 of file FCNAdapter.h.

43  {
44  return fFunc.operator()(&v[0]);
45  }

References ROOT::Minuit2::FCNAdapter< Function >::fFunc.

◆ SetErrorDef()

template<class Function >
void ROOT::Minuit2::FCNAdapter< Function >::SetErrorDef ( double  )
inlinevirtual

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

Reimplemented from ROOT::Minuit2::FCNBase.

Definition at line 51 of file FCNAdapter.h.

51 { fUp = up; }

References ROOT::Minuit2::FCNAdapter< Function >::fUp.

◆ Up()

template<class Function >
double ROOT::Minuit2::FCNAdapter< Function >::Up ( ) const
inlinevirtual

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.

Todo:
Comment a little bit better with links!!!!!!!!!!!!!!!!! Idem for ErrorDef()

Implements ROOT::Minuit2::FCNBase.

Definition at line 49 of file FCNAdapter.h.

49 {return fUp;}

References ROOT::Minuit2::FCNAdapter< Function >::fUp.

Member Data Documentation

◆ fFunc

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

Definition at line 59 of file FCNAdapter.h.

Referenced by ROOT::Minuit2::FCNAdapter< Function >::operator()().

◆ fUp

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

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