Extension of the FCNBase for the Fumili method.
Fumili applies only to minimization problems used for fitting. The method is based on a linearization of the model function negleting second derivatives. User needs to provide the model function. The figure-of-merit describing the difference between the model function and the actual measurements has to be implemented by the user in a subclass of FumiliFCNBase. For an example see the FumiliChi2FCN and FumiliStandardChi2FCN classes.
- Author
- Andras Zsenei and Lorenzo Moneta, Creation date: 23 Aug 2004
- See also
- MINUIT Tutorial on function minimization, section 5
-
FumiliChi2FCN
-
FumiliStandardChi2FCN
Definition at line 46 of file FumiliFCNBase.h.
|
| | FumiliFCNBase () |
| | Default Constructor.
|
| | FumiliFCNBase (unsigned int npar) |
| | Constructor which initializes the class with the function provided by the user for modeling the data.
|
| virtual unsigned int | Dimension () |
| | return number of function variable (parameters) , i.e.
|
| virtual double | ErrorDef () const |
| | Error definition of the function.
|
| virtual void | EvaluateAll (std::vector< double > const &par)=0 |
| | Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p The result is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and FumiliFCNBase::Hessian methods.
|
| virtual std::vector< double > | G2 (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< double > | Gradient (std::vector< double > const &) const override |
| | Return the gradient vector of the function at the given parameter point.
|
| virtual std::vector< double > | GradientWithPrevResult (std::vector< double > const ¶meters, double *, double *, double *) const |
| virtual GradientParameterSpace | gradParameterSpace () const |
| virtual bool | HasG2 () const |
| bool | HasGradient () const override |
| virtual bool | HasHessian () const |
| std::vector< double > | Hessian (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 | operator() (std::vector< double > const &v) const =0 |
| | 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.
|
| virtual void | SetErrorDef (double) |
| | add interface to set dynamically a new error definition Re-implement this function if needed.
|
| virtual double | Up () const =0 |
| | Error definition of the function.
|
| virtual double | Value () const |
| | Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method.
|
| 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.
| virtual double ROOT::Minuit2::FCNBase::operator() |
( |
std::vector< double > const & | v | ) |
const |
|
pure virtualinherited |
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
-
| v | function parameters as defined by the user. |
- Returns
- the Value of the function.
- See also
- MnUserParameters
-
VariableMetricMinimizer
-
MnMigrad
Implemented in ROOT::Minuit2::FCNAdapter, ROOT::Minuit2::FumiliChi2FCN, ROOT::Minuit2::FumiliFCNAdapter< Function >, ROOT::Minuit2::FumiliMaximumLikelihoodFCN, and ROOT::Minuit2::ParametricFunction.
| virtual double ROOT::Minuit2::FCNBase::Up |
( |
| ) |
const |
|
pure virtualinherited |