Пример #1
0
    canvas.SetLogy(True)

    canvas.legend.setPosition(0.6, 0.7, 0.95, 0.9)

    canvas.addStacked(bmet,
                      title='Background',
                      color=r.TColor.GetColor(0x55, 0x44, 0xff),
                      idx=-1)

    canvas.addStacked(mcmet,
                      title='#gamma + jet MC',
                      color=r.TColor.GetColor(0xff, 0xaa, 0xcc),
                      idx=-1)

    canvas.addObs(dmet, title='Data')

    canvas.xtitle = canvas.obsHistogram().GetXaxis().GetTitle()
    canvas.ytitle = canvas.obsHistogram().GetYaxis().GetTitle()

    canvas.Update(logy=True)

    canvas.printWeb('monophoton/gjetsTFactor', 'distributions' + region)

###########################################
####### Transfer Factors ##################
###########################################

methods = [('Data', gmets), ('MC', mcmets)]
scanvas = SimpleCanvas(lumi=lumi)
Пример #2
0
        else:
            writeHist(obshist)
            formatHist(obshist, vardef)

        # Take care of masking
        if vardef.blind is not None:
            for i in range(1, obshist.GetNbinsX()+1):
                binCenter = obshist.GetBinCenter(i)
                if vardef.fullyBlinded() or (binCenter > vardef.blind[0] and (vardef.blind[1] == 'inf' or binCenter < vardef.blind[1])):
                    obshist.SetBinContent(i, 0.)
                    obshist.SetBinError(i, 0.)

        if vardef.name == 'count' or vardef.name == args.bbb or vardef.name == args.chi2:
            counters['data_obs'] = obshist
        elif plotDir and not vardef.fullyBlinded():
            canvas.addObs(obshist, title = plotConfig.obs.title)

        if vardef.name == 'count':
            printCounts(counters, plotConfig)

        elif vardef.name == args.bbb:
            print 'Bin-by-bin yield for variable', args.bbb
            printBinByBin(counters, plotConfig)

        elif vardef.name == args.chi2:
            print 'Chi2 for variable', args.chi2
            printChi2(counters, plotConfig)

        if plotDir and vardef.name != 'count':
            canvas.xtitle = obshist.GetXaxis().GetTitle()
            canvas.ytitle = obshist.GetYaxis().GetTitle()
Пример #3
0
    for probeEtaCut in probeEtaCuts:
        finalCuts = allCuts + [probeEtaCut[0]]
        cutString = ' && '.join(['(%s)' % c for c in finalCuts])
        print cutString

        label = recoilCut[1] + '_' + probeEtaCut[1]

        canvas.Clear()
        canvas.legend.Clear()
        canvas.legend.setPosition(0.6, 0.7, 0.9, 0.9)

        dataName = 'dataHist_' + label
        dataHist = r.TH1D(dataName, '', 20, 0., 2.)
        dataHist.Sumw2()
        dataTree.Draw(varString + '>>' + dataName,
                      'weight * (' + cutString + ')', 'goff')
        canvas.addObs(dataHist, title='Data')

        for sample, color, mcTree in mcTrees:
            mcName = sample + '_' + label
            mcHist = r.TH1D(mcName, '', 20, 0., 2.)
            mcHist.Sumw2()
            mcTree.Draw(varString + '>>' + mcName,
                        str(lumi) + ' * weight * (' + cutString + ')', 'goff')

            canvas.addStacked(mcHist, title=sample, color=color)

        canvas.ylimits = (0.001, -1.)

        canvas.printWeb('monophoton/phoMet', 'ratio_' + label, logy=True)
Пример #4
0
                canvas.Clear()
                canvas.legend.Clear()
                canvas.legend.setPosition(0.6, 0.7, 0.9, 0.9)

                dataName = 'dataHist'+skim
                dataHist = varDef.makeHist(dataName)

                if varDef.unit != '':
                    dataHist.GetXaxis().SetTitle(varDef.title + ' (' + varDef.unit +')')
                else:
                    dataHist.GetXaxis().SetTitle(varDef.title)

                dataCutString = cutString + ' && !(run > %s)' % config.runCutOff

                dataTree.Draw(varDef.expr+'>>'+varDef.name+'-'+dataName, 'weight * ('+cutString+')', 'goff')
                print dataHist.Integral()
                canvas.addObs(dataHist, title = 'Data '+skimm)

                for sample, color, mcTree in mcTrees:
                    mcName = sample+skimm
                    mcHist = varDef.makeHist(mcName)
                    mcTree.Draw(varDef.expr+'>>'+varDef.name+'-'+mcName, str(lumi)+' * weight * ('+cutString+')', 'goff')
                    canvas.addStacked(mcHist, title = sample, color = color)

                # canvas.ylimits = (0.001, -1.)
                canvas.xtitle = varDef.title
                canvas.ytitle = 'Events'

                canvas.printWeb('monophoton/phoMet/'+skim, skimm[:3]+'_'+jetsCut[0]+'_'+sign+'_'+varDef.name, logy = False)
