13 #ifndef ROOT_TLinearMinimizer
14 #define ROOT_TLinearMinimizer
30 class TLinearMinimizer :
public ROOT::Math::Minimizer {
37 TLinearMinimizer (
int type = 0);
42 TLinearMinimizer (
const char * type );
47 virtual ~TLinearMinimizer ();
55 TLinearMinimizer(
const TLinearMinimizer &);
60 TLinearMinimizer & operator = (
const TLinearMinimizer & rhs);
65 virtual void SetFunction(
const ROOT::Math::IMultiGenFunction & func);
68 virtual void SetFunction(
const ROOT::Math::IMultiGradFunction & func);
71 virtual bool SetVariable(
unsigned int ,
const std::string & ,
double ,
double ) {
return false; }
74 virtual bool SetFixedVariable(
unsigned int ,
const std::string & ,
double );
77 virtual bool Minimize();
80 virtual double MinValue()
const {
return fMinVal; }
83 virtual double Edm()
const {
return 0; }
86 virtual const double * X()
const {
return &fParams.front(); }
89 virtual const double * MinGradient()
const {
return 0; }
92 virtual unsigned int NCalls()
const {
return 0; }
96 virtual unsigned int NDim()
const {
return fDim; }
100 virtual unsigned int NFree()
const {
return fNFree; }
103 virtual bool ProvidesError()
const {
return true; }
106 virtual const double * Errors()
const {
return (fErrors.empty()) ? 0 : &fErrors.front(); }
112 virtual double CovMatrix(
unsigned int i,
unsigned int j)
const {
113 return (fCovar.empty()) ? 0 : fCovar[i + fDim* j];
117 virtual int CovMatrixStatus()
const {
118 if (fCovar.size() == 0)
return 0;
119 return (fStatus ==0) ? 3 : 1;
136 std::vector<double> fParams;
137 std::vector<double> fErrors;
138 std::vector<double> fCovar;
140 const ROOT::Math::IMultiGradFunction * fObjFunc;
141 TLinearFitter * fFitter;
143 ClassDef(TLinearMinimizer,1)