Exemple #1
0
import ROOT, os
from ROOT import TFile, TH1, TString

outTxt = open(os.getenv('FIT_WORKDIR') + '/distribsFromDiffXsFwk.txt', 'w')

with open(
        os.getenv('FIT_WORKDIR') + '/configs/diffXsFwk/diffXsDirPath.txt',
        'r') as f:
    l = f.readline().splitlines()

diffFwkDir = l[0]

aFile = ROOT.TFile(diffFwkDir +
                   '/selectionRoot/Nominal/emu/emu_ttbarsignalplustau.root')

for key in aFile.GetListOfKeys():
    keyName = TString(key.GetName())

    if keyName.Contains('bcp_'): continue
    if not keyName.Contains('Hyp'): continue
    if keyName.Contains('XSec'): continue

    inFile = ROOT.TFile(diffFwkDir + '/Plots/Nominal/emu/' + str(keyName) +
                        '_topmass.root')
    if not inFile.IsZombie(): outTxt.write(str(keyName) + '\n')

outTxt.close()
Exemple #2
0
def limit_canvas(limits_, signal_, oname_):

    m = [mp.mass for mp in limits_]
    exp = [mp.exp for mp in limits_]
    exp68up = [mp.exp68up for mp in limits_]
    exp68dn = [mp.exp68dn for mp in limits_]
    exp95up = [mp.exp95up for mp in limits_]
    exp95dn = [mp.exp95dn for mp in limits_]
    obs = [mp.obs for mp in limits_]

    N = len(limits_)
    gExp = TGraph()
    g68 = TGraph(2 * N)
    g95 = TGraph(2 * N)
    gObs = TGraph()
    gTH = get_theory_XsecBR_graph(signal_)

    for a in range(0, N):
        gExp.SetPoint(a, m[a], exp[a])
        gObs.SetPoint(a, m[a], obs[a])
        g68.SetPoint(a, m[a], exp68dn[a])
        g95.SetPoint(a, m[a], exp95dn[a])
        g68.SetPoint(N + a, m[N - a - 1], exp68up[N - a - 1])
        g95.SetPoint(N + a, m[N - a - 1], exp95up[N - a - 1])

    trans = 0
    up = 0
    if signal_ == 'n':
        trans = 0.770776
        up = 3
    if signal_ == 'w':
        trans = 0.836432
        up = 10
    if signal_ == 'r':
        trans = 0.899902
        up = 4

    gExp.SetLineStyle(2)
    gExp.SetLineWidth(4)
    gExp.SetLineColor(TColor.GetColor('#112288'))

    g68.SetLineStyle(1)
    g68.SetLineWidth(0)
    g68.SetLineColor(ROOT.kBlack)
    g68.SetFillColor(TColor.GetColor('#4488dd'))

    g95.SetLineStyle(1)
    g95.SetLineWidth(0)
    g95.SetLineColor(ROOT.kBlack)
    g95.SetFillColor(TColor.GetColor('#99bbff'))

    gObs.SetLineStyle(1)
    gObs.SetLineWidth(4)
    gObs.SetLineColor(ROOT.kBlack)
    gObs.SetMarkerStyle(21)
    gObs.SetMarkerSize(0.8)

    gTH.SetLineStyle(7)
    gTH.SetLineWidth(4)
    gTH.SetMarkerSize(0)
    gTH.SetMarkerColor(ROOT.kRed + 1)
    gTH.SetLineColor(ROOT.kRed + 1)

    leg = TLegend(0.58, 0.633, 0.969, 0.908)
    leg.SetFillColor(0)
    leg.SetBorderSize(0)
    leg.AddEntry(gExp, 'Expected (95% CL)', 'l')
    leg.AddEntry(gObs, 'Observed (95% CL)', 'l')
    leg.AddEntry(gTH, signal_dict[signal_][1], 'l')
    leg.AddEntry(g68, '#pm1#sigma Expected', 'f')
    leg.AddEntry(g95, '#pm2#sigma Expected', 'f')

    text_TL = TPaveText(0.14, 0.830, 0.44, 0.900, 'NDC')
    text_TL.AddText(label_TL)
    text_TL.SetFillColor(0)
    text_TL.SetTextAlign(12)
    text_TL.SetTextSize(0.06)
    text_TL.SetTextFont(42)

    text_TR = TPaveText(0.586, 0.923, 0.999, 0.997, 'NDC')
    text_TR.AddText(label_TR)
    text_TR.SetFillColor(0)
    text_TR.SetTextAlign(32)
    text_TR.SetTextSize(0.055)
    text_TR.SetTextFont(42)

    c = TCanvas('c', 'c', 950, 750)
    c.SetTopMargin(0.08)
    c.SetRightMargin(0.02)
    c.SetBottomMargin(0.135)
    c.SetLeftMargin(0.11)
    #c.SetGrid()
    c.SetLogy()

    #hr = c.DrawFrame(0.401,0.001,3.999,1000)
    hr = c.DrawFrame(0.401, 0.001, 4.199, 1000)
    gExp.Sort()

    g95.Draw('f')
    g68.Draw('f')
    gTH.Draw('L')
    gExp.Draw('L')

    gObs.Sort()
    gObs.Draw('L')

    hr.GetXaxis().SetTitle('M_{' + signal_dict[signal_][0] + '} [TeV]')
    hr.GetYaxis().SetTitle('Upper limit on #sigma_{' +
                           signal_dict[signal_][0] + '} #times B(' +
                           signal_dict[signal_][0] +
                           ' #rightarrow t#bar{t}) [pb]')
    #hr.GetYaxis().SetTitle('\\mathrm{Upper~limit~on~}\\sigma_{'+signal_dict[signal_][0]+'}\\times\\mathscr{B}('+signal_dict[signal_][0]+' \\rightarrow t\\bar{t}) [pb]')
    hr.GetXaxis().SetTitleSize(0.055)
    hr.GetYaxis().SetTitleSize(0.055)
    hr.GetXaxis().SetTitleFont(42)
    hr.GetYaxis().SetTitleFont(42)
    hr.GetXaxis().SetTitleOffset(1.00)
    hr.GetYaxis().SetTitleOffset(0.98)
    hr.GetXaxis().SetLabelSize(0.045)
    hr.GetYaxis().SetLabelSize(0.045)

    name = TString(oname_)
    if name.Contains("com"):
        tl = TLine(trans, 1e-3, trans, up)
        tl.SetLineStyle(ROOT.kDashed)
        tl.SetLineColor(ROOT.kGray + 1)
        tl.SetLineWidth(3)
        tl.Draw()

    c.Update()
    text_TL.Draw('same')
    text_TR.Draw('same')
    leg.Draw()

    c.SaveAs(oname_ + '.pdf')
    c.Close()
Exemple #3
0
    ROOT.gStyle.SetPadGridX(1)
    ROOT.gStyle.SetPadGridY(1)
    ROOT.gStyle.SetOptStat(0)
    # ROOT.gStyle.SetPadLeftMargin(.2);
    # ROOT.gStyle.SetPadRightMargin(.1);

    c1.cd(1)

    stack.Draw("nostack hist e1 x0")
    stack.GetXaxis().SetRangeUser(0, 256)
    stack.SetMinimum(.1)
    stack.SetMaximum(Maximum)
    ROOT.gPad.SetLogy()
    c2.cd(0)
    stack.Draw("nostack hist e1 x0")
    if (outfile.Contains("SR_90_on_top")):
        stack.GetXaxis().SetRangeUser(0, 256)
    else:
        stack.GetXaxis().SetRangeUser(0, 100)
    stack.SetMinimum(.1)
    stack.SetMaximum(Maximum)
    ROOT.gPad.SetLeftMargin(.15)
    ROOT.gPad.SetRightMargin(.05)

    ROOT.gPad.SetLogy()
    ROOT.gPad.Update()
    for idx, it in enumerate(fitfuncs):
        # if idx>0 and idx<7:
        c1.cd(1)
        fitfuncs[idx].Draw("same")
        c2.cd(0)