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)