Double_t fitf(Double_t *x, Double_t *par) { Double_t fitval(0); if ( sqrt(x[0]*x[0]+x[1]*x[1])<90. ) { fitval=par[0]+par[1]*x[0]+par[2]*x[0]*x[0]+par[3]*x[1]+par[4]*x[1]*x[1]+par[5]*x[0]*x[1]; } else {fitval=0;} return fitval; } void macro() { gStyle->SetFrameFillColor(0); TCanvas *c1 = new TCanvas("c1","c1",600,500); gStyle->SetPalette(1); TFile *a = new TFile("graph.root"); TGraph2D *g = (TGraph2D*)a->Get("Graph2D"); TF2 *f2 = new TF2("f2",fitf,0.,90,0.,90.,6); f2->SetParameters(1.,1.,1.,1.,1.,1.); g->Fit("f2"); f2->SetTitle("Minuit fit result on the Graph2D points"); f2->GetXaxis()->SetTitle("X"); f2->GetXaxis()->SetTitleOffset(2.0); f2->GetYaxis()->SetTitle("Y"); f2->GetYaxis()->SetTitleOffset(2.0); f2->GetZaxis()->SetTitle("Z"); f2->GetZaxis()->SetTitleOffset(1.2); f2->Draw("surf1 Z"); g->Draw("same p0"); gPad->SetRightMargin(0.15); gPad->SetTheta(40.2113); gPad->SetPhi(-54.79899); }