Hi,
In root we can subtract a function from a histogram by using:
h->Add(func, -1)
I was wondering if we can do the same in Roofit ? So basically I would like to subtract “bkg” from the histogram “h”.
you can find my code down below.
RooRealVar x("x","MM_{(#pi #pi)} GeV/c^{2}",3.04,3.17) ;
RooDataHist dh("dh","dataset",x,h);
RooPlot* frame = x.frame(Title("")) ;
dh.plotOn(frame,Name("dh")) ;
RooRealVar mean1("#mu","mean of gaussians",3.095,3.099);
RooRealVar sigma1("#sigma","width of gaussians",0.0025,0.006);
RooGaussian sig1("sig1", "sig1", x, mean1, sigma1);
RooRealVar a0("a0","a0",-2.,1.) ;
RooChebychev bkg("bkg","background p.d.f.",x,RooArgList(a0));
RooRealVar nsig("N_{SIG}","signal events",0,1000000);
RooRealVar nbkg("N_{BKG}","signal background even0ts",0,100000000);
RooExtendPdf esig("esig","esig",sig1,nsig) ;
RooExtendPdf ebkg("ebkg","ebkg",bkg,nbkg) ;
RooAddPdf all("all","all",RooArgList(esig,ebkg)) ;
RooRealVar sig1frac("sig1frac","fraction of component 1 in signal",0.8,0.,1.) ; //sig +bcg
RooAddPdf all("all","model",RooArgList(sig1,bkg),RooArgList(nsig,nbkg));
RooFitResult* r = all.fitTo(dh,Extended(kTRUE),Save()) ;
all.paramOn(frame,Layout(0.5,0.90,0.55));
all.plotOn(frame,Name("all"));
all.plotOn(frame,Components(bkg),LineStyle(kDashed));
r->Print();
frame->Draw();