10 #ifndef ROOT_TBackCompFitter_H_
11 #define ROOT_TBackCompFitter_H_
37 class TBackCompFitter :
public TVirtualFitter {
46 TBackCompFitter(
const std::shared_ptr<ROOT::Fit::Fitter> & fitter,
const std::shared_ptr<ROOT::Fit::FitData> & data );
48 virtual ~TBackCompFitter();
53 kCanDeleteLast = BIT(9)
57 virtual Double_t Chisquare(Int_t npar, Double_t *params)
const;
58 virtual void Clear(Option_t *option=
"");
59 virtual Int_t ExecuteCommand(
const char *command, Double_t *args, Int_t nargs);
60 virtual void FixParameter(Int_t ipar);
62 virtual void GetConfidenceIntervals(Int_t n, Int_t ndim,
const Double_t *x, Double_t *ci, Double_t cl=0.95);
63 virtual void GetConfidenceIntervals(TObject *obj, Double_t cl=0.95);
65 virtual Double_t *GetCovarianceMatrix()
const;
66 virtual Double_t GetCovarianceMatrixElement(Int_t i, Int_t j)
const;
67 virtual Int_t GetErrors(Int_t ipar,Double_t &eplus, Double_t &eminus, Double_t &eparab, Double_t &globcc)
const;
68 virtual Int_t GetNumberTotalParameters()
const;
69 virtual Int_t GetNumberFreeParameters()
const;
71 virtual Double_t GetParError(Int_t ipar)
const;
72 virtual Double_t GetParameter(Int_t ipar)
const;
73 virtual Int_t GetParameter(Int_t ipar,
char *name,Double_t &value,Double_t &verr,Double_t &vlow, Double_t &vhigh)
const;
74 virtual const char *GetParName(Int_t ipar)
const;
75 virtual Int_t GetStats(Double_t &amin, Double_t &edm, Double_t &errdef, Int_t &nvpar, Int_t &nparx)
const;
76 virtual Double_t GetSumLog(Int_t i);
78 virtual Bool_t IsFixed(Int_t ipar)
const ;
80 virtual void PrintResults(Int_t level, Double_t amin)
const;
81 virtual void ReleaseParameter(Int_t ipar);
82 virtual void SetFitMethod(
const char *name);
83 virtual Int_t SetParameter(Int_t ipar,
const char *parname,Double_t value,Double_t verr,Double_t vlow, Double_t vhigh);
85 virtual void SetFCN(
void (*fcn)(Int_t &, Double_t *, Double_t &f, Double_t *, Int_t) );
87 virtual void SetMethodCall(TMethodCall * m) { fMethodCall = m; }
90 ROOT::Fit::FitConfig & GetFitConfig() {
return fFitter->Config(); }
93 const ROOT::Fit::FitResult & GetFitResult()
const {
return fFitter->Result(); }
96 TFitResult * GetTFitResult()
const;
99 const ROOT::Fit::FitData & GetFitData()
const {
return *fFitData; }
102 ROOT::Math::Minimizer * GetMinimizer()
const;
105 ROOT::Math::IMultiGenFunction * GetObjFunction()
const;
108 bool Scan(
unsigned int ipar, TGraph * gr,
double xmin = 0,
double xmax = 0);
116 bool Contour(
unsigned int ipar,
unsigned int jpar, TGraph * gr ,
double confLevel = 0.683);
119 virtual void SetObjFunction( ROOT::Math::IMultiGenFunction * f);
122 void ReCreateMinimizer();
127 bool ValidParameterIndex(
int ipar)
const;
128 void DoSetDimension();
133 std::shared_ptr<ROOT::Fit::FitData> fFitData;
134 std::shared_ptr<ROOT::Fit::Fitter> fFitter;
135 ROOT::Math::Minimizer * fMinimizer;
136 ROOT::Math::IMultiGenFunction * fObjFunc;
137 ROOT::Math::IParamMultiFunction * fModelFunc;
138 mutable std::vector<double> fCovar;
142 ClassDef(TBackCompFitter,1)
148 #endif //ROOT_TBackCompFitter_H_