def jetPt(h, prefix="", rebin=10): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "Jet p_{T} (GeV/c)" ylabel = "Number of jets / %.0f GeV/c" % h.binWidth() ptcut = 30 ymin = 1e-1 xmax = 400 h.stackMCHistograms() h.addMCUncertainty() h.createFrame(prefix+"jet_pt_log", xmax=xmax, ymin=ymin, yfactor=2) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save() h.createFrame(prefix+"jet_pt_log_cut%d"%ptcut, xmin=ptcut, xmax=xmax, ymin=ymin, yfactor=2) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save()
def tauCandPt(h, step="", rebin=2): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) ylabel = "Events /%.0f GeV/c" % h.binWidth() xlabel = "p_{T}^{#tau candidate} (GeV/c)" opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() scaleMCfromWmunu(h) if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 name = "tauCandidatePt_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.setLegend(histograms.createLegend(0.7, 0.6, 0.9, 0.9)) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save()
def transverseMass(h, prefix="", rebin=1, ratio=False): xlabel = "m_{T}(#mu, E_{T}^{miss}) (GeV)" ylabel = "Events / %.0f GeV" _optsLin = {} _optsLog = {"ymin": 0.1, "ymaxfactor": 2} _opts2 = {"ymin": 0, "ymax": 2} if rebin > 1: h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) ylabel = ylabel % h.binWidth() h.stackMCHistograms() h.addMCUncertainty() h.createFrame(prefix+"mt", opts=_optsLin) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save() h.createFrame(prefix+"mt_log", createRatio=ratio, opts=_optsLog, opts2=_opts2) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.moveLegend(histograms.createLegend())) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save()
def transverseMass(h, rebin=5, ratio=False, particle="#tau"): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "m_{T}(%s, MET) (GeV/c^{2})" % particle ylabel = "Events / %.2f GeV/c^{2}" % h.binWidth() opts = {"ymaxfactor": 2} if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 opts["xmax"] = 200 name = prefix+"_"+h.name h.createFrame(name, createRatio=ratio, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save() name += "_log" h.createFrame(name, createRatio=ratio, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save()
def vertexCount(h, prefix="", postfix=""): xlabel = "Number of vertices" ylabel = "A.u." h.stackMCHistograms() stack = h.histoMgr.getHisto("StackedMC") #hsum = stack.getSumRootHisto() #total = hsum.Integral(0, hsum.GetNbinsX()+1) #for rh in stack.getAllRootHistos(): # dataset._normalizeToFactor(rh, 1/total) #dataset._normalizeToOne(h.histoMgr.getHisto("Data").getRootHisto()) h.addMCUncertainty() opts = {"xmax": 16} opts_log = {"ymin": 1e-10, "ymaxfactor": 10} opts_log.update(opts) h.createFrame(prefix + "vertices" + postfix, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() h.addStandardTexts() h.save() h.createFrame(prefix + "vertices" + postfix + "_log", opts=opts_log) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) ROOT.gPad.SetLogy(True) h.setLegend(histograms.createLegend()) h.draw() h.addStandardTexts() h.save()
def transverseMass(h, rebin=5, ratio=False, particle="#tau"): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "m_{T}(%s, MET) (GeV/c^{2})" % particle ylabel = "Events / %.2f GeV/c^{2}" % h.binWidth() opts = {"ymaxfactor": 2} if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 opts["xmax"] = 200 name = prefix + "_" + h.name h.createFrame(name, createRatio=ratio, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save() name += "_log" h.createFrame(name, createRatio=ratio, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save()
def vertexCount(h, prefix="", postfix=""): xlabel = "Number of vertices" ylabel = "Number of events" h.stackMCHistograms() h.addMCUncertainty() h.createFrame(prefix+"vertices"+postfix) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save() h.createFrame(prefix+"vertices"+postfix+"_log", ymin=0.1, factor=2) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) ROOT.gPad.SetLogy(True) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save()
def vertexCount(h, prefix="", postfix="", ratio=True): xlabel = "Number of good vertices" ylabel = "Number of events" if h.normalizeToOne: ylabel = "Arbitrary units." h.stackMCHistograms() stack = h.histoMgr.getHisto("StackedMC") #hsum = stack.getSumRootHisto() #total = hsum.Integral(0, hsum.GetNbinsX()+1) #for rh in stack.getAllRootHistos(): # dataset._normalizeToFactor(rh, 1/total) #dataset._normalizeToOne(h.histoMgr.getHisto("Data").getRootHisto()) h.addMCUncertainty() opts = {} opts_log = {"ymin": 1e-10, "ymaxfactor": 10, "xmax": 30} opts_log.update(opts) opts2 = {"ymin": 0.5, "ymax": 3} opts2_log = opts2 #opts2_log = {"ymin": 5e-2, "ymax": 5e2} h.createFrame(prefix + "vertices" + postfix, opts=opts, createRatio=ratio, opts2=opts2) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() # histograms.addLuminosityText(x=None, y=None, lumi=191.) h.histoMgr.addLuminosityText() if h.normalizeToOne: histograms.addText(0.35, 0.9, "Normalized to unit area", 17) h.save() h.createFrame(prefix + "vertices" + postfix + "_log", opts=opts_log, createRatio=ratio, opts2=opts2_log) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.getPad1().SetLogy(True) #h.getPad2().SetLogy(True) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() # histograms.addLuminosityText(x=None, y=None, lumi=191.) h.histoMgr.addLuminosityText() if h.normalizeToOne: histograms.addText(0.35, 0.9, "Normalized to unit area", 17) h.save()
def vertexCount(h, prefix="", postfix="", ratio=True): xlabel = "Number of good vertices" ylabel = "Number of events" if h.normalizeToOne: ylabel = "Arbitrary units." h.stackMCHistograms() stack = h.histoMgr.getHisto("StackedMC") #hsum = stack.getSumRootHisto() #total = hsum.Integral(0, hsum.GetNbinsX()+1) #for rh in stack.getAllRootHistos(): # dataset._normalizeToFactor(rh, 1/total) #dataset._normalizeToOne(h.histoMgr.getHisto("Data").getRootHisto()) h.addMCUncertainty() opts = {} opts_log = {"ymin": 1e-10, "ymaxfactor": 10, "xmax": 30} opts_log.update(opts) opts2 = {"ymin": 0.5, "ymax": 3} opts2_log = opts2 #opts2_log = {"ymin": 5e-2, "ymax": 5e2} h.createFrame(prefix+"vertices"+postfix, opts=opts, createRatio=ratio, opts2=opts2) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() # histograms.addLuminosityText(x=None, y=None, lumi=191.) h.histoMgr.addLuminosityText() if h.normalizeToOne: histograms.addText(0.35, 0.9, "Normalized to unit area", 17) h.save() h.createFrame(prefix+"vertices"+postfix+"_log", opts=opts_log, createRatio=ratio, opts2=opts2_log) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.getPad1().SetLogy(True) #h.getPad2().SetLogy(True) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() # histograms.addLuminosityText(x=None, y=None, lumi=191.) h.histoMgr.addLuminosityText() if h.normalizeToOne: histograms.addText(0.35, 0.9, "Normalized to unit area", 17) h.save()
def muonIsoQcd(plot, prefix=""): plot.createFrame(prefix+"muon_qcdfraction") plot.frame.GetXaxis().SetTitle("Cut on isolation") plot.frame.GetYaxis().SetTitle("Fraction of QCD") plot.setLegend(histograms.createLegend()) plot.draw() plot.save() plot.createFrame(prefix+"muon_qcdfraction_zoom", xmax=0.2, ymax=0.1) plot.frame.GetXaxis().SetTitle("Cut on isolation") plot.frame.GetYaxis().SetTitle("Fraction of QCD") plot.setLegend(histograms.createLegend()) plot.draw() plot.save()
def jetEta(h, name, rebin=5, ratio=False): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) particle = "jet" if "bjet" in name: particle = "b jet" if "electron" in name: particle = "electron" if "muon" in name: particle = "muon" xlabel = "#eta^{%s}" % particle # xlabel = "#eta^{muon}" ylabel = "Events / %.2f" % h.binWidth() scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.01,"xmin": -3.5,"xmax": 3.5, "ymaxfactor": 10} opts2 = {"ymin": 0.05, "ymax": 1.5} name = name+"_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.7, 0.7, 0.9, 0.95)) # h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def jetPt(h, name, rebin=5, ratio=False): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) particle = "jet" if "bjet" in name: particle = "b jet" if "electron" in name: particle = "electron" if "muon" in name: particle = "muon" # name = name.replace("jetPt", "bjetPt") xlabel = "p_{T}^{%s} (GeV/c)" % particle # xlabel = "p_{T}^{muon} (GeV/c)" ylabel = "Events /%.0f GeV/c" % h.binWidth() scaleMCfromWmunu(h) h.stackMCSignalHistograms() h.stackMCHistograms(stackSignal=False) h.addMCUncertainty() opts = {"ymin": 0.001,"xmax": 400.0, "ymaxfactor": 2} opts2 = {"ymin": 0.05, "ymax": 1.5} name = name+"_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) # h.createFrame(name, opts=opts) #h.createFrameFraction(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.7, 0.65, 0.9, 0.9)) common(h, xlabel, ylabel)
def transverseMass(h, rebin=20): name = flipName(h.getRootHistoPath()) particle = "" if "Original" in name: particle = "#mu" name = name.replace("TransverseMass", "Mt") else: particle = "#tau jet" name = name.replace("TransverseMass", "Mt") h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "m_{T}(%s, MET) (GeV/c^{2})" % particle ylabel = "Events / %.2f GeV/c^{2}" % h.binWidth() scaleMCfromWmunu(h) h.stackMCSignalHistograms() h.stackMCHistograms(stackSignal=False)#stackSignal=True) h.addMCUncertainty() opts = {"xmax": 200} #h.createFrameFraction(name, opts=opts) h.createFrame(name, opts=opts) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def deltaPhi(h, rebin=40, ratio=False): name = flipName(h.getRootHistoPath()) particle = "#tau jet" if "Original" in name: particle = "#mu" h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "#Delta#phi(%s, MET) (rad)" % particle ylabel = "Events / %.2f rad" % h.binWidth() scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.001, "ymaxfactor": 2} opts2 = {"ymin": 0.5, "ymax": 1.5} if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) #h.createFrameFraction(name) h.createFrame(name) # h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.2, 0.6, 0.4, 0.9)) common(h, xlabel, ylabel)
def met2(h, name, rebin=30, ratio=True): # name = h.getRootHistoPath() # name = "met" h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) # xlabel = "MET (GeV)" # if "embedding" in name: # xlabel = "Embedded "+xlabel # elif "original" in name: # xlabel = "Original "+xlabel ylabel = "Events / %.0f GeV" % h.binWidth() xlabel = "E_{T}^{miss} (GeV)" scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.01, "ymaxfactor": 2} opts2 = {"ymin": 0.0, "ymax": 2.5} name = name+"_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.65, 0.55, 0.9, 0.9)) common(h, xlabel, ylabel)
def muonPhi(h, prefix="", plotAll=False, rebin=1): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "Muon #phi" ylabel = "Number of muons / %.1f" % h.binWidth() h.stackMCHistograms() if plotAll: h.createFrame(prefix+"muon_phi", yfactor=1.4) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save() h.createFrame(prefix+"muon_phi_log", yfactor=2, ymin=0.1) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) ROOT.gPad.SetLogy() h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save()
def selectionFlow(h, name, rebin=1, ratio=False): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "Cut" ylabel = "Events" #h.stackMCSignalHistograms() h.stackMCHistograms() h.addMCUncertainty() scaleMCfromWmunu(h) njets = 5 lastSelection = njets opts = {"xmax": lastSelection, "ymin": 0.1, "ymaxfactor": 2, "nbins": lastSelection} opts2 = {"ymin": 0.5, "ymax": 1.5} h.createFrame(name, opts=opts, createRatio=ratio, opts2=opts2) xaxis = h.getFrame().GetXaxis() xaxis.SetBinLabel(1, "Trigger") xaxis.SetBinLabel(2, "#tau ID+R_{#tau}") xaxis.SetBinLabel(3, "e veto") xaxis.SetBinLabel(4, "#mu veto") xaxis.SetBinLabel(5, "N_{jets}") h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.addLuminosityText() addMassBRText(x=0.4, y=0.87) h.save()
def tauCandEta(h, step="", rebin=5): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "#eta^{#tau candidate}" ylabel = "Events / %.1f" % h.binWidth() opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() scaleMCfromWmunu(h) if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 # opts = {"xmax": 2.5,"xmin":-2.5} # opts["xmin"] = -2.7 # opts["xmax"] = 2.7 name = "tauCandidateEta_%s_log" % step # h.createFrameFraction(name, opts=opts) h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend(0.5, 0.2, 0.7, 0.5)) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save()
def jetEta(h, step="", rebin=1): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "#eta^{jet}" ylabel = "Events / %.1f" % h.binWidth() opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 name = "jetEtaSimulateEmbedded_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend(0.5, 0.3, 0.7, 0.6)) ROOT.gPad.SetLogy(True) h.draw() h.addStandardTexts() h.save()
def rtauGen(h, name, rebin=5, ratio=False): #h.setDefaultStyles() h.histoMgr.forEachHisto(styles.generator()) h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "R_{#tau}" if "Mass" in name: xlabel = "m (GeV/c^{2})" elif "Pt" in name: xlabel = "p_{T}(GeV/c)" elif "vertices" in name: xlabel = "N_{vertices}" ylabel = "Events / %.2f" % h.binWidth() if "gen" in name: kwargs = {"ymin": 0.1, "xmax": 1.1} elif "Pt" in name: kwargs = {"ymin": 0.1, "xmax": 400} elif "Mass" in name: kwargs = {"ymin": 0.1, "xmax": 500} kwargs = {"ymin": 0.1, "xmax": 500} # kwargs["opts"] = {"ymin": 0, "xmax": 14, "ymaxfactor": 1.1}} if ratio: kwargs["opts2"] = {"ymin": 0.5, "ymax": 1.5} kwargs["createRatio"] = True # name = name+"_log" h.createFrame(name, **kwargs) # h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.2, 0.75, 0.4, 0.9)) common(h, xlabel, ylabel, addLuminosityText=False)
def deltaPhi(h, step="", rebin=5): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "R_{#tau}" ylabel = "Events / %.2f" % h.binWidth() opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 name = "deltaPhiSimulateEmbedded_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend(0.5, 0.3, 0.7, 0.6)) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save()
def main(): datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters) datasets.loadLuminosities() datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames())) plots.mergeRenameReorderForDataMC(datasets) xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1) plots.mergeWHandHH(datasets) style = tdrstyle.TDRStyle() plot = plots.DataMCPlot(datasets, analysis+"/MET/met") plot.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(10)) plot.createFrame("MET", opts={"ymin": 1e-4, "ymaxfactor": 10}) plot.getPad().SetLogy(True) plot.setLegend(histograms.createLegend()) plot.frame.GetXaxis().SetTitle("MET (GeV)") plot.frame.GetYaxis().SetTitle("Number of events") plot.draw() plot.addLuminosityText() plot.save()
def leadingTrack(h, step="", rebin=5): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "p_{T}^{leading track} (GeV/c)" ylabel = "Events / %.0f GeV/c" % h.binWidth() opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 name = "leadingTrackSimulateEmbedded_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() h.addStandardTexts() h.save()
def ptTop(h, name, rebin=10, ratio=False): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) # particle = "jet" # if "bjet" in name: # particle = "bjet" # name = name.replace("jetPt", "bjetPt") xlabel = "p_{T}^{top} (GeV/c)" ylabel = "Events /%.0f GeV/c" % h.binWidth() scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.0001, "xmax": 500, "ymaxfactor": 1.1} opts2 = {"ymin": 0.01, "ymax": 1.5} name = name+"_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) # h.createFrame(name) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def doPlot(datasetsEmb, analyses, path, name, text): histos = [] legends = {"Plus": "#tau-jet energy scale variated by +3 %", "Minus": "#tau-jet energy scale variated by -3 %"} for aname, analysis in analyses: (rootHisto, tmp) = datasetsEmb.getHistogram("Data", analysis+"/"+path) h = histograms.Histo(rootHisto, aname) h.setLegendLabel(legends.get(aname, aname)) h.setDrawStyle("EP") h.setLegendStyle("p") histos.append(h) p = plots.ComparisonManyPlot(histos[0], histos[1:]) p.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(20)) styles.dataStyle(p.histoMgr.getHisto("Baseline")) styles.mcStyle(p.histoMgr.getHisto("Plus")) styles.mcStyle2(p.histoMgr.getHisto("Minus")) p.histoMgr.getHisto("Minus").getRootHisto().SetMarkerSize(2) p.setLuminosity(datasetsEmb.getLuminosity()) p.createFrame(name, createRatio=True, opts2={"ymax": 2}, opts={"ymax": 35}) yaxis = p.getFrame2().GetYaxis() yaxis.SetTitle("Ratio") #yaxis.SetTitleSize(yaxis.GetTitleSize()*0.8) p.setLegend(histograms.moveLegend(histograms.createLegend())) p.appendPlotObject(histograms.PlotText(0.5, 0.55, text, size=20)) p.frame.GetXaxis().SetTitle("m_{T}(#tau jet, E_{T}^{miss}) (GeV/c^{2})") p.frame.GetYaxis().SetTitle("Events / 20 GeV/c^{2}") p.draw() p.addStandardTexts() p.save()
def tauEta(h, name, rebin=5, ratio=False): # name = flipName(h.getRootHistoPath()) h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "#eta^{#tau jet}" ylabel = "Events" h.stackMCHistograms() h.addMCUncertainty() scaleMCfromWmunu(h) opts = {"ymin": 0.01, "ymaxfactor": 2} opts2 = {"ymin": 0.5, "ymax": 1.5} # name = "selectedTauEta" # name = name+"_log" #h.createFrameFraction(name, opts=opts) # h.createFrame(name, opts=opts) if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.7, 0.6, 0.9, 0.9)) common(h, xlabel, ylabel)
def met(h, rebin=20, ratio=False): name = flipName(h.getRootHistoPath()) h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "MET (GeV)" # if "embedding" in name: # xlabel = "Embedded "+xlabel # elif "original" in name: # xlabel = "Original "+xlabel ylabel = "Events / %.0f GeV" % h.binWidth() scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.001, "ymaxfactor": 2} opts2 = {"ymin": 0.5, "ymax": 1.5} name = "MET" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def drawPlotData(h, name, xlabel, ylabel="Events / %.0f GeV/c", rebin=1, log=True, ratio=True, opts={}, opts2={}, moveLegend={}, **kwargs): if rebin > 1: h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) ylab = ylabel if "%" in ylabel: ylab = ylabel % h.binWidth() #scaleNormalization(h) #h.stackMCHistograms() _opts = {"ymin": 0.01, "ymaxfactor": 2} if not log: _opts["ymin"] = 0 _opts["ymaxfactor"] = 1.1 _opts2 = {"ymin": 0.5, "ymax": 1.5} _opts.update(opts) _opts2.update(opts2) if log: name = name + "_log" h.createFrame(name, createRatio=ratio, opts=_opts, opts2=_opts2) h.getPad().SetLogy(log) if ratio: h.getFrame2().GetYaxis().SetTitle("Ratio") #yaxis = h.getFrame2().GetYaxis() #yaxis.SetTitleSize(yaxis.GetTitleSize()*0.7) #yaxis.SetTitleOffset(yaxis.GetTitleOffset()*1.5) h.setLegend(histograms.moveLegend(histograms.createLegend(), **moveLegend)) common(h, xlabel, ylab, **kwargs)
def transverseMass(h, name="transverseMass", rebin=2, log=True): # name = h.getRootHistoPath() h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "m_{T}(#tau jet, MET) (GeV/c^{2})" ylabel = "A.u." # h.stackMCHistograms() # h.addMCUncertainty() opts = {"xmax": 200} # opts = {"ymin": 0.0001,"xmax": 200, "ymaxfactor": 1.3} # opts2 = {"ymin": 0.5, "ymax": 1.5} # opts = {"xmax": 200} if log: name += "_log" opts["ymin"] = 1e-4 opts["ymaxfactor"] = 2 #h.createFrameFraction(name, opts=opts) h.createFrame(name, opts=opts) legend = histograms.createLegend() if log: h.getPad().SetLogy(True) histograms.moveLegend(legend, dx=-0.5, dy=-0.3) h.setLegend(legend) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() # h.addLuminosityText() h.save()
def jetPt(h, step="", rebin=1): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) ylabel = "Events /%.0f GeV/c" % h.binWidth() xlabel = "p_{T}^{jet} (GeV/c)" opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 name = "jetPtSimulateEmbedded_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() h.addStandardTexts() h.save()
def jetPt(h, name, rebin=5, ratio=False): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) particle = "jet" if "bjet" in name: particle = "b jet" if "electron" in name: particle = "electron" if "muon" in name: particle = "muon" # name = name.replace("jetPt", "bjetPt") xlabel = "p_{T}^{%s} (GeV/c)" % particle # xlabel = "p_{T}^{muon} (GeV/c)" ylabel = "Events /%.0f GeV/c" % h.binWidth() scaleMCfromWmunu(h) h.stackMCSignalHistograms() h.stackMCHistograms(stackSignal=False) h.addMCUncertainty() opts = {"ymin": 0.001, "xmax": 400.0, "ymaxfactor": 2} opts2 = {"ymin": 0.05, "ymax": 1.5} name = name + "_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) # h.createFrame(name, opts=opts) #h.createFrameFraction(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.7, 0.65, 0.9, 0.9)) common(h, xlabel, ylabel)
def leadingTrack(h, step="", rebin=5): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "p_{T}^{leading track} (GeV/c)" ylabel = "Events / %.0f GeV/c" % h.binWidth() opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 name = "leadingTrackSimulateEmbedded_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() #h.addLuminosityText() h.save()
def tauCandPhi(h, step="", rebin=5): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "#phi^{#tau candidate}" ylabel = "Events / %.1f" % h.binWidth() opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() scaleMCfromWmunu(h) if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.01 name = "tauCandidatePhi_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) ROOT.gPad.SetLogy(True) h.draw() h.addStandardTexts() h.save()
def tauPt(h, name, rebin=1, ratio=False, opts={}, opts2={}): if rebin > 1: h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "p_{T}^{#tau jet} (GeV/c)" ylabel = "Events / %.0f GeV/c" % h.binWidth() tauEmbedding.scaleNormalization(h) h.stackMCHistograms() # h.addMCUncertainty() # if h.histoMgr.hasHisto("Data"): # th1 = h.histoMgr.getHisto("Data").getRootHisto() # print name # for bin in xrange(1, th1.GetNbinsX()+1): # print "Bin %d, low edge %.0f, content %.3f" % (bin, th1.GetXaxis().GetBinLowEdge(bin), th1.GetBinContent(bin)) # print _opts = {"ymin": 0.01, "ymaxfactor": 2} _opts2 = {"ymin": 0.5, "ymax": 1.5} _opts.update(opts) _opts2.update(opts2) name = name+"_log" #h.createFrameFraction(name, opts=opts) # h.createFrame(name, opts=opts) if ratio: h.createFrameFraction(name, opts=_opts, opts2=_opts2) else: h.createFrame(name, opts=_opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def compare(raw, type1, quantity, name): rawTh1 = raw.histoMgr.getHisto(name).getRootHisto().Clone("Raw") type1Th1 = type1.histoMgr.getHisto(name).getRootHisto().Clone("Type1") styles.dataStyle.apply(rawTh1) styles.mcStyle.apply(type1Th1) plot = plots.ComparisonPlot( histograms.Histo(rawTh1, "Raw"), histograms.Histo(type1Th1, "Type 1") ) q = " "+quantity if quantity == "Et": q = "" plot.setLegend(histograms.moveLegend(histograms.createLegend(), dh=0.15)) plot.createFrame("metres_%s_%s" % (name, quantity)) plot.frame.GetXaxis().SetTitle("MET%s/genMET%s" % (q, q)) plot.frame.GetYaxis().SetTitle("Events / %.2f" % raw.binWidth()) plot.draw() l = ROOT.TLatex() l.SetNDC() x = 0.5 y = 0.7 dy = 0.05 l.DrawLatex(x, y, name); y -= dy l.SetTextSize(l.GetTextSize()*0.7) l.SetTextColor(rawTh1.GetLineColor()) l.DrawLatex(x, y, "Raw mean %.2f, stddev %.2f" % (rawTh1.GetMean(), rawTh1.GetRMS())); y -= dy l.SetTextColor(type1Th1.GetLineColor()) l.DrawLatex(x, y, "Type 1 mean %.2f, stddev %.2f" % (type1Th1.GetMean(), type1Th1.GetRMS())); y -= dy plot.save()
def main(): datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters) datasets.loadLuminosities() datasets.remove( filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames())) plots.mergeRenameReorderForDataMC(datasets) xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1) plots.mergeWHandHH(datasets) style = tdrstyle.TDRStyle() plot = plots.DataMCPlot(datasets, analysis + "/MET/met") plot.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(10)) plot.createFrame("MET", opts={"ymin": 1e-4, "ymaxfactor": 10}) plot.getPad().SetLogy(True) plot.setLegend(histograms.createLegend()) plot.frame.GetXaxis().SetTitle("MET (GeV)") plot.frame.GetYaxis().SetTitle("Number of events") plot.draw() plot.addLuminosityText() plot.save()
def deltaPhi(h, step="", rebin=5): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "R_{#tau}" ylabel = "Events / %.2f" % h.binWidth() opts = {"ymaxfactor": 2} h.stackMCHistograms() h.addMCUncertainty() if h.normalizeToOne: ylabel = "A.u." opts["yminfactor"] = 1e-5 else: opts["ymin"] = 0.001 name = "deltaPhiSimulateEmbedded_%s_log" % step h.createFrameFraction(name, opts=opts) #h.createFrame(name, opts=opts) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend(0.5, 0.3, 0.7, 0.6)) ROOT.gPad.SetLogy(True) h.draw() h.addStandardTexts() h.save()
def rtauGen(h, name, rebin=2, ratio=False, defaultStyles=True): if defaultStyles: h.setDefaultStyles() h.histoMgr.forEachHisto(styles.generator()) h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "PF E_{T}^{miss} (GeV)" ylabel = "Events / %.2f" % h.binWidth() if "LeptonsInMt" in name: xlabel = "m_{T}(#tau jet, E_{T}^{miss}) (GeV/c^{2})" ylabel = "Events / %.0f GeV/c^{2}" % h.binWidth() if "NoLeptonsRealTau" in name: xlabel = "m_{T}(#tau jet, E_{T}^{miss}) (GeV/c^{2})" ylabel = "Events / %.0f GeV/c^{2}" % h.binWidth() if "Mass" in name: xlabel = "m_{T}(#tau jet, E_{T}^{miss}) (GeV/c^{2})" ylabel = "Events / %.0f GeV/c^{2}" % h.binWidth() kwargs = {"ymin": 0.1, "ymax": 1000} if "LeptonsInMt" in name: kwargs = {"ymin": 0., "xmax": 300} if "NoLeptonsRealTau" in name: kwargs = {"ymin": 0., "xmax": 300} if "Rtau" in name: kwargs = {"ymin": 0.0001, "xmax": 1.1} kwargs = {"ymin": 0.1, "xmax": 1.1} h.getPad().SetLogy(True) # kwargs["opts"] = {"ymin": 0, "xmax": 14, "ymaxfactor": 1.1}} if ratio: kwargs["opts2"] = {"ymin": 0.5, "ymax": 1.5} kwargs["createRatio"] = True # name = name+"_log" h.createFrame(name, **kwargs) # histograms.addText(0.65, 0.7, "BR(t #rightarrow bH^{#pm})=0.05", 20) h.getPad().SetLogy(True) leg = histograms.createLegend(0.6, 0.75, 0.8, 0.9) if "LeptonsInMt" in name: h.getPad().SetLogy(False) leg = histograms.moveLegend(leg, dx=-0.18) histograms.addText(0.5, 0.65, "TailKiller cut: Tight", 20) h.setLegend(leg) plots._legendLabels["MetNoJetInHole"] = "Jets outside dead cells" plots._legendLabels["MetJetInHole"] = "Jets within dead cells" histograms.addText(300, 300, "p_{T}^{jet} > 50 GeV/c", 20) kwargs["opts2"] = {"ymin": 0.5, "ymax": 1.5} kwargs["createRatio"] = True # if ratio: # h.createFrameFraction(name, opts=opts, opts2=opts2) # h.setLegend(leg) common(h, xlabel, ylabel)
def met(h, rebin=5, ratio=True, opts={}, opts2={}): name = flipName(h.getRootHistoPath()) h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "MET (GeV)" if "embedding" in name: xlabel = "Embedded " + xlabel elif "original" in name: xlabel = "Original " + xlabel ylabel = "Events / %.0f GeV" % h.binWidth() tauEmbedding.scaleNormalization(h) h.stackMCHistograms() h.addMCUncertainty() _opts = {"ymin": 0.001, "ymaxfactor": 2} _opts2 = {"ymin": 0.5, "ymax": 1.5} _opts.update(opts) _opts2.update(opts2) name = name + "_log" if ratio: h.createFrameFraction(name, opts=_opts, opts2=_opts2) else: h.createFrame(name, opts=_opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def ptTop(h, name, rebin=10, ratio=False): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) # particle = "jet" # if "bjet" in name: # particle = "bjet" # name = name.replace("jetPt", "bjetPt") xlabel = "p_{T}^{top} (GeV/c)" ylabel = "Events /%.0f GeV/c" % h.binWidth() scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.0001, "xmax": 500, "ymaxfactor": 1.1} opts2 = {"ymin": 0.01, "ymax": 1.5} name = name + "_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) # h.createFrame(name) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def tauPt(h, name, rebin=1, ratio=False, opts={}, opts2={}): if rebin > 1: h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "p_{T}^{#tau jet} (GeV/c)" ylabel = "Events / %.0f GeV/c" % h.binWidth() tauEmbedding.scaleNormalization(h) h.stackMCHistograms() # h.addMCUncertainty() # if h.histoMgr.hasHisto("Data"): # th1 = h.histoMgr.getHisto("Data").getRootHisto() # print name # for bin in xrange(1, th1.GetNbinsX()+1): # print "Bin %d, low edge %.0f, content %.3f" % (bin, th1.GetXaxis().GetBinLowEdge(bin), th1.GetBinContent(bin)) # print _opts = {"ymin": 0.01, "ymaxfactor": 2} _opts2 = {"ymin": 0.5, "ymax": 1.5} _opts.update(opts) _opts2.update(opts2) name = name + "_log" #h.createFrameFraction(name, opts=opts) # h.createFrame(name, opts=opts) if ratio: h.createFrameFraction(name, opts=_opts, opts2=_opts2) else: h.createFrame(name, opts=_opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def transverseMass(h, rebin=20): name = flipName(h.getRootHistoPath()) particle = "" if "Original" in name: particle = "#mu" name = name.replace("TransverseMass", "Mt") else: particle = "#tau jet" name = name.replace("TransverseMass", "Mt") h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "m_{T}(%s, MET) (GeV/c^{2})" % particle ylabel = "Events / %.2f GeV/c^{2}" % h.binWidth() scaleMCfromWmunu(h) h.stackMCSignalHistograms() h.stackMCHistograms(stackSignal=False) #stackSignal=True) h.addMCUncertainty() opts = {"xmax": 200} #h.createFrameFraction(name, opts=opts) h.createFrame(name, opts=opts) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def jetEta(h, name, rebin=5, ratio=False): h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) particle = "jet" if "bjet" in name: particle = "b jet" if "electron" in name: particle = "electron" if "muon" in name: particle = "muon" xlabel = "#eta^{%s}" % particle # xlabel = "#eta^{muon}" ylabel = "Events / %.2f" % h.binWidth() scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.01, "xmin": -5, "xmax": 5, "ymaxfactor": 10} opts2 = {"ymin": 0.05, "ymax": 1.5} name = name + "_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.7, 0.7, 0.9, 0.95)) # h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def met2(h, name, rebin=10, ratio=True): # name = h.getRootHistoPath() # name = "met" h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) # xlabel = "MET (GeV)" # if "embedding" in name: # xlabel = "Embedded "+xlabel # elif "original" in name: # xlabel = "Original "+xlabel ylabel = "Events / %.0f GeV" % h.binWidth() xlabel = "E_{T}^{miss} (GeV)" scaleMCfromWmunu(h) h.stackMCHistograms() h.addMCUncertainty() opts = {"ymin": 0.01, "ymaxfactor": 2} opts2 = {"ymin": 0.0, "ymax": 2.5} name = name + "_log" if ratio: h.createFrameFraction(name, opts=opts, opts2=opts2) else: h.createFrame(name, opts=opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend(0.65, 0.65, 0.9, 0.93)) common(h, xlabel, ylabel)
def met(h, rebin=5, ratio=True, opts={}, opts2={}): name = flipName(h.getRootHistoPath()) h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) xlabel = "MET (GeV)" if "embedding" in name: xlabel = "Embedded "+xlabel elif "original" in name: xlabel = "Original "+xlabel ylabel = "Events / %.0f GeV" % h.binWidth() tauEmbedding.scaleNormalization(h) h.stackMCHistograms() h.addMCUncertainty() _opts = {"ymin": 0.001, "ymaxfactor": 2} _opts2 = {"ymin": 0.5, "ymax": 1.5} _opts.update(opts) _opts2.update(opts2) name = name+"_log" if ratio: h.createFrameFraction(name, opts=_opts, opts2=_opts2) else: h.createFrame(name, opts=_opts) h.getPad().SetLogy(True) h.setLegend(histograms.createLegend()) common(h, xlabel, ylabel)
def muonPt(h, prefix="", rebin=1, ratio=False, cutBox=None): xlabel = "Muon p_{T} (GeV/c)" ylabel = "Events / %.0f GeV/c" #ylabel = "Number of events / 5.0 GeV/c" _optsLin = {} _optsLog = {"ymin": 0.1, "ymaxfactor": 2} _opts2 = {"ymin": 0, "ymax": 2} if rebin > 1: h.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(rebin)) ylabel = ylabel % h.binWidth() h.stackMCHistograms() h.addMCUncertainty() # tmp = h.histoMgr.getHisto("Data").getRootHisto() # dataEvents = tmp.Integral(0, tmp.GetNbinsX()+1) # tmp = h.histoMgr.getHisto("StackedMC").getSumRootHisto() # mcEvents = tmp.Integral(0, tmp.GetNbinsX()+1) # print "Muon pt Data/MC = %f/%f = %f" % (dataEvents, mcEvents, dataEvents/mcEvents) h.createFrame(prefix+"muon_pt", opts=_optsLin) if cutBox != None: h.addCutBoxAndLine(**cutBox) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.createLegend()) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save() h.createFrame(prefix+"muon_pt_log", createRatio=ratio, opts=_optsLog, opts2=_opts2) if cutBox != None: h.addCutBoxAndLine(**cutBox) h.frame.GetXaxis().SetTitle(xlabel) h.frame.GetYaxis().SetTitle(ylabel) h.setLegend(histograms.moveLegend(histograms.createLegend())) ROOT.gPad.SetLogy(True) h.draw() histograms.addCmsPreliminaryText() histograms.addEnergyText() h.histoMgr.addLuminosityText() h.save()
def plotEff(h, prefix): h.createFrame(prefix + "eff_%s" % h.name) h.frame.GetXaxis().SetTitle("Cut on isolation") h.frame.GetYaxis().SetTitle(h.ylabel) h.setLegend(histograms.moveLegend(histograms.createLegend(), dx=0.55)) h.draw() h.save() return