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 frame_var, frame_err, frame_pull = DE.check_fit_bias(param_to_study=N_sig, N_toys=100)