Skip to content

Instantly share code, notes, and snippets.

@mcitron
Created May 22, 2016 16:28
Show Gist options
  • Save mcitron/0c771fef602859754746d3768e900add to your computer and use it in GitHub Desktop.
Save mcitron/0c771fef602859754746d3768e900add to your computer and use it in GitHub Desktop.
double testRooHistPdf(){
TFile * inputFile = TFile::Open("./testShapes.root");
TH1F * dataHist = (TH1F *)inputFile->Get("Signal/data_obs");
TH1F * zinv = (TH1F *)inputFile->Get("Signal/Zinv");
TH1F * ttw = (TH1F *)inputFile->Get("Signal/Ttw");
TH1F * qcd = (TH1F *)inputFile->Get("Signal/Qcd");
TH1F * sigHist = (TH1F *)inputFile->Get("Signal/sig");
TH1F * totalHist = (TH1F *)zinv->Clone("total");
totalHist->Add(ttw);
totalHist->Add(qcd);
RooRealVar r("r","r",1,-5,5);
RooRealVar x("dummy","Dummy real var",1);
RooRealVar nsig("nsig","number of signal events",5) ;
RooRealVar nbkg("nbkg","number of background events",30) ;
RooDataHist data("data","data",x,dataHist);
RooDataHist bkgDataHist("bkgDataHist","bkgDataHist",x,totalHist);
RooDataHist sigDataHist("sigDataHist","sigDataHist",x,sigHist);
RooHistPdf bkg("bkg","bkg",x,bkgDataHist,0);
RooHistPdf sig("sig","sig",x,sigDataHist,0);
RooExtendPdf esig("esig","extended signal p.d.f",sig,nsig) ;
RooExtendPdf ebkg("ebkg","extended background p.d.f",bkg,nbkg) ;
//
// RooProduct sigStrength("rsig","sig * r",RooArgSet(r,esig));
RooAddPdf model("model","sig +bkg",RooArgSet(esig,ebkg));
fitResult = model.fitTo(data);
xframe = x.frame();
data.plotOn(xframe);
model.plotOn(xframe, RooFit::VisualizeError(*fitResult));
data.plotOn(xframe); // plot again so that it is on top of the errors
model.plotOn(xframe, RooFit::LineColor(4));
model.plotOn(xframe, RooFit::Components("esig"), RooFit::LineColor(1));
model.plotOn(xframe, RooFit::Components("ebkg"), RooFit::LineColor(2));
xframe->Draw();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment