ROOT logo
ROOT » MATH » MATHCORE » ROOT::Math::BasicMinimizer

class ROOT::Math::BasicMinimizer: public ROOT::Math::Minimizer


   Base Minimizer class, which defines the basic funcionality of various minimizer
   implementations (apart from Minuit and Minuit2)
   It provides support for storing parameter values, step size,
   parameter transofrmation etc.. in case real minimizer impelmentations do not provide
   such functionality.
   This is an internal class and should not be used directly by the user

   @ingroup MultiMin

Function Members (Methods)

public:
virtual~BasicMinimizer()
ROOT::Math::BasicMinimizerBasicMinimizer()
virtual voidROOT::Math::Minimizer::Clear()
virtual boolROOT::Math::Minimizer::Contour(unsigned int ivar, unsigned int jvar, unsigned int& npoints, double* xi, double* xj)
virtual doubleROOT::Math::Minimizer::Correlation(unsigned int i, unsigned int j) const
virtual doubleROOT::Math::Minimizer::CovMatrix(unsigned int ivar, unsigned int jvar) const
virtual intROOT::Math::Minimizer::CovMatrixStatus() const
virtual doubleROOT::Math::Minimizer::Edm() const
doubleROOT::Math::Minimizer::ErrorDef() const
virtual const double*ROOT::Math::Minimizer::Errors() const
virtual boolFixVariable(unsigned int ivar)
virtual boolROOT::Math::Minimizer::GetCovMatrix(double* covMat) const
virtual boolROOT::Math::Minimizer::GetHessianMatrix(double* hMat) const
virtual boolROOT::Math::Minimizer::GetMinosError(unsigned int ivar, double& errLow, double& errUp, int option = 0)
virtual boolGetVariableSettings(unsigned int ivar, ROOT::Fit::ParameterSettings& varObj) const
virtual doubleROOT::Math::Minimizer::GlobalCC(unsigned int ivar) const
const ROOT::Math::IMultiGradFunction*GradObjFunction() const
virtual boolROOT::Math::Minimizer::Hesse()
virtual boolIsFixedVariable(unsigned int ivar) const
boolROOT::Math::Minimizer::IsValidError() const
unsigned intROOT::Math::Minimizer::MaxFunctionCalls() const
unsigned intROOT::Math::Minimizer::MaxIterations() const
virtual const double*ROOT::Math::Minimizer::MinGradient() const
virtual boolMinimize()
virtual doubleMinValue() const
virtual unsigned intROOT::Math::Minimizer::NCalls() const
virtual unsigned intNDim() const
virtual unsigned intNFree() const
virtual unsigned intROOT::Math::Minimizer::NIterations() const
virtual unsigned intNPar() const
const ROOT::Math::IMultiGenFunction*ObjFunction() const
virtual ROOT::Math::MinimizerOptionsROOT::Math::Minimizer::Options() const
doubleROOT::Math::Minimizer::Precision() const
intROOT::Math::Minimizer::PrintLevel() const
voidPrintResult() const
virtual voidROOT::Math::Minimizer::PrintResults()
virtual boolROOT::Math::Minimizer::ProvidesError() const
virtual boolReleaseVariable(unsigned int ivar)
virtual boolROOT::Math::Minimizer::Scan(unsigned int ivar, unsigned int& nstep, double* x, double* y, double xmin = 0, double xmax = 0)
voidROOT::Math::Minimizer::SetDefaultOptions()
voidROOT::Math::Minimizer::SetErrorDef(double up)
virtual boolSetFixedVariable(unsigned int, const string&, double)
virtual voidSetFunction(const ROOT::Math::IMultiGenFunction& func)
virtual voidSetFunction(const ROOT::Math::IMultiGradFunction& func)
virtual boolSetLimitedVariable(unsigned int ivar, const string& name, double val, double step, double, double)
virtual boolSetLowerLimitedVariable(unsigned int ivar, const string& name, double val, double step, double lower)
voidROOT::Math::Minimizer::SetMaxFunctionCalls(unsigned int maxfcn)
voidROOT::Math::Minimizer::SetMaxIterations(unsigned int maxiter)
voidROOT::Math::Minimizer::SetOptions(const ROOT::Math::MinimizerOptions& opt)
voidROOT::Math::Minimizer::SetPrecision(double prec)
voidROOT::Math::Minimizer::SetPrintLevel(int level)
voidROOT::Math::Minimizer::SetStrategy(int strategyLevel)
voidROOT::Math::Minimizer::SetTolerance(double tol)
virtual boolSetUpperLimitedVariable(unsigned int ivar, const string& name, double val, double step, double upper)
voidROOT::Math::Minimizer::SetValidError(bool on)
virtual boolSetVariable(unsigned int ivar, const string& name, double val, double step)
virtual boolROOT::Math::Minimizer::SetVariableInitialRange(unsigned int, double, double)
virtual boolSetVariableLimits(unsigned int ivar, double lower, double upper)
virtual boolSetVariableLowerLimit(unsigned int ivar, double lower)
virtual boolSetVariableStepSize(unsigned int ivar, double step)
virtual boolSetVariableUpperLimit(unsigned int ivar, double upper)
virtual boolSetVariableValue(unsigned int ivar, double val)
virtual boolSetVariableValues(const double* x)
intROOT::Math::Minimizer::Status() const
virtual const double*StepSizes() const
intROOT::Math::Minimizer::Strategy() const
doubleROOT::Math::Minimizer::Tolerance() const
const ROOT::Math::MinimTransformFunction*TransformFunction() const
virtual intVariableIndex(const string& name) const
virtual stringVariableName(unsigned int ivar) const
virtual const double*X() const
protected:
boolCheckDimension() const
boolCheckObjFunction() const
ROOT::Math::MinimTransformFunction*CreateTransformation(vector<double>& startValues, const ROOT::Math::IMultiGradFunction* func = 0)
voidSetFinalValues(const double* x)
voidSetMinValue(double val)