Пример #5
0
    canvas.cd()
    canvas.Clear()
    canvas.legend.Clear()

    canvas.ylimits = (0.002, 2500)

    canvas.SetLogy(True)

    canvas.legend.setPosition(0.6, 0.7, 0.95, 0.9)

    canvas.addStacked(bmet, title = 'Background', color = r.TColor.GetColor(0x55, 0x44, 0xff), idx = -1)

    canvas.addStacked(mcmet, title = '#gamma + jet MC', color = r.TColor.GetColor(0xff, 0xaa, 0xcc), idx = -1)

    canvas.addObs(dmet, title = 'Data')

    canvas.xtitle = canvas.obsHistogram().GetXaxis().GetTitle()
    canvas.ytitle = canvas.obsHistogram().GetYaxis().GetTitle()

    canvas.Update(logy = True)

    canvas.printWeb('monophoton/gjetsTFactor', 'distributions'+region)

###########################################
####### Transfer Factors ##################
###########################################

methods = [ ('Data', gmets), ('MC', mcmets) ]
scanvas = SimpleCanvas(lumi = lumi)
Пример #6
0
                if graphic:
                    formatHist(shist, plotdef)
                    title = sspec.title
                    if sspec.group.scale != 1. and group.scale != 'data':
                        title += (' #times %.1f' % sspec.group.scale)
                    canvas.addSignal(shist,
                                     title=title,
                                     color=sspec.color,
                                     drawOpt=drawOpt)
                else:
                    counters[sspec.name] = shist

        if obshist:
            if graphic:
                formatHist(obshist, plotdef)
                canvas.addObs(obshist, title=plotConfig.obs.title)
            else:
                counters['data_obs'] = obshist

        if plotdef.name == 'count':
            printCounts(counters, plotConfig)
        elif plotdef.name == args.bbb:
            printBinByBin(counters, plotdef, plotConfig)
        elif plotdef.name == args.chi2:
            printChi2(counters, plotdef, plotConfig)
        else:
            if args.asimov:
                plotdef.name += args.asimov.capitalize()

            printCanvas(canvas, plotdef, plotConfig, plotDir)
Пример #7
0
data.Add('/mnt/hadoop/scratch/yiiyama/monophoton/skim/sph-16*-m_tpeg.root')

outputFile.cd()
data.Draw('probes.sieie>>hdata', selection, 'goff')

hmc.Scale(hdata.GetSumOfWeights() / hmc.GetSumOfWeights())

ratio = hdata.Clone('ratio')
ratio.Divide(hmc)

line = ROOT.TF1('line', '[0] + [1] * x', 0.0085, 0.0105)
line.SetParameters(1.5, -100.)
ratio.Fit(line)

outputFile.cd()
hmc.Write()
hdata.Write()
ratio.Write()
line.Write('fit')

# visualize

canvas = DataMCCanvas(lumi=sum(s.lumi
                               for s in allsamples.getmany('sph-16*-m')))
canvas.legend.setPosition(0.7, 0.7, 0.9, 0.9)

canvas.addStacked(hmc, title='MC', color=ROOT.kBlue, style=3003)
canvas.addObs(hdata, title='Data')

canvas.printWeb('purity', 'sieie_ratio', logy=False)
Пример #8
0
for recoilCut in recoilCuts:
    allCuts = cuts + [recoilCut[0]]
    for probeEtaCut in probeEtaCuts:
        finalCuts = allCuts + [probeEtaCut[0]]
        cutString = " && ".join(["(%s)" % c for c in finalCuts])
        print cutString

        label = recoilCut[1] + "_" + probeEtaCut[1]

        canvas.Clear()
        canvas.legend.Clear()
        canvas.legend.setPosition(0.6, 0.7, 0.9, 0.9)

        dataName = "dataHist_" + label
        dataHist = r.TH1D(dataName, "", 20, 0.0, 2.0)
        dataHist.Sumw2()
        dataTree.Draw(varString + ">>" + dataName, "weight * (" + cutString + ")", "goff")
        canvas.addObs(dataHist, title="Data")

        for sample, color, mcTree in mcTrees:
            mcName = sample + "_" + label
            mcHist = r.TH1D(mcName, "", 20, 0.0, 2.0)
            mcHist.Sumw2()
            mcTree.Draw(varString + ">>" + mcName, str(lumi) + " * weight * (" + cutString + ")", "goff")

            canvas.addStacked(mcHist, title=sample, color=color)

        canvas.ylimits = (0.001, -1.0)

        canvas.printWeb("monophoton/phoMet", "ratio_" + label, logy=True)
Пример #9
0
                  title='Fake E_{T}^{miss}',
                  color=ROOT.kRed,
                  drawOpt='HIST')
canvas.addStacked(sig, title='H(125)', color=ROOT.kBlue, drawOpt='HIST')

bkgTrue.Scale(1., 'width')
fakeTrue.Scale(fakeNorm / fakeTrue.GetSumOfWeights(), 'width')
sigTrue.Scale(sigScale, 'width')

canvas.addSignal(bkgTrue,
                 title='True SM Bkgd.',
                 color=ROOT.kGreen + 2,
                 drawOpt='HIST')
canvas.addSignal(fakeTrue,
                 title='True Fake E_{T}^{miss}',
                 color=ROOT.kRed + 2,
                 drawOpt='HIST')
canvas.addSignal(sigTrue,
                 title='True H(125)',
                 color=ROOT.kBlue + 2,
                 drawOpt='HIST')

canvas.addObs(data, drawOpt='EP')

canvas.title = '#sigma#timesBR = %.2f, N_{fake} = %.0f' % (originalMu *
                                                           sigScale, fakeNorm)
canvas.xtitle = 'm_{T} (GeV)'
canvas.ytitle = 'Events / GeV'

canvas.printWeb('monophoton/fakemet', name, logy=False)