13 #ifndef ROOT_TMinuitMinimizer 14 #define ROOT_TMinuitMinimizer 91 virtual bool SetVariable(
unsigned int ivar,
const std::string &
name,
double val,
double step);
94 virtual bool SetLimitedVariable(
unsigned int ivar ,
const std::string & name ,
double val ,
double step ,
double ,
double );
97 virtual bool SetLowerLimitedVariable(
unsigned int ivar ,
const std::string & name ,
double val ,
double step ,
double lower );
100 virtual bool SetUpperLimitedVariable(
unsigned int ivar ,
const std::string & name ,
double val ,
double step ,
double upper );
103 virtual bool SetFixedVariable(
unsigned int ,
const std::string & ,
double );
106 virtual bool SetVariableValue(
unsigned int ,
double );
109 virtual bool SetVariableStepSize(
unsigned int ,
double );
111 virtual bool SetVariableLowerLimit(
unsigned int ,
double );
113 virtual bool SetVariableUpperLimit(
unsigned int ,
double );
115 virtual bool SetVariableLimits(
unsigned int ivar,
double lower,
double upper);
117 virtual bool FixVariable(
unsigned int);
119 virtual bool ReleaseVariable(
unsigned int);
122 virtual bool IsFixedVariable(
unsigned int)
const;
128 virtual bool Minimize();
131 virtual double MinValue()
const;
134 virtual double Edm()
const;
137 virtual const double *
X()
const {
return &fParams.front(); }
143 virtual unsigned int NCalls()
const;
147 virtual unsigned int NDim()
const {
return fDim; }
151 virtual unsigned int NFree()
const;
157 virtual const double *
Errors()
const {
return &fErrors.front(); }
163 virtual double CovMatrix(
unsigned int i,
unsigned int j)
const {
164 return ( fCovar.size() > (i + fDim* j) ) ? fCovar[i + fDim* j] : 0;
175 virtual bool GetCovMatrix(
double * cov)
const;
184 virtual bool GetHessianMatrix(
double *
h)
const;
187 virtual int CovMatrixStatus()
const;
190 virtual double GlobalCC(
unsigned int )
const;
193 virtual bool GetMinosError(
unsigned int i,
double & errLow,
double & errUp,
int = 0);
198 virtual bool Hesse();
204 virtual bool Scan(
unsigned int i,
unsigned int &nstep,
double *
x,
double *
y,
double xmin = 0,
double xmax = 0);
210 virtual bool Contour(
unsigned int i,
unsigned int j,
unsigned int & npoints,
double *xi,
double *xj);
213 virtual void PrintResults();
219 virtual std::string VariableName(
unsigned int ivar)
const;
223 virtual int VariableIndex(
const std::string & name)
const;
227 bool static UseStaticMinuit(
bool on =
true);
231 void SuppressMinuitWarnings(
bool nowarn=
true);
236 static void Fcn(
int &,
double * ,
double &
f,
double * ,
int);
238 static void FcnGrad(
int &,
double * g,
double & f,
double * ,
int);
241 void InitTMinuit(
int ndim);
247 void DoReleaseFixParameter(
int ivar);
250 void RetrieveParams();
253 void RetrieveErrorMatrix();
256 bool CheckMinuitInstance()
const;
259 bool CheckVarIndex(
unsigned int ivar)
const;
Interface (abstract class) for multi-dimensional functions providing a gradient calculation.
virtual const double * Errors() const
return errors at the minimum
static TMinuit * fgMinuit
Implementation in C++ of the Minuit package written by Fred James.
Namespace for new ROOT classes and functions.
std::vector< double > fParams
Class, describing value, limits and step size of the parameters Provides functionality also to set/re...
virtual double CovMatrix(unsigned int i, unsigned int j) const
return covariance matrices elements if the variable is fixed the matrix is zero The ordering of the v...
#define ClassDef(name, id)
Abstract Minimizer class, defining the interface for the various minimizer (like Minuit2, Minuit, GSL, etc..) Plug-in's exist in ROOT to be able to instantiate the derived classes like ROOT::Math::GSLMinimizer or ROOT::Math::Minuit2Minimizer via the plug-in manager.
virtual const double * X() const
return pointer to X values at the minimum
Documentation for the abstract class IBaseFunctionMultiDim.
static bool fgUseStaticMinuit
RooCmdArg Hesse(Bool_t flag=kTRUE)
ROOT::Minuit::EMinimizerType fType
double func(double *x, double *p)
Binding & operator=(OUT(*fun)(void))
virtual unsigned int NDim() const
this is <= Function().NDim() which is the total number of variables (free+ constrained ones) ...
TMinuitMinimizer class: ROOT::Math::Minimizer implementation based on TMinuit.
std::vector< double > fCovar
virtual const double * MinGradient() const
return pointer to gradient values at the minimum
virtual bool ProvidesError() const
minimizer provides error and error matrix
std::vector< double > fErrors