Double_t myFun (Double_t *xarg, Double_t *par) { Double_t x = xarg[0] , result = 0.; for (int st=0; st<=3; st++) result += par[st] * TMath::Power (x, st); return result; } void macro_FitErrorMatrix () { TCanvas* c1 = new TCanvas ("c1"); TGraphErrors* gr = new TGraphErrors ("dataPoints.txt"); gr->SetTitle (); gr->Draw ("AP"); TF1* fun = new TF1 ("fun", myFun , -3, 5, 4); fun->SetParameters (-1. , 1. , -6. , 1.); TFitResultPtr fitRes = gr->Fit ( fun , "S" ); TMatrixDSym cov = fitRes->GetCovarianceMatrix (); for (int r = 0; r < cov.GetNrows() ; r++) { for (int c = 0; c < cov.GetNcols() ; c++) cout << setw(16) << cov[r][c] ; cout << endl; } c1->Update(); cin.ignore(); }