In [1]:
import csv
import numpy as np
import ROOT
ROOT.RooMsgService.instance().setGlobalKillBelow(5)
%jsroot on
Welcome to JupyROOT 6.08/02

A quick way to make workspace plots!

In [2]:
infile = ROOT.TFile.Open("output/HistFactoryWorkspace.root")
w = infile.Get("HistFactoryWorkspace")
mc = w.obj("ModelConfig")
data = w.data("obsData")
x = w.var("obs_x_SR")
In [3]:
hist_factory_nav = ROOT.RooStats.HistFactory.HistFactoryNavigation(mc)
In [4]:
Channel = "SR"
stack = hist_factory_nav.GetChannelStack(Channel)
SR_data = hist_factory_nav.GetDataHist(data,Channel,"data")
In [5]:
c1 = ROOT.TCanvas()
stack.Draw()
leg = ROOT.TLegend(0.65, 0.65, 0.9, 0.9)
for hist in stack.GetHists():
    samplename = hist.GetName().rsplit('_')[0]
    leg.AddEntry(hist, samplename,"f")
leg.Draw()
c1.Draw()
In [6]:
pl = ROOT.RooStats.ProfileLikelihoodCalculator(data,mc)
pl.SetConfidenceLevel(0.99)
In [7]:
interval = pl.GetInterval()
In [8]:
plot = ROOT.RooStats.LikelihoodIntervalPlot(interval)
plot.SetNPoints(50)
plot.SetMaximum(5)
c = ROOT.TCanvas()
plot.Draw()
c.Draw()
In [ ]: