Double_t fitf(Double_t *x, Double_t *par) { Double_t fitval =(par[0]*x[1]+par[1]*x[1]*x[1])* (TMath::Exp(par[2]*x[0]*x[0]+par[3]*x[0]+par[4])); return fitval; } void lemaire1() { const Int_t n = 34; const Int_t npar = 5; const Double_t zero = 0.0; Int_t ixy,i; Double_t aa; Double_t res; Double_t ressum; Double_t chi2; Double_t param[npar]; Double_t ezfit[n]; Double_t zzfit[n]; Double_t x[n] = { 1500.0, 1700.0, 1900.0, 2100.0, 2300.0, 2500.0, 2700.0, 1500.0, 1700.0, 1900.0, 2500.0, 3000.0, 3500.0, 1500.0, 1900.0, 2500.0, 3000.0, 3500.0, 4000.0, 5000.0, 1500.0, 1900.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0, 1500.0, 1900.0, 2500.0, 3000.0, 4000.0, 5000.0 }; Double_t y[n] = { 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.07, 0.1 , 0.1, 0.1 , 0.1, 0.1 , 0.1 }; Double_t z[n] = { 136.5, 67.75, 35.97, 19.65, 10.98, 6.56, 3.94, 537.2, 271.0 , 139.7 , 24.74, 7.3 , 2.4, 3187.7 , 819.0, 149.0 , 43.3 , 14.0, 4.52, 0.4, 5953.2, 1574.0, 276.0 , 79.9 , 26.2, 7.8 , 2.73, 0.93, 12476.4,3157.5, 577.36, 163.8, 17.6 , 2.11 }; TH2D *h2 = new TH2D("h2","signal 2d",60,0.,6000.,20,0.,0.2); h2->FillN(n,x,y,z,1); UInt_t canv_w=900; UInt_t canv_h=636; gStyle->SetOptLogx(0); gStyle->SetOptLogy(0); gStyle->SetOptLogz(1); gStyle->SetOptFit(0001); TCanvas *MyC1 = new TCanvas("MyC1","Graph ", canv_w ,canv_h); TF2 *func = new TF2("fitf",fitf,0.,6000.,0.0,0.2,npar); func->SetParameter(0,13.2); func->SetParameter(1,732.5); func->SetParameter(2,3.2e-07); func->SetParameter(3,-0.00442); func->SetParameter(4,13.2); h2->Fit(func,""); h2->Draw("LEGO2"); for (i=0;iGetParameter(i); printf (" parameter %d %le \n",i,param[i]); } for(i=0;iFindBin(x[i],y[i]); ezfit[i] = h2->GetBinError(ixy); printf("i=%d x=%f y=%f z=%f ezfit=%f \n",i,x[i],y[i],z[i],ezfit[i]); } for(i=0;i