Esempio n. 1
0
sig = ROOT.RooGaussian("sig", "sig", m, mean, sigma)
bkgr = ROOT.RooExponential("bkgr", "bkgr", m, exp_par)
model_gen = ROOT.RooAddPdf("model_gen",
                           "model_gen", ROOT.RooArgList(sig, bkgr),
                           ROOT.RooArgList(fraction))
model = ROOT.RooAddPdf('model', 'model', ROOT.RooArgList(sig, bkgr),
                       ROOT.RooArgList(N_sig, N_bkgr))

# Sample N_GEN events
data = model_gen.generate(ROOT.RooArgSet(m), N_GEN)
data = data.reduce(
    f'{m.GetName()} > {m.getMin()} && {m.GetName()} < {m.getMax()}')

# Fit and plot'em all
DE = DataExplorer(label='test', data=data, model=model)
fit_results = DE.fit(minos=True)
c = ROOT.TCanvas()
frame = DE.plot_on_frame()
frame.Draw()

# Make pull distribution for the fit
c_pull = ROOT.TCanvas()
frame_pull = DE.plot_pull()
frame_pull.Draw()

# Plot likelihood profiles
c_ll = ROOT.TCanvas()
frame_ll = DE.plot_ll(poi=N_sig)
frame_ll.Draw()

# Check whether there is bias in the fit