// pdf components for model RooHistPdf RxFF_comp{*RxHistPdf_FF, "RxFF_comp"}; RooFFTConvPdf FBx_FF("FBx_FF", "FBx_FF", *X, CsiB, *RxHistPdf_FF); Fsig_FF = new RooAddPdf("Fsig_FF","Fsig_FF",RooArgList(FBx_FF,RxFF_comp),RooArgList(N_nonprompt, N_prompt)); RooProdPdf Signal_FF("Signal_FF","Signal_FF",RooArgList(*Msig_FF,*Fsig_FF)); RooProdPdf Bkg_FF("Bkg_FF","Bkg_FF",RooArgList(*Mbkg_FF, *FBkg_FF )); RooProdPdf Bkg_FF_LB1("Bkg_FF_LB1","Bkg_FF_LB1",RooArgList(*Mbkg_FF, *FbkgSideBandsFF[0])); RooProdPdf Bkg_FF_LB2("Bkg_FF_LB2","Bkg_FF_LB2",RooArgList(*Mbkg_FF, *FbkgSideBandsFF[1])); RooProdPdf Bkg_FF_RB1("Bkg_FF_RB1","Bkg_FF_RB1",RooArgList(*Mbkg_FF, *FbkgSideBandsFF[2])); RooProdPdf Bkg_FF_RB2("Bkg_FF_RB2","Bkg_FF_RB2",RooArgList(*Mbkg_FF, *FbkgSideBandsFF[3])); RooAddition Nsig("Nsig","number of signal events",RooArgList(N_nonprompt,N_prompt)) ; RooRealVar Nbkg("Nbkg","number of background events",500,0,1e9); RooAddPdf* Model_FF_SIG = new RooAddPdf("Model_FF_SIG", "Model_FF_SIG", RooArgSet(Signal_FF, Bkg_FF), RooArgList(Nsig,Nbkg)); RooAddPdf* Model_FF_LB1 = new RooAddPdf("Model_FF_LB1", "Model_FF_LB1", RooArgSet(Signal_FF, Bkg_FF_LB1), RooArgList(Nsig,Nbkg)); RooAddPdf* Model_FF_LB2 = new RooAddPdf("Model_FF_LB2", "Model_FF_LB2", RooArgSet(Signal_FF, Bkg_FF_LB2), RooArgList(Nsig,Nbkg)); RooAddPdf* Model_FF_RB1 = new RooAddPdf("Model_FF_RB1", "Model_FF_RB1", RooArgSet(Signal_FF, Bkg_FF_RB1), RooArgList(Nsig,Nbkg)); RooAddPdf* Model_FF_RB2 = new RooAddPdf("Model_FF_RB2", "Model_FF_RB2", RooArgSet(Signal_FF, Bkg_FF_RB2), RooArgList(Nsig,Nbkg)); // Category defining RooCategory sample("sample", "sample"); sample.defineType("Sigff"); sample.defineType("LB1ff"); sample.defineType("LB2ff"); sample.defineType("RB1ff"); sample.defineType("RB2ff"); // -------- Data labeling ------------- std::map mapUB_; mapUB_["Sigff"] = data_ff_xSig; mapUB_["LB1ff"] = data_ff_LB1; mapUB_["LB2ff"] = data_ff_LB2; mapUB_["RB1ff"] = data_ff_RB1; mapUB_["RB2ff"] = data_ff_RB2; // model for simultaneous fit RooSimultaneous simPdf("simPdf", "simultaneous pdf", sample); simPdf.addPdf(*Model_FF_SIG, "Sigff"); simPdf.addPdf(*Model_FF_LB1, "LB1ff"); simPdf.addPdf(*Model_FF_LB2, "LB2ff"); simPdf.addPdf(*Model_FF_RB1, "RB1ff"); simPdf.addPdf(*Model_FF_RB2, "RB2ff"); RooDataSet combData("combData", "combined data", RooArgSet(Mass,*X), Index(sample), Import(mapUB_)); // Fitting here RooFitResult * fitres = simPdf.fitTo(combData, Save(kTRUE));