13 #ifndef ROOT_Minuit2_HybridMinimizer
14 #define ROOT_Minuit2_HybridMinimizer
16 #include "Math/Minimizer.h"
17 #include "Minuit2/MnUserParameterState.h"
18 #include "Math/IFunctionfwd.h"
19 #include "Minuit2/MinosError.h"
20 #include "Minuit2/ModularFunctionMinimizer.h"
21 #include "Minuit2/FumiliMinimizer.h"
27 class ModularFunctionMinimizer;
29 class FunctionMinimum;
91 virtual void SetFunction(
const ROOT::Math::IMultiGenFunction & func);
94 virtual void SetFunction(
const ROOT::Math::IMultiGradFunction & func);
139 virtual const double *
X()
const;
153 virtual unsigned int NFree()
const {
return fState.VariableParameters(); }
159 virtual const double *
Errors()
const;
168 virtual double CovMatrix(
unsigned int i,
unsigned int j)
const;
205 virtual double Correlation(
unsigned int i,
unsigned int j )
const;
213 virtual double GlobalCC(
unsigned int i)
const;
227 virtual bool GetMinosError(
unsigned int i,
double & errLow,
double & errUp,
int = 0);
233 virtual bool Scan(
unsigned int i,
unsigned int & nstep,
double * x,
double * y,
double xmin = 0,
double xmax = 0);
239 virtual bool Contour(
unsigned int i,
unsigned int j,
unsigned int &
npoints,
double *xi,
double *xj);
252 virtual bool Hesse();
262 const ROOT::Minuit2::MnUserParameterState &
State() {
return fState; }
284 ROOT::Minuit2::MnUserParameterState
fState;
virtual bool GetHessianMatrix(double *h) const
virtual bool GetMinosError(unsigned int i, double &errLow, double &errUp, int=0)
virtual bool SetVariableValue(unsigned int ivar, double val)
set variable
virtual double Edm() const
return expected distance reached from the minimum
ROOT::Minuit2::MnUserParameterState fState
ROOT::Minuit2::FCNBase * fMinuitFCN
ROOT::Minuit2::FunctionMinimum * fMinimum
HybridMinimizer(EMinimizerType type=kMigrad)
virtual unsigned int NFree() const
virtual double Correlation(unsigned int i, unsigned int j) const
virtual const double * X() const
return pointer to X values at the minimum
virtual bool ProvidesError() const
minimizer provides error and error matrix
void SetMinimizerType(EMinimizerType type)
virtual unsigned int NDim() const
virtual bool SetLowerLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double lower)
set lower limit variable (override if minimizer supports them )
std::vector< double > fErrors
const ROOT::Minuit2::MnUserParameterState & State()
return the minimizer state (containing values, step size , etc..)
bool ExamineMinimum(const ROOT::Minuit2::FunctionMinimum &min)
examine the minimum result
virtual double MinValue() const
return minimum function value
virtual bool Scan(unsigned int i, unsigned int &nstep, double *x, double *y, double xmin=0, double xmax=0)
virtual void SetMinimizer(ROOT::Minuit2::ModularFunctionMinimizer *m)
virtual std::string VariableName(unsigned int ivar) const
get name of variables (override if minimizer support storing of variable names)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
virtual ~HybridMinimizer()
virtual bool SetFixedVariable(unsigned int, const std::string &, double)
set fixed variable (override if minimizer supports them )
virtual int VariableIndex(const std::string &name) const
HybridMinimizer & operator=(const HybridMinimizer &rhs)
virtual const double * MinGradient() const
return pointer to gradient values at the minimum
virtual void SetFunction(const ROOT::Math::IMultiGenFunction &func)
set the function to minimize
std::vector< double > fValues
virtual bool SetUpperLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double upper)
set upper limit variable (override if minimizer supports them )
virtual void PrintResults()
print result of minimization
ROOT::Minuit2::ModularFunctionMinimizer * fMinimizer
virtual bool SetLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double, double)
set upper/lower limited variable (override if minimizer supports them )
virtual bool Contour(unsigned int i, unsigned int j, unsigned int &npoints, double *xi, double *xj)
virtual bool SetVariableValues(const double *val)
virtual double GlobalCC(unsigned int i) const
virtual bool SetVariable(unsigned int ivar, const std::string &name, double val, double step)
set free variable
virtual const ROOT::Minuit2::ModularFunctionMinimizer * GetMinimizer() const
virtual bool GetCovMatrix(double *cov) const
virtual int CovMatrixStatus() const
virtual const ROOT::Minuit2::FCNBase * GetFCN() const
virtual double CovMatrix(unsigned int i, unsigned int j) const
virtual unsigned int NCalls() const
number of function calls to reach the minimum
virtual const double * Errors() const
return errors at the minimum