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);
100 virtual bool SetLowerLimitedVariable(
unsigned int ivar ,
const std::string &
name ,
double val ,
double step ,
double lower );
104 virtual bool SetLimitedVariable(
unsigned int ivar ,
const std::string &
name ,
double val ,
double step ,
double ,
double );
106 virtual bool SetFixedVariable(
unsigned int ,
const std::string & ,
double );
108 virtual bool SetVariableValue(
unsigned int ivar,
double val);
109 virtual bool SetVariableValues(
const double *
val);
112 virtual std::string VariableName(
unsigned int ivar)
const;
130 virtual bool Minimize();
139 virtual const double *
X()
const;
149 virtual unsigned int NDim()
const {
return fDim; }
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;
179 virtual bool GetCovMatrix(
double * cov)
const;
188 virtual bool GetHessianMatrix(
double *
h)
const;
200 virtual int CovMatrixStatus()
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();
259 virtual void PrintResults();
262 const ROOT::Minuit2::MnUserParameterState &
State() {
return fState; }
270 virtual const ROOT::Minuit2::ModularFunctionMinimizer *
GetMinimizer()
const {
return fMinimizer; }
272 virtual void SetMinimizer( ROOT::Minuit2::ModularFunctionMinimizer *
m) { fMinimizer =
m; }
274 virtual const ROOT::Minuit2::FCNBase *
GetFCN()
const {
return fMinuitFCN; }
277 bool ExamineMinimum(
const ROOT::Minuit2::FunctionMinimum &
min);
284 ROOT::Minuit2::MnUserParameterState
fState;
virtual double Edm() const
return expected distance reached from the minimum
ROOT::Minuit2::MnUserParameterState fState
ROOT::Minuit2::FCNBase * fMinuitFCN
ROOT::Minuit2::FunctionMinimum * fMinimum
virtual unsigned int NFree() const
virtual bool ProvidesError() const
minimizer provides error and error matrix
T x() const
Cartesian x coordinate.
virtual unsigned int NDim() const
std::vector< double > fErrors
const ROOT::Minuit2::MnUserParameterState & State()
return the minimizer state (containing values, step size , etc..)
virtual double MinValue() const
return minimum function value
virtual void SetMinimizer(ROOT::Minuit2::ModularFunctionMinimizer *m)
virtual const double * MinGradient() const
return pointer to gradient values at the minimum
std::vector< double > fValues
ROOT::Minuit2::ModularFunctionMinimizer * fMinimizer
virtual const ROOT::Minuit2::ModularFunctionMinimizer * GetMinimizer() const
virtual const ROOT::Minuit2::FCNBase * GetFCN() const
virtual unsigned int NCalls() const
number of function calls to reach the minimum