ROOT logo
ROOT » MATH » MATHMORE » ROOT::Math::GSLNLSMinimizer

class ROOT::Math::GSLNLSMinimizer: public ROOT::Math::Minimizer


    LSResidualFunc class description.
    Internal class used for accessing the residuals of the Least Square function
    and their derivates which are estimated numerically using GSL numerical derivation.
    The class contains a pointer to the fit method function and an index specifying
    the i-th residual and wraps it in a multi-dim gradient function interface
    ROOT::Math::IGradientFunctionMultiDim.
    The class is used by ROOT::Math::GSLNLSMinimizer (GSL non linear least square fitter)

    @ingroup MultiMin

Function Members (Methods)

public:
virtual~GSLNLSMinimizer()
virtual voidROOT::Math::Minimizer::Clear()
virtual boolROOT::Math::Minimizer::Contour(unsigned int, unsigned int, unsigned int&, double*, double*)
virtual doubleROOT::Math::Minimizer::Correlation(unsigned int i, unsigned int j) const
virtual doubleCovMatrix(unsigned int, unsigned int) const
virtual doubleROOT::Math::Minimizer::CovMatrix(unsigned int i, unsigned int j) const
virtual intROOT::Math::Minimizer::CovMatrixStatus() const
virtual doubleEdm() const
virtual doubleROOT::Math::Minimizer::Edm() const
doubleROOT::Math::Minimizer::ErrorDef() const
virtual const double*Errors() const
virtual const double*ROOT::Math::Minimizer::Errors() const
virtual boolGetMinosError(unsigned int, double&, double&)
virtual boolROOT::Math::Minimizer::GetMinosError(unsigned int, double& errLow, double& errUp)
virtual doubleROOT::Math::Minimizer::GlobalCC(unsigned int) const
ROOT::Math::GSLNLSMinimizerGSLNLSMinimizer(int type = 0)
virtual boolROOT::Math::Minimizer::Hesse()
boolROOT::Math::Minimizer::IsValidError() const
unsigned intROOT::Math::Minimizer::MaxFunctionCalls()
unsigned intROOT::Math::Minimizer::MaxIterations()
virtual const double*MinGradient() const
virtual boolMinimize()
virtual boolROOT::Math::Minimizer::Minimize()
virtual doubleMinValue() const
virtual doubleROOT::Math::Minimizer::MinValue() const
virtual unsigned intNCalls() const
virtual unsigned intROOT::Math::Minimizer::NCalls() const
virtual unsigned intNDim() const
virtual unsigned intROOT::Math::Minimizer::NDim() const
virtual unsigned intNFree() const
virtual unsigned intROOT::Math::Minimizer::NFree() const
intROOT::Math::Minimizer::PrintLevel() const
virtual voidROOT::Math::Minimizer::PrintResults()
virtual boolProvidesError() const
virtual boolROOT::Math::Minimizer::ProvidesError() const
virtual boolROOT::Math::Minimizer::Scan(unsigned int, unsigned int&, double*, double*, double = 0, double = 0)
voidROOT::Math::Minimizer::SetErrorDef(double up)
virtual boolSetFixedVariable(unsigned int ivar, const string& name, double val)
virtual boolROOT::Math::Minimizer::SetFixedVariable(unsigned int, const string&, double)
virtual voidSetFunction(const ROOT::Math::IMultiGenFunction& func)
virtual voidSetFunction(const ROOT::Math::IMultiGradFunction& func)
virtual voidROOT::Math::Minimizer::SetFunction(const ROOT::Math::IMultiGenFunction& func)
virtual voidROOT::Math::Minimizer::SetFunction(const ROOT::Math::IMultiGradFunction& func)
virtual boolSetLimitedVariable(unsigned int ivar, const string& name, double val, double step, double lower, double upper)
virtual boolSetLowerLimitedVariable(unsigned int ivar, const string& name, double val, double step, double lower)
virtual boolROOT::Math::Minimizer::SetLowerLimitedVariable(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::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)
virtual boolROOT::Math::Minimizer::SetUpperLimitedVariable(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::SetVariable(unsigned int ivar, const string& name, double val, double step)
virtual boolSetVariableValue(unsigned int ivar, double val)
virtual boolROOT::Math::Minimizer::SetVariableValue(unsigned int, double)
virtual boolSetVariableValues(const double* x)
virtual boolROOT::Math::Minimizer::SetVariableValues(const double* x)
intROOT::Math::Minimizer::Status() const
intROOT::Math::Minimizer::Strategy() const
doubleROOT::Math::Minimizer::Tolerance() const
virtual const double*X() const
virtual const double*ROOT::Math::Minimizer::X() const

Data Members

protected:
intROOT::Math::Minimizer::fDebugprint level
unsigned intROOT::Math::Minimizer::fMaxCallsmax number of funciton calls
unsigned intROOT::Math::Minimizer::fMaxItermax number or iterations used to find the minimum
intROOT::Math::Minimizer::fStatusstatus of minimizer
intROOT::Math::Minimizer::fStrategyminimizer strategy
doubleROOT::Math::Minimizer::fToltolerance (absolute)
doubleROOT::Math::Minimizer::fUperror scale
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
vector<double>fCovMatrixcov matrix (stored as cov[ i * dim + j]
unsigned intfDimdimension of the function to be minimized
doublefEdmedm value
vector<double>fErrors
ROOT::Math::GSLMultiFit*fGSLMultiFitpointer to GSL multi fit solver
doublefLSToleranceLine Search Tolerance
doublefMinValminimum function value
unsigned intfNFreedimension of the internal function to be minimized
vector<std::string>fNames
const ROOT::Math::FitMethodFunction*fObjFuncpointer to Least square function
vector<LSResidualFunc>fResiduals! transient Vector of the residual functions
unsigned intfSizenumber of fit points (residuals)
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

operator=(const ROOT::Math::GSLNLSMinimizer& rhs)
unsigned int NDim() const
{ return fChi2->NDim(); }
GSLNLSMinimizer(int type = 0)
      Default constructor

~GSLNLSMinimizer()
      Destructor (no operations)

GSLNLSMinimizer(const GSLNLSMinimizer &)
 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 limited variable
bool SetUpperLimitedVariable(unsigned int ivar, const string& name, double val, double step, double upper)
 set upper/lower limited variable
bool SetLimitedVariable(unsigned int ivar, const string& name, double val, double step, double lower, double upper)
 set fixed variable
bool SetFixedVariable(unsigned int ivar, const string& name, double val)
bool SetVariableValue(unsigned int ivar, double val)
 set the value of an existing variable
bool SetVariableValues(const double* x)
bool Minimize()
 method to perform the minimization
double MinValue() const
 return minimum function value
{ return fMinVal; }
double Edm() const
 return expected distance reached from the minimum
const double * X() const
 return  pointer to X values at the minimum
{ return &fValues.front(); }
const double * MinGradient() const
 return pointer to gradient values at the minimum
unsigned int NCalls() const
 number of function calls to reach the minimum
{ return 0; }
unsigned int NFree() const
 number of free variables (real dimension of the problem)
 this is <= Function().NDim() which is the total
{ return fNFree; }
bool ProvidesError() const
 minimizer provides error and error matrix
{ return true; }
const double * Errors() const
 return errors at the minimum
{ return &fErrors.front(); }
double CovMatrix(unsigned int , unsigned int ) const
 return covariance matrices elements
       if the variable is fixed the matrix is zero
       The ordering of the variables is the same as in errors

bool GetMinosError(unsigned int , double& , double& )
 minos error for variable i, return false if Minos failed
{ return false; }