double fitf(Double_t *x,Double_t *par){ double fitval=(par[0]*x[0]+par[1]*x[1]+par[2]); return fitval; } void rr() { const int bin=40; TCanvas *c=new TCanvas("c","c",800,600); c->cd(); TH3F *h=new TH3F("h","h",bin,0,50,bin,0,50,bin,0,50); TRandom ran; double nn=22; const int N=5000; double xx[N]={0}; double yy[N]={0}; double zz[N]={0}; for(int i=0;i<5000;i++){ h->Fill(ran.Poisson(nn),ran.Poisson(nn),ran.Poisson(10)+10); } cout<SetParameters(1,1,10); f1->SetMinimum(0); f1->SetMaximum(50); h->Fit(f1); f1->Draw("surf2"); h->Draw("same BOX2 Z"); }