20 using namespace RooFit;
25 void rf102_dataimport()
38 RooRealVar x(
"x",
"x", -10, 10);
41 RooDataHist dh(
"dh",
"dh", x, Import(*hh));
47 RooPlot *frame = x.frame(Title(
"Imported TH1 with Poisson error bars"));
51 RooRealVar mean(
"mean",
"mean", 0, -10, 10);
52 RooRealVar sigma(
"sigma",
"sigma", 3, 0.1, 10);
53 RooGaussian gauss(
"gauss",
"gauss", x, mean, sigma);
63 RooPlot *frame2 = x.frame(Title(
"Imported TH1 with internal errors"));
64 dh.plotOn(frame2, DataError(RooAbsData::SumW2));
81 TTree *tree = makeTTree();
84 RooRealVar y(
"y",
"y", -10, 10);
94 RooDataSet ds(
"ds",
"ds", RooArgSet(x, y), Import(*tree));
100 std::ofstream outstream(
"rf102_testData.txt");
108 std::cout <<
"\n-----------------------\nReading data from ASCII\n";
109 RooDataSet *dataReadBack =
110 RooDataSet::read(
"rf102_testData.txt",
114 dataReadBack->Print(
"V");
116 std::cout <<
"\nOriginal data, line 20:\n";
117 ds.get(20)->Print(
"V");
119 std::cout <<
"\nRead-back data, line 20:\n";
120 dataReadBack->get(20)->Print(
"V");
129 RooPlot *frame3 = y.frame(Title(
"Unbinned data shown in default frame binning"));
133 RooPlot *frame4 = y.frame(Title(
"Unbinned data shown with custom binning"));
134 ds.plotOn(frame4, Binning(20));
136 RooPlot *frame5 = y.frame(Title(
"Unbinned data read back from ASCII file"));
137 ds.plotOn(frame5, Binning(20));
138 dataReadBack->plotOn(frame5, Binning(20), MarkerColor(kRed), MarkerStyle(5));
141 TCanvas *c =
new TCanvas(
"rf102_dataimport",
"rf102_dataimport", 1000, 800);
144 gPad->SetLeftMargin(0.15);
145 frame->GetYaxis()->SetTitleOffset(1.4);
148 gPad->SetLeftMargin(0.15);
149 frame2->GetYaxis()->SetTitleOffset(1.4);
153 gPad->SetLeftMargin(0.15);
154 frame3->GetYaxis()->SetTitleOffset(1.4);
157 gPad->SetLeftMargin(0.15);
158 frame4->GetYaxis()->SetTitleOffset(1.4);
161 gPad->SetLeftMargin(0.15);
162 frame4->GetYaxis()->SetTitleOffset(1.4);
170 TH1D *hh =
new TH1D(
"hh",
"hh", 25, -10, 10);
171 for (
int i = 0; i < 100; i++) {
172 hh->Fill(gRandom->Gaus(0, 3));
181 TTree *tree =
new TTree(
"tree",
"tree");
182 Double_t *px =
new Double_t;
183 Double_t *py =
new Double_t;
184 tree->Branch(
"x", px,
"x/D");
185 tree->Branch(
"y", py,
"y/D");
186 for (
int i = 0; i < 100; i++) {
187 *px = gRandom->Gaus(0, 3);
188 *py = gRandom->Uniform() * 30 - 15;