%%cpp -d #include #include "TString.h" #include "TROOT.h" #include "RooGlobalFunc.h" #include "RooWorkspace.h" #include "RooRealVar.h" #include "RooAbsPdf.h" #include "RooDataSet.h" #include "RooPlot.h" #include "RooStats/HLFactory.h" using namespace RooFit; using namespace RooStats; using std::ofstream; TString card_name("HLFavtoryexample.rs"); ofstream ofile(card_name); ofile << "// The simplest card\n\n" << "gauss = Gaussian(mes[5.20,5.30],mean[5.28,5.2,5.3],width[0.0027,0.001,1]);\n" << "argus = ArgusBG(mes,5.291,argpar[-20,-100,-1]);\n" << "sum = SUM(nsig[200,0,10000]*gauss,nbkg[800,0,10000]*argus);\n\n"; ofile.close(); HLFactory hlf("HLFavtoryexample", card_name, false); auto w = hlf.GetWs(); auto mes = dynamic_cast(w->arg("mes")); auto sum = dynamic_cast(w->pdf("sum")); auto argus = dynamic_cast(w->pdf("argus")); auto data = sum->generate(*mes, 2000); sum->fitTo(*data); auto mesframe = mes->frame(); data->plotOn(mesframe); sum->plotOn(mesframe); sum->plotOn(mesframe, Components(*argus), LineStyle(kDashed)); gROOT->SetStyle("Plain"); mesframe->Draw(); %jsroot on gROOT->GetListOfCanvases()->Draw()