void test2(void){ using namespace RooFit; using namespace RooStats; using namespace std; double XMIN = 80.; double XMAX = 400.; double XMIN2 = 145.; double XMAX2 = 155.; double par_nsig = 141.261; double par_mean = 149.136; double par_width = 4.09565; double par_sigma = 3.48468; double par_lands = 7.85122; double par_landf = 0.85; RooRealVar x("x","x",XMIN,XMAX); x.setBins((int)XMAX-(int)XMIN); x.setRange("fullrange",XMIN,XMAX); x.setRange("testrange",XMIN2,XMAX2); RooRealVar negativ("negativ","negativ",-1.); RooFormulaVar negmass("negmass","x*negativ",RooArgSet(x,negativ)); RooRealVar nsig("nsig","nsig",par_nsig); RooRealVar mean("mean","mean",par_mean); RooRealVar width("width","width",par_width); RooRealVar sigma("sigma","sigma",par_sigma); RooRealVar lands("lands","lands",par_lands); RooRealVar landf("landf","landf",par_landf); RooFormulaVar landm("landm","mean*negativ",RooArgSet(mean,negativ)); RooLandau f_landau("f_landau","f_landau",negmass,landm,lands); RooVoigtian f_breit("f_breit","f_breit",x,mean,width,sigma); RooAddPdf f_pdf("f_pdf","f_pdf",RooArgList(f_breit,f_landau),landf); RooExtendPdf f_model("f_model","my model",f_pdf,nsig); TCanvas* c1 = new TCanvas("c1","c1"); RooPlot* rp = x.frame(XMIN,XMAX); f_model.plotOn(rp,Range("fullrange"),Normalization(1.,RooAbsReal::RelativeExpected)); rp->GetXaxis()->SetRangeUser(XMIN2,XMAX2); rp->GetYaxis()->SetRangeUser(4.5,10.); rp->Draw(); double fraction = f_model.createIntegral(x,NormSet(x),Range("testrange"))->getVal(); RooArgList pars(* f_model.getParameters(RooArgSet(x))); RooArgSet prodSet(f_model); RooProduct unNormPdf("gauss model","gauss model",prodSet); TF1* root_f_model = unNormPdf.asTF(RooArgList(x),pars); double integ = root_f_model->Integral(XMIN,XMAX); double integ_sub = root_f_model->Integral(XMIN2,XMAX2); cout< "<GetYaxis()->SetRangeUser(4.5,10.); rp2->Draw(); }