def PlotHisto(datasetsMgr, h): dsetsMgr = datasetsMgr.deepCopy() opts.normalizeToOne = False # Create the MC Plot with selected normalization ("normalizeToOne", "normalizeByCrossSection", "normalizeToLumi") kwargs = {} if opts.normalizeToOne: #p = plots.MCPlot(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) else: #p = plots.MCPlot(dsetsMgr, h, normalizeToLumi=opts.intLumi, saveFormats=[], **kwargs) p = plots.PlotSameBase( dsetsMgr, h, saveFormats=[], **kwargs ) #def __init__(self, datasetMgr, name, normalizeToOne=False, datasetRootHistoArgs={}, **kwargs): # Set default styles (Called by default in MCPlot) p._setLegendStyles() p._setLegendLabels() p._setPlotStyles() # Customise legend # p.histoMgr.setHistoLegendStyleAll("L") for d in dsetsMgr.getAllDatasetNames(): if "SingleNeutrino" in d: p.histoMgr.setHistoLegendStyle(d, "F") else: p.histoMgr.setHistoLegendStyle(d, "L") p.setLegend( histograms.createLegend( 0.68, 0.85 - 0.05 * len(dsetsMgr.getAllDatasetNames()), 0.92, 0.92)) #p.histoMgr.setHistoLegendStyle("histo_" + dataset, "LP") p.histoMgr.forEachHisto(lambda h: h.getRootHisto().Scale( 1 / h.getRootHisto().GetBinContent(1))) # # Draw a customised plot plots.drawPlot(p, h, **GetHistoKwargs(h, opts)) p.getFrame().GetXaxis().SetLabelSize(15) p.getFrame().GetXaxis().LabelsOption("u") # Remove legend? if 0: p.removeLegend() # Save in all formats chosen by user aux.SavePlot(p, opts.saveDir, h, opts.saveFormats, opts.url) return
def PlotHisto(datasetsMgr, h): dsetsMgr = datasetsMgr.deepCopy() if "_resolution" in h.lower(): dsetsMgr.remove("SingleNeutrino_L1TPU140", close=False) dsetsMgr.remove("SingleNeutrino_L1TPU200", close=False) # Create the plot with selected normalization ("normalizeToOne", "normalizeByCrossSection", "normalizeToLumi") kwargs = {} hList = getHistoList(dsetsMgr, h) if opts.normalizeToOne: if 1: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) norm = True for hist in p.histoMgr.getHistos(): if hist.getRootHisto().Integral() == 0: norm = False break if (norm): p.histoMgr.forEachHisto(lambda h: h.getRootHisto().Scale( 1.0 / h.getRootHisto().Integral())) else: # p = plots.MCPlot(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) else: if 1: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) #FIXME else: # p = plots.MCPlot(dsetsMgr, h, normalizeToLumi=opts.intLumi, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, saveFormats=[], **kwargs) # Set default styles (Called by default in MCPlot) p._setLegendStyles() p._setLegendLabels() p._setPlotStyles() # Overwrite default settings cNoPU = ROOT.kAzure cPU140 = ROOT.kRed cPU200 = ROOT.kOrange #kYellow+2 p.histoMgr.forEachHisto( lambda h: h.getRootHisto().SetFillColor(cNoPU) if "noPU" in h.getName( ) else h.getRootHisto().SetLineStyle(ROOT.kSolid)) p.histoMgr.forEachHisto(lambda h: h.getRootHisto().SetFillStyle( 3002) if "noPU" in h.getName() else h.getRootHisto().SetFillStyle(0)) p.histoMgr.forEachHisto(lambda h: h.getRootHisto().SetLineColor(cPU140) if "PU140" in h.getName() else (h.getRootHisto( ).SetLineColor(cPU200) if "PU200" in h.getName( ) else h.getRootHisto().SetLineColor(cNoPU))) p.histoMgr.forEachHisto(lambda h: h.getRootHisto().SetMarkerColor(cPU140) if "PU140" in h.getName() else (h.getRootHisto( ).SetMarkerColor(cPU200) if "PU200" in h.getName( ) else h.getRootHisto().SetMarkerColor(cNoPU))) # Customise legend dsetName0 = dsetsMgr.getAllDatasetNames()[0].rsplit("_L1T")[0] for d in dsetsMgr.getAllDatasetNames(): # Sanity check dsetName = d.rsplit("_L1T")[0] if dsetName0 != dsetName: msg = "Different types of datasets detected (\"%s\" and \"%s\"). This script is designed for just one type of dataset for different PU" % ( dsetName, dsetName0) raise Exception(es + msg + ns) else: # print "*"*100 # print dsetName0 # print dsetName # print "*"*100 pass if "noPU" in d: p.histoMgr.setHistoLegendStyle(d, "L") p.histoMgr.setHistoDrawStyle(d, "HIST") else: p.histoMgr.setHistoLegendStyle(d, "AP") p.histoMgr.setHistoDrawStyle(d, "P") # Create legend if 0: p.setLegend( histograms.createLegend( 0.18, 0.86 - 0.04 * len(dsetsMgr.getAllDatasetNames()), 0.42, 0.92)) else: p.setLegend( histograms.createLegend( 0.68, 0.86 - 0.04 * len(dsetsMgr.getAllDatasetNames()), 0.98, 0.92)) # Draw a customised plot kwargs = GetHistoKwargs(h, opts) saveName = h.replace("", "") #saveName += #iro plots.drawPlot(p, h, **kwargs) # Remove legend? if kwargs["removeLegend"]: p.removeLegend() # Save in all formats chosen by user aux.SavePlot(p, opts.saveDir, h, opts.saveFormats, opts.url) return
def PlotHisto(datasetsMgr, h): dsetsMgr = datasetsMgr.deepCopy() if "_eff" in h.lower(): dsetsMgr.remove("SingleNeutrino_L1TPU140", close=False) dsetsMgr.remove("SingleNeutrino_L1TPU200", close=False) opts.normalizeToOne = False elif "_deltargenp" in h.lower(): dsetsMgr.remove("SingleNeutrino_L1TPU140", close=False) dsetsMgr.remove("SingleNeutrino_L1TPU200", close=False) elif "_resolution" in h.lower(): dsetsMgr.remove("SingleNeutrino_L1TPU140", close=False) dsetsMgr.remove("SingleNeutrino_L1TPU200", close=False) elif "_rate" in h.lower(): opts.normalizeToOne = False for d in dsetsMgr.getAllDatasetNames(): if "SingleNeutrino" in d: continue else: dsetsMgr.remove(d, close=False) else: pass # Create the plot with selected normalization ("normalizeToOne", "normalizeByCrossSection", "normalizeToLumi") kwargs = {} hList = getHistoList(dsetsMgr, h) if opts.normalizeToOne: if 1: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) norm = True for hist in p.histoMgr.getHistos(): if hist.getRootHisto().Integral() == 0: norm = False break if (norm): p.histoMgr.forEachHisto(lambda h: h.getRootHisto().Scale( 1.0 / h.getRootHisto().Integral())) else: # p = plots.MCPlot(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) else: if 1: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) #FIXME else: # p = plots.MCPlot(dsetsMgr, h, normalizeToLumi=opts.intLumi, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, saveFormats=[], **kwargs) # Set default styles (Called by default in MCPlot) p._setLegendStyles() p._setLegendLabels() p._setPlotStyles() # Customise legend for d in dsetsMgr.getAllDatasetNames(): if "SingleNeutrino" in d: p.histoMgr.setHistoLegendStyle(d, "F") else: p.histoMgr.setHistoLegendStyle(d, "L") p.histoMgr.setHistoDrawStyle(d, "HIST9") #p.histoMgr.setHistoLegendStyle(d, "P") #"L" #p.histoMgr.setHistoDrawStyle(d, "AP") # Create legend if 0: p.setLegend( histograms.createLegend( 0.18, 0.86 - 0.04 * len(dsetsMgr.getAllDatasetNames()), 0.42, 0.92)) else: p.setLegend( histograms.createLegend( 0.58, 0.86 - 0.04 * len(dsetsMgr.getAllDatasetNames()), 0.92, 0.92)) # Draw a customised plot kwargs = GetHistoKwargs(h, opts) plots.drawPlot(p, h, **kwargs) # Remove legend? if kwargs["removeLegend"]: p.removeLegend() # Save in all formats chosen by user aux.SavePlot(p, opts.saveDir, h, opts.saveFormats, opts.url) return
def PlotHisto(datasetsMgr, h): dsetsMgr = datasetsMgr.deepCopy() if "eff" in h.lower(): dsetsMgr.remove("SingleNeutrino_L1TPU140", close=False) dsetsMgr.remove("SingleNeutrino_L1TPU200", close=False) opts.normalizeToOne = False elif "resolution" in h.lower( ) or "PoorNeuResol" in h or "match" in h.lower(): dsetsMgr.remove("SingleNeutrino_L1TPU140", close=False) dsetsMgr.remove("SingleNeutrino_L1TPU200", close=False) elif "rate" in h.lower(): opts.normalizeToOne = False for d in dsetsMgr.getAllDatasetNames(): if "SingleNeutrino" in d: continue else: dsetsMgr.remove(d, close=False) else: pass # Create the MC Plot with selected normalization ("normalizeToOne", "normalizeByCrossSection", "normalizeToLumi") kwargs = {} ''' hList = getHistoList(dsetsMgr, h) if opts.normalizeToOne: if 1: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) p.histoMgr.forEachHisto(lambda h: h.getRootHisto().Scale(1.0/h.getRootHisto().Integral()) ) else: # p = plots.MCPlot(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) else: if 1: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) #FIXME else: # p = plots.MCPlot(dsetsMgr, h, normalizeToLumi=opts.intLumi, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, saveFormats=[], **kwargs) ''' if opts.normalizeToOne: #p = plots.MCPlot(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) p = plots.PlotSameBase(dsetsMgr, h, normalizeToOne=True, saveFormats=[], **kwargs) else: #p = plots.MCPlot(dsetsMgr, h, normalizeToLumi=opts.intLumi, saveFormats=[], **kwargs) p = plots.PlotSameBase( dsetsMgr, h, saveFormats=[], **kwargs ) #def __init__(self, datasetMgr, name, normalizeToOne=False, datasetRootHistoArgs={}, **kwargs): # Set default styles (Called by default in MCPlot) p._setLegendStyles() p._setLegendLabels() p._setPlotStyles() # Customise legend # p.histoMgr.setHistoLegendStyleAll("L") for d in dsetsMgr.getAllDatasetNames(): if "SingleNeutrino" in d: p.histoMgr.setHistoLegendStyle(d, "F") else: p.histoMgr.setHistoLegendStyle(d, "L") p.setLegend( histograms.createLegend( 0.68, 0.85 - 0.05 * len(dsetsMgr.getAllDatasetNames()), 0.77, 0.92)) #p.histoMgr.setHistoLegendStyle("histo_" + dataset, "LP") # Draw a customised plot plots.drawPlot(p, h, **GetHistoKwargs(h, opts)) if ("photons_egs_matching" in h.lower()): p.getFrame().GetXaxis().SetLabelSize(14) p.getFrame().GetXaxis().LabelsOption("u") # Remove legend? if 0: p.removeLegend() # Save in all formats chosen by user aux.SavePlot(p, opts.saveDir, h, opts.saveFormats, opts.url) return
def PlotHisto(datasetsMgr, h): Verbose("Plotting histogram %s" % (h), True) dsetsMgr = datasetsMgr.deepCopy() # Create the plot with selected normalization kwargs = {} hList = getHistoList(dsetsMgr, h) if opts.normalizeToOne: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) # For-loop: All histograms in manager normValue = 1.0 for hist in p.histoMgr.getHistos(): # print "hist.getRootHisto().GetName() = ", hist.getRootHisto().GetName() # print "histo.getRootHistos().GetBinContent(1) = ", hist.getRootHisto().GetBinContent(1) normValue = hist.getRootHisto().GetBinContent(1) hist.getRootHisto().Scale(1.0 / normValue) # Normalise wrt bin #1 #p.histoMgr.forEachHisto(lambda h: h.getRootHisto().Scale(1.0/normValue) ) else: p = plots.ComparisonManyPlot(hList[0], hList[1:], saveFormats=[], **kwargs) #p = plots.PlotSameBase(dsetsMgr, h, saveFormats=[], **kwargs) # Set default styles (Called by default in MCPlot) p._setLegendStyles() p._setLegendLabels() p._setPlotStyles() # Customise legend for d in dsetsMgr.getAllDatasetNames(): if "SingleNeutrino" in d: p.histoMgr.setHistoLegendStyle(d, "F") else: p.histoMgr.setHistoLegendStyle(d, "L") p.histoMgr.setHistoDrawStyle(d, "HIST9") # Create legend if 0: p.setLegend( histograms.createLegend( 0.18, 0.86 - 0.04 * len(dsetsMgr.getAllDatasetNames()), 0.42, 0.92)) else: p.setLegend( histograms.createLegend( 0.58, 0.86 - 0.04 * len(dsetsMgr.getAllDatasetNames()), 0.92, 0.92)) # Draw a customised plot kwargs = GetHistoKwargs(h, opts) plots.drawPlot(p, h, **kwargs) # Remove legend? if kwargs["removeLegend"]: p.removeLegend() # Save in all formats chosen by user aux.SavePlot(p, opts.saveDir, h, opts.saveFormats, opts.url) return