Data Members

protected:
ROOT::Math::MinimizerOptionsROOT::Math::Minimizer::fOptionsminimizer options
intROOT::Math::Minimizer::fStatusstatus of minimizer
boolROOT::Math::Minimizer::fValidErrorflag to control if errors have been validated (Hesse has been run in case of Minuit)
private:
map<unsigned int,std::pair<double,double> >fBoundsmap specifying the bound using as key the parameter index
unsigned intfDim
doublefMinVal
vector<std::string>fNames
const ROOT::Math::IMultiGenFunction*fObjFunc
vector<double>fSteps
vector<double>fValues
vector<ROOT::Math::EMinimVariableType>fVarTypesvector specifyng the type of variables

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

BasicMinimizer()
      Default constructor

virtual ~BasicMinimizer()
      Destructor

BasicMinimizer(const ROOT::Math::BasicMinimizer& )
 usually copying is non trivial, so we make this unaccessible

      Copy constructor

{}
void SetFunction(const ROOT::Math::IMultiGenFunction& func)
 set the function to minimize
void SetFunction(const ROOT::Math::IMultiGradFunction& func)
 set gradient the function to minimize
bool SetVariable(unsigned int ivar, const string& name, double val, double step)
 set free variable
bool SetLowerLimitedVariable(unsigned int ivar, const string& name, double val, double step, double lower)
 set lower limit variable  (override if minimizer supports them )
bool SetUpperLimitedVariable(unsigned int ivar, const string& name, double val, double step, double upper)
 set upper limit variable (override if minimizer supports them )
bool SetLimitedVariable(unsigned int ivar, const string& name, double val, double step, double , double )
 set upper/lower limited variable (override if minimizer supports them )
bool SetFixedVariable(unsigned int , const string& , double )
 set fixed variable (override if minimizer supports them )
bool SetVariableValue(unsigned int ivar, double val)
 set the value of an existing variable
bool SetVariableValues(const double* x)
 set the values of all existing variables (array must be dimensioned to the size of existing parameters)
bool SetVariableStepSize(unsigned int ivar, double step)
 set the step size of an already existing variable
bool SetVariableLowerLimit(unsigned int ivar, double lower)
 set the lower-limit of an already existing variable
bool SetVariableUpperLimit(unsigned int ivar, double upper)
 set the upper-limit of an already existing variable
bool SetVariableLimits(unsigned int ivar, double lower, double upper)
 set the limits of an already existing variable
bool FixVariable(unsigned int ivar)
 fix an existing variable
bool ReleaseVariable(unsigned int ivar)
 release an existing variable
bool IsFixedVariable(unsigned int ivar) const
 query if an existing variable is fixed (i.e. considered constant in the minimization)
 note that by default all variables are not fixed
bool GetVariableSettings(unsigned int ivar, ROOT::Fit::ParameterSettings& varObj) const
 get variable settings in a variable object (like ROOT::Fit::ParamsSettings)
std::string VariableName(unsigned int ivar) const
 get name of variables (override if minimizer support storing of variable names)
int VariableIndex(const string& name) const
 get index of variable given a variable given a name
 return -1 if variable is not found
bool Minimize()
 method to perform the minimization
double MinValue() const
 return minimum function value
{ return fMinVal; }
const double * X() const
 return  pointer to X values at the minimum
{ return &fValues.front(); }
unsigned int NDim() const
 number of dimensions
{ return fDim; }
unsigned int NFree() const
 number of free variables (real dimension of the problem)
unsigned int NPar() const
 total number of parameter defined
{ return fValues.size(); }
const ROOT::Math::IMultiGenFunction * ObjFunction() const
 return pointer to used objective function
{ return fObjFunc; }
const ROOT::Math::IMultiGradFunction * GradObjFunction() const
 return pointer to used gradient object function  (NULL if gradient is not supported)
void PrintResult() const
 print result of minimization
const double * StepSizes() const
 accessor methods
{ return &fSteps.front(); }
bool CheckDimension() const
bool CheckObjFunction() const
MinimTransformFunction * CreateTransformation(vector<double>& startValues, const ROOT::Math::IMultiGradFunction* func = 0)
void SetFinalValues(const double* x)
void SetMinValue(double val)
{ fMinVal = val; }