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)
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()
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)
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)
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)
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)
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)
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)
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)