#ifndef __CINT__ #include "RooGlobalFunc.h" #endif #include "RooMsgService.h" #include "RooRealVar.h" #include "RooDataSet.h" #include "RooDataHist.h" #include "RooGaussian.h" #include "RooPlot.h" using namespace RooFit; void fittest2() { // decrease level of verbosity RooMsgService::instance().setGlobalKillBelow(RooMsgService::PROGRESS); RooRealVar x("x", "x", -5, 5); x.setBins(50); RooRealVar m1("m1", "m1", 1); RooRealVar s1("s1", "s1", 1); RooGaussian g1("g1x", "g1x", x, m1, s1); RooDataSet* data = g1.generate(RooArgSet(x), 1000); g1.fitTo(*data, Minos(kFALSE), PrintLevel(-1)); RooDataHist* dataH = new RooDataHist("dataH", "dataH", RooArgSet(x), *data); for (Int_t i = 0; i < dataH->numEntries(); ++i) { const RooArgSet* p = dataH->get(i); cout << "x=" << ((RooAbsReal&)(*p)["x"]).getVal() << " hist=" << dataH->weight() << " pdf=" << g1.getVal(p) << endl; } TCanvas* c = new TCanvas; c->Divide(2, 1); c->cd(1); RooPlot* xframe = x.frame(); data->plotOn(xframe); g1.plotOn(xframe); xframe->Draw(); c->cd(2); RooPlot* xframe2 = x.frame(); dataH->plotOn(xframe2); xframe2->Draw(); }