%%cpp -d #include #include #include #include #include #include #include double fitf(double *x, double *par) { double arg = 0; if (par[2] != 0) arg = (x[0] - par[1])/par[2]; double fitval = par[0]*std::exp(-0.5*arg*arg); return fitval; } TString dir = gROOT->GetTutorialDir(); dir.Append("/hsimple.C"); dir.ReplaceAll("/./","/"); if (!gInterpreter->IsLoaded(dir.Data())) gInterpreter->LoadMacro(dir.Data()); TFile *hsimpleFile = (TFile*)gROOT->ProcessLineFast("hsimple(1)"); if (!hsimpleFile) return; TCanvas *c1 = new TCanvas("c1","the fit canvas",500,400); TH1F *hpx = (TH1F*)hsimpleFile->Get("hpx"); TF1 *func = new TF1("fitf",fitf,-2,2,3); func->SetParameters(100,0,1); func->SetParNames("Constant","Mean_value","Sigma"); hpx->Fit(func,"r"); printf("Integral of function = %g\n",func->Integral(-2,2)); %jsroot on gROOT->GetListOfCanvases()->Draw()