Dear all,
Recently, I am confused when using roofit.
I construct a total pdf contains different components, and use it to perform fit.
However the fit range changes automatically, and the pdf lead a numerical integration which is time consuming!
Here is a brief description of the code:
# variable
# I specifies the range of the fit
mass = RooRealVar("mass", "mass", 1780, 2000)
# these two histpdf are used to construct total pdf
dh_sigleak = RooDataHist("dh_sigleak", "", mass, h_sigleak)
pdf_sigleak = RooHistPdf("pdf_sigleak","", mass, dh_sigleak, 2) # the kRed one
dh_kpietap = RooDataHist("dh_kpietap", "", mass, h_kpietap)
pdf_kpietap= RooHistPdf("pdf_kpietap", "", mass, dh_kpietap, 2) # the KGreen one
# total pdf
totpdf = RooAddPdf("totpdf","", RooArgList(pdf_sigleak, pdf_kpieta), RooArgList(n_sigleak, n_kpieta))
result = totpdf.fitTo(data, RooFit.NumCPU(6), RooFit.Save(1))
# the mass range[1780, 2000] is changed to [1775, 2000] automatically.
# then the fit result looks like the mass range is also changed, which lead to a bad result.
# for now I dont know how to make the range get normal in the left bottom
# time consuming process
[#1] INFO:NumericIntegration -- RooRealIntegral::init(pdf_sigleak_Int[D_M_K3pi]) using numeric integrator RooIntegrator1D to calculate Int(D_M_K3pi)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(pdf_kpietap_Int[D_M_K3pi]) using numeric integrator RooIntegrator1D to calculate Int(D_M_K3pi)