void fit1() { //Simple fitting example (1-d histogram with an interpreted function) //To see the output of this macro, click begin_html here. end_html //Author: Rene Brun TCanvas *c1 = new TCanvas("c1_fit1","The Fit Canvas",200,10,700,500); c1->SetGridx(); c1->SetGridy(); c1->GetFrame()->SetFillColor(21); c1->GetFrame()->SetBorderMode(-1); c1->GetFrame()->SetBorderSize(5); gBenchmark->Start("fit1"); // // We connect the ROOT file generated in a previous tutorial // (see begin_html Filling histograms with random numbers from a function) end_html // TString dir = gSystem->UnixPathName(gInterpreter->GetCurrentMacroName()); dir.ReplaceAll("fit1.C",""); dir.ReplaceAll("/./","/"); TFile *fill = TFile::Open("fillrandom.root"); if (!fill) { gROOT->ProcessLine(Form(".x %s../hist/fillrandom.C",dir.Data())); fill = TFile::Open("fillrandom.root"); if (!fill) return; } // // The function "ls()" lists the directory contents of this file // fill->ls(); // // Get object "sqroot" from the file. Undefined objects are searched // for using gROOT->FindObject("xxx"), e.g.: // TF1 *sqroot = (TF1*) gROOT.FindObject("sqroot") // sqroot->Print(); // // Now fit histogram h1f with the function sqroot // h1f->SetFillColor(45); h1f->Fit("sqroot"); // We now annotate the picture by creating a PaveText object // and displaying the list of commands in this macro // fitlabel = new TPaveText(0.6,0.3,0.9,0.80,"NDC"); fitlabel->SetTextAlign(12); fitlabel->SetFillColor(42); fitlabel->ReadFile(Form("%sfit1_C.C",dir.Data())); fitlabel->Draw(); c1->Update(); gBenchmark->Show("fit1"); }