Dear experts , this query is related to the post linked below , but slightly differnt.
Help Generating Dataset from Nested RooSimultaneous
So I am also trying to do what the OP in the above post was doing , I believe, trying to generate roodatasets using nested simultaneous PDFs.
Now, I am trying to do the same thing but with R.RooFit.Extended()
option included.
reso_ws.factory("tagflav[B0,B0bar]")
reso_ws.factory("qr[qr0,qr1,qr2,qr3,qr4,qr5,qr6]")
obs_names = ["deltat", "tagflav", "deltaterr", "r", "mod_mbc", "deltae", "csobdtmu"]
obs_td = R.RooArgSet()
for name in obs_names:
obs_td.add(reso_ws[name])
obs_td.add(reso_ws.obj("qr")) *# <-- crucial*
R.RooRandom.randomGenerator().SetSeed(23414)
*# ----------------- Create inner SIMUL PDFs per tag -----------------*
reso_ws.factory("
SIMUL::simPdf_sig_btag_all_qr(qr,
qr0=ext_sig_pdf_td_btag_qr0,
qr1=ext_sig_pdf_td_btag_qr1,
qr2=ext_sig_pdf_td_btag_qr2,
qr3=ext_sig_pdf_td_btag_qr3,
qr4=ext_sig_pdf_td_btag_qr4,
qr5=ext_sig_pdf_td_btag_qr5,
qr6=ext_sig_pdf_td_btag_qr6
)
")
reso_ws.factory("
SIMUL::simPdf_sig_bartag_all_qr(qr,
qr0=ext_sig_pdf_td_bartag_qr0,
qr1=ext_sig_pdf_td_bartag_qr1,
qr2=ext_sig_pdf_td_bartag_qr2,
qr3=ext_sig_pdf_td_bartag_qr3,
qr4=ext_sig_pdf_td_bartag_qr4,
qr5=ext_sig_pdf_td_bartag_qr5,
qr6=ext_sig_pdf_td_bartag_qr6
)
")
reso_ws.factory("
SIMUL::simPdf_sig(tagflav,
B0=simPdf_sig_btag_all_qr,
B0bar=simPdf_sig_bartag_all_qr
)
")
*`# Get the top-level SIMUL PDF`*
simul_pdf = reso_ws.pdf("simPdf_sig")
super_cat_sig = simul_pdf.indexCat()
gen_dataset = simul_pdf.generate(
R.RooArgSet(obs_td),`
R.RooFit.AutoBinned(0),
R.RooFit.Extended(), *# Poisson-fluctuated*
R.RooFit.Verbose()
)
All the ext_ pdfs are extended pdfs (14)
Now, the yield I am giving is 834, but the poisson fluctuation yield is almost half of that 476.
What am I doing wrong?
PFA the output of my geneartor
gen.txt (4.4 KB)