Minuit2Minimizer class implementing the ROOT::Math::Minimizer interface for Minuit2 minimization algorithm. In ROOT it can be instantiated using the plug-in manager (plug-in "Minuit2") Using a string (used by the plugin manager) or via an enumeration an one can set all the possible minimization algorithms (Migrad, Simplex, Combined, Scan and Fumili).
virtual | ~Minuit2Minimizer() |
virtual void | Clear() |
virtual bool | Contour(unsigned int i, unsigned int j, unsigned int& npoints, double* xi, double* xj) |
virtual double | Correlation(unsigned int i, unsigned int j) const |
virtual double | CovMatrix(unsigned int i, unsigned int j) const |
virtual int | CovMatrixStatus() const |
virtual double | Edm() const |
double | ROOT::Math::Minimizer::ErrorDef() const |
virtual const double* | Errors() const |
virtual bool | FixVariable(unsigned int ivar) |
virtual bool | GetCovMatrix(double* cov) const |
virtual bool | GetHessianMatrix(double* h) const |
virtual bool | GetMinosError(unsigned int i, double& errLow, double& errUp, int = 0) |
virtual bool | GetVariableSettings(unsigned int ivar, ROOT::Fit::ParameterSettings& varObj) const |
virtual double | GlobalCC(unsigned int i) const |
virtual bool | Hesse() |
virtual bool | IsFixedVariable(unsigned int ivar) const |
bool | ROOT::Math::Minimizer::IsValidError() const |
unsigned int | ROOT::Math::Minimizer::MaxFunctionCalls() const |
unsigned int | ROOT::Math::Minimizer::MaxIterations() const |
virtual const double* | MinGradient() const |
virtual bool | Minimize() |
ROOT::Minuit2::Minuit2Minimizer | Minuit2Minimizer(ROOT::Minuit2::EMinimizerType type = ROOT::Minuit2::kMigrad) |
ROOT::Minuit2::Minuit2Minimizer | Minuit2Minimizer(const char* type) |
virtual double | MinValue() const |
virtual unsigned int | NCalls() const |
virtual unsigned int | NDim() const |
virtual unsigned int | NFree() const |
virtual unsigned int | ROOT::Math::Minimizer::NIterations() const |
virtual ROOT::Math::MinimizerOptions | ROOT::Math::Minimizer::Options() const |
double | ROOT::Math::Minimizer::Precision() const |
int | ROOT::Math::Minimizer::PrintLevel() const |
virtual void | PrintResults() |
virtual bool | ProvidesError() const |
virtual bool | ReleaseVariable(unsigned int ivar) |
virtual bool | Scan(unsigned int i, unsigned int& nstep, double* x, double* y, double xmin = 0, double xmax = 0) |
void | ROOT::Math::Minimizer::SetDefaultOptions() |
void | ROOT::Math::Minimizer::SetErrorDef(double up) |
virtual bool | SetFixedVariable(unsigned int, const string&, double) |
virtual void | SetFunction(const ROOT::Math::IMultiGenFunction& func) |
virtual void | SetFunction(const ROOT::Math::IMultiGradFunction& func) |
virtual bool | SetLimitedVariable(unsigned int ivar, const string& name, double val, double step, double, double) |
virtual bool | SetLowerLimitedVariable(unsigned int ivar, const string& name, double val, double step, double lower) |
void | ROOT::Math::Minimizer::SetMaxFunctionCalls(unsigned int maxfcn) |
void | ROOT::Math::Minimizer::SetMaxIterations(unsigned int maxiter) |
void | ROOT::Math::Minimizer::SetOptions(const ROOT::Math::MinimizerOptions& opt) |
void | ROOT::Math::Minimizer::SetPrecision(double prec) |
void | ROOT::Math::Minimizer::SetPrintLevel(int level) |
void | SetStorageLevel(int level) |
void | ROOT::Math::Minimizer::SetStrategy(int strategyLevel) |
void | ROOT::Math::Minimizer::SetTolerance(double tol) |
void | SetTraceObject(ROOT::Minuit2::MnTraceObject& obj) |
virtual bool | SetUpperLimitedVariable(unsigned int ivar, const string& name, double val, double step, double upper) |
void | ROOT::Math::Minimizer::SetValidError(bool on) |
virtual bool | SetVariable(unsigned int ivar, const string& name, double val, double step) |
virtual bool | ROOT::Math::Minimizer::SetVariableInitialRange(unsigned int, double, double) |
virtual bool | SetVariableLimits(unsigned int ivar, double lower, double upper) |
virtual bool | SetVariableLowerLimit(unsigned int ivar, double lower) |
virtual bool | SetVariableStepSize(unsigned int ivar, double step) |
virtual bool | SetVariableUpperLimit(unsigned int ivar, double upper) |
virtual bool | SetVariableValue(unsigned int ivar, double val) |
virtual bool | SetVariableValues(const double* val) |
const ROOT::Minuit2::MnUserParameterState& | State() |
int | ROOT::Math::Minimizer::Status() const |
int | ROOT::Math::Minimizer::Strategy() const |
double | ROOT::Math::Minimizer::Tolerance() const |
virtual int | VariableIndex(const string& name) const |
virtual string | VariableName(unsigned int ivar) const |
virtual const double* | X() const |
bool | ExamineMinimum(const ROOT::Minuit2::FunctionMinimum& min) |
virtual const ROOT::Minuit2::FCNBase* | GetFCN() const |
virtual const ROOT::Minuit2::ModularFunctionMinimizer* | GetMinimizer() const |
virtual void | SetMinimizer(ROOT::Minuit2::ModularFunctionMinimizer* m) |
void | SetMinimizerType(ROOT::Minuit2::EMinimizerType type) |
ROOT::Minuit2::Minuit2Minimizer | Minuit2Minimizer(const ROOT::Minuit2::Minuit2Minimizer&) |
ROOT::Minuit2::Minuit2Minimizer& | operator=(const ROOT::Minuit2::Minuit2Minimizer& rhs) |
ROOT::Math::MinimizerOptions | ROOT::Math::Minimizer::fOptions | minimizer options |
int | ROOT::Math::Minimizer::fStatus | status of minimizer |
bool | ROOT::Math::Minimizer::fValidError | flag to control if errors have been validated (Hesse has been run in case of Minuit) |
usually copying is non trivial, so we make this unaccessible Copy constructor
set lower limit variable (override if minimizer supports them )
set upper limit variable (override if minimizer supports them )
set upper/lower limited variable (override if minimizer supports them )
set fixed variable (override if minimizer supports them )
set the step size of an already existing variable
set the lower-limit of an already existing variable
set the upper-limit of an already existing variable
set the limits of an already existing variable
query if an existing variable is fixed (i.e. considered constant in the minimization) note that by default all variables are not fixed
get variable settings in a variable object (like ROOT::Fit::ParamsSettings)
get name of variables (override if minimizer support storing of variable names)
get index of variable given a variable given a name return -1 if variable is not found
method to perform the minimization. Return false in case the minimization did not converge. In this case a status code different than zero is set (retrieved by the derived method Minimizer::Status() )" status = 1 : Covariance was made pos defined status = 2 : Hesse is invalid status = 3 : Edm is above max status = 4 : Reached call limit status = 5 : Any other failure
this is <= Function().NDim() which is the total number of variables (free+ constrained ones)
{ return fDim; }
number of free variables (real dimension of the problem) this is <= Function().NDim() which is the total
{ return fState.VariableParameters(); }
return covariance matrix elements if the variable is fixed or const the value is zero The ordering of the variables is the same as in errors and parameter value. This is different from the direct interface of Minuit2 or TMinuit where the values were obtained only to variable parameters
Fill the passed array with the covariance matrix elements if the variable is fixed or const the value is zero. The array will be filled as cov[i *ndim + j] The ordering of the variables is the same as in errors and parameter value. This is different from the direct interface of Minuit2 or TMinuit where the values were obtained only to variable parameters
Fill the passed array with the Hessian matrix elements The Hessian matrix is the matrix of the second derivatives and is the inverse of the covariance matrix If the variable is fixed or const the values for that variables are zero. The array will be filled as h[i *ndim + j]
return the status of the covariance matrix status = -1 : not available (inversion failed or Hesse failed) status = 0 : available but not positive defined status = 1 : covariance only approximate status = 2 : full matrix but forced pos def status = 3 : full accurate matrix
return correlation coefficient between variable i and j. If the variable is fixed or const the return value is zero
get global correlation coefficient for the variable i. This is a number between zero and one which gives the correlation between the i-th variable and that linear combination of all other variables which is most strongly correlated with i. If the variable is fixed or const the return value is zero
get the minos error for parameter i, return false if Minos failed A minimizaiton must be performed befre, return false if no minimization has been done In case of Minos failed the status error is updated as following status += 10 * minosStatus where the minos status is: status = 1 : maximum number of function calls exceeded when running for lower error status = 2 : maximum number of function calls exceeded when running for upper error status = 3 : new minimum found when running for lower error status = 4 : new minimum found when running for upper error status = 5 : any other failure
scan a parameter i around the minimum. A minimization must have been done before, return false if it is not the case
find the contour points (xi,xj) of the function for parameter i and j around the minimum The contour will be find for value of the function = Min + ErrorUp();
perform a full calculation of the Hessian matrix for error calculation If a valid minimum exists the calculation is done on the minimum point otherwise is performed in the current set values of parameters Status code of minimizer is updated according to the following convention (in case Hesse failed) status += 100*hesseStatus where hesse status is: status = 1 : hesse failed status = 2 : matrix inversion failed status = 3 : matrix is not pos defined
return reference to the objective function virtual const ROOT::Math::IGenFunction & Function() const; print result of minimization
set storage level = 1 : store all iteration states (default) = 0 : store only first and last state to save memory
protected function for accessing the internal Minuit2 object. Needed for derived classes
{ return fMinimizer; }