13 #ifndef ROOT_Minuit2_Minuit2Minimizer
14 #define ROOT_Minuit2_Minuit2Minimizer
28 class ModularFunctionMinimizer;
30 class FunctionMinimum;
102 virtual bool SetVariable(
unsigned int ivar,
const std::string & name,
double val,
double step);
105 virtual bool SetLowerLimitedVariable(
unsigned int ivar ,
const std::string & name ,
double val ,
double step ,
double lower );
107 virtual bool SetUpperLimitedVariable(
unsigned int ivar ,
const std::string & name ,
double val ,
double step ,
double upper );
109 virtual bool SetLimitedVariable(
unsigned int ivar ,
const std::string & name ,
double val ,
double step ,
double ,
double );
160 virtual const double *
X()
const;
189 virtual double CovMatrix(
unsigned int i,
unsigned int j)
const;
226 virtual double Correlation(
unsigned int i,
unsigned int j )
const;
248 virtual bool GetMinosError(
unsigned int i,
double & errLow,
double & errUp,
int = 0);
254 virtual bool Scan(
unsigned int i,
unsigned int & nstep,
double * x,
double * y,
double xmin = 0,
double xmax = 0);
260 virtual bool Contour(
unsigned int i,
unsigned int j,
unsigned int & npoints,
double *xi,
double *xj);
bool ExamineMinimum(const ROOT::Minuit2::FunctionMinimum &min)
examine the minimum result
virtual bool Contour(unsigned int i, unsigned int j, unsigned int &npoints, double *xi, double *xj)
virtual unsigned int NFree() const
number of free variables (real dimension of the problem) this is <= Function().NDim() which is the to...
Minuit2Minimizer & operator=(const Minuit2Minimizer &rhs)
Minuit2Minimizer(ROOT::Minuit2::EMinimizerType type=ROOT::Minuit2::kMigrad)
virtual void PrintResults()
return reference to the objective function virtual const ROOT::Math::IGenFunction & Function() const;
void SetStorageLevel(int level)
set storage level = 1 : store all iteration states (default) = 0 : store only first and last state to...
virtual bool ReleaseVariable(unsigned int ivar)
release an existing variable
virtual void Clear()
reset for consecutive minimizations - implement if needed
std::vector< double > fValues
virtual double Correlation(unsigned int i, unsigned int j) const
Minuit2Minimizer(const Minuit2Minimizer &)
virtual bool GetCovMatrix(double *cov) const
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 SetVariableLimits(unsigned int ivar, double lower, double upper)
set the limits of an already existing variable
virtual bool ProvidesError() const
minimizer provides error and error matrix
virtual bool Scan(unsigned int i, unsigned int &nstep, double *x, double *y, double xmin=0, double xmax=0)
virtual const ROOT::Minuit2::ModularFunctionMinimizer * GetMinimizer() const
virtual bool IsFixedVariable(unsigned int ivar) const
query if an existing variable is fixed (i.e. considered constant in the minimization) note that by de...
virtual bool SetVariableValue(unsigned int ivar, double val)
set variable
virtual double MinValue() const
return minimum function value
virtual const double * MinGradient() const
return pointer to gradient values at the minimum
std::vector< double > fErrors
ROOT::Minuit2::ModularFunctionMinimizer * fMinimizer
virtual bool GetHessianMatrix(double *h) const
virtual const double * Errors() const
return errors at the minimum
virtual double CovMatrix(unsigned int i, unsigned int j) const
virtual unsigned int NDim() const
this is <= Function().NDim() which is the total number of variables (free+ constrained ones)
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 std::string VariableName(unsigned int ivar) const
get name of variables (override if minimizer support storing of variable names)
virtual int VariableIndex(const std::string &name) const
get index of variable given a variable given a name return -1 if variable is not found
void SetTraceObject(MnTraceObject &obj)
set an object to trace operation for each iteration The object muust implement operator() (unsigned i...
virtual bool SetVariableValues(const double *val)
set the values of all existing variables (array must be dimensioned to the size of the existing param...
virtual bool SetVariable(unsigned int ivar, const std::string &name, double val, double step)
set free variable
void SetMinimizerType(ROOT::Minuit2::EMinimizerType type)
virtual bool FixVariable(unsigned int ivar)
fix an existing variable
Minuit2Minimizer(const char *type)
virtual bool GetVariableSettings(unsigned int ivar, ROOT::Fit::ParameterSettings &varObj) const
get variable settings in a variable object (like ROOT::Fit::ParamsSettings)
virtual unsigned int NCalls() const
number of function calls to reach the minimum
virtual bool GetMinosError(unsigned int i, double &errLow, double &errUp, int=0)
virtual double Edm() const
return expected distance reached from the minimum
ROOT::Minuit2::MnUserParameterState fState
virtual bool SetVariableStepSize(unsigned int ivar, double step)
set the step size of an already existing variable
virtual ~Minuit2Minimizer()
const ROOT::Minuit2::MnUserParameterState & State()
return the minimizer state (containing values, step size , etc..)
virtual const double * X() const
return pointer to X values at the minimum
virtual void SetMinimizer(ROOT::Minuit2::ModularFunctionMinimizer *m)
virtual bool SetVariableLowerLimit(unsigned int ivar, double lower)
set the lower-limit of an already existing variable
ROOT::Minuit2::FunctionMinimum * fMinimum
virtual int CovMatrixStatus() const
virtual double GlobalCC(unsigned int i) const
virtual void SetFunction(const ROOT::Math::IMultiGenFunction &func)
set the function to minimize
ROOT::Minuit2::FCNBase * fMinuitFCN
virtual void SetFunction(const ROOT::Math::IMultiGradFunction &func)
set gradient the function to minimize
virtual const ROOT::Minuit2::FCNBase * GetFCN() 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 )
virtual bool SetFixedVariable(unsigned int, const std::string &, double)
set fixed variable (override if minimizer supports them )
virtual bool SetVariableUpperLimit(unsigned int ivar, double upper)
set the upper-limit of an already existing variable
unsigned int NFcn() const
unsigned int VariableParameters() const