void test(void){ using namespace RooFit; using namespace RooStats; using namespace std; double XMIN = -5.; double XMAX = +5.; double XMIN2 = -0.; double XMAX2 = +5.; double par_mean = 0.; double par_sigma = 1.; double par_norm = 10.; RooRealVar x("x","x",XMIN,XMAX); x.setBins((int)XMAX-(int)XMIN); x.setRange("fullrange",XMIN,XMAX); x.setRange("testrange",XMIN2,XMAX2); RooRealVar mg("mg","mg",par_mean); RooRealVar sg("sg","sg",par_sigma); RooRealVar ng("ng","ng",par_norm); RooGaussian gaus("gaus","gaus",x,mg,sg); RooExtendPdf egaus("egaus","egaus",gaus,ng); TCanvas* c1 = new TCanvas("c1","c1"); RooPlot* rp = x.frame(XMIN,XMAX); egaus.plotOn(rp,Range("fullrange"),Normalization(1.,RooAbsReal::RelativeExpected)); rp->GetXaxis()->SetRangeUser(XMIN2,XMAX2); rp->Draw(); double fraction = egaus.createIntegral(x,NormSet(x),Range("testrange"))->getVal(); RooArgList pars(* egaus.getParameters(RooArgSet(x))); RooArgSet prodSet(egaus); RooProduct unNormPdf("gauss model","gauss model",prodSet); TF1* root_egaus = unNormPdf.asTF(RooArgList(x),pars); double integ = root_egaus->Integral(XMIN,XMAX); double integ_sub = root_egaus->Integral(XMIN2,XMAX2); cout<<"createIntegral "< "<Draw(); }