% (FOLDER)) (opts, parseArgs) = parser.parse_args() # Require at least two arguments (script-name, path to multicrab) if opts.mcrab == None: Print( "Not enough arguments passed to script execution. Printing docstring & EXIT." ) print __doc__ sys.exit(0) # Determine path for saving plots if opts.saveDir == None: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/TkEG/", postfix="ResolutionVsPU") else: print "opts.saveDir = ", opts.saveDir # Overwrite default save formats? if opts.formats != None: opts.saveFormats = opts.formats.split(",") else: opts.saveFormats = SAVEFORMATS # Inform user of compatibility issues pyV1 = sys.version_info[0] pyV2 = sys.version_info[1] pyV3 = sys.version_info[2] pyVer = "%d.%d.%d" % (pyV1, pyV2, pyV3)
if len(sys.argv) < 2: parser.print_help() sys.exit(1) if opts.mcrab == None: Print( "Not enough arguments passed to script execution. Printing docstring & EXIT." ) parser.print_help() #print __doc__ sys.exit(1) # Determine path for saving plots if opts.saveDir == None: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/", postfix="ROC") else: print "opts.saveDir = ", opts.saveDir # Overwrite default save formats? if opts.formats != None: opts.saveFormats = opts.formats.split(",") else: opts.saveFormats = SAVEFORMATS # Sanity check allowedFolders = [""] if opts.folder not in allowedFolders: Print(
raise Exception(ShellStyles.ErrorLabel() + msg + ShellStyles.NormalStyle()) else: msg = "Using pseudo-multicrab directory %s" % ( ShellStyles.NoteStyle() + mcrab + ShellStyles.NormalStyle()) aux.Verbose(msg, True) # Determine path for saving plots opts.saveDirBase = None if opts.saveDir == None: dirName = "multicrab" #"_".join(opts.mcrabs[0].split("_")[:2]) for m in opts.mcrabs: dirName += "_" + m.split("_")[1] dirName += "_" + datetime.date.today().strftime("%d%h%Y") opts.saveDir = aux.getSaveDirPath(dirName, prefix="hltaus/", postfix="") opts.saveDirBase = aux.getSaveDirPath(dirName, prefix="hltaus/", postfix="") else: print "opts.saveDir = ", opts.saveDir print "opts.saveDirBase = ", opts.saveDirBase # Overwrite default save formats? if opts.formats != None: opts.saveFormats = opts.formats.split(",") else: opts.saveFormats = SAVEFORMATS # Call the main function
def main(opts): # Apply TDR style style = tdrstyle.TDRStyle() style.setOptStat(False) style.setGridX(opts.gridX) style.setGridY(opts.gridY) # Setup & configure the dataset manager datasetsMgr = GetDatasetsFromDir(opts, 0) datasetsMgr.updateNAllEventsToPUWeighted() if 0: datasetsMgr.loadLuminosities() # from lumi.json if opts.verbose: datasetsMgr.PrintCrossSections() datasetsMgr.PrintLuminosities() # Merge histograms (see NtupleAnalysis/python/tools/plots.py) plots.mergeRenameReorderForDataMC(datasetsMgr) # Print datasets info summary datasetsMgr.PrintInfo() # Define the mapping histograms in numerator->denominator pairs VariableList = [ "L1Taus_SingleTau_Eff", "L1Taus_SingleTau_Rate", "L1Taus_TurnOn25", "L1Taus_TurnOn50" ] counter = 0 opts.nDatasets = len(datasetsMgr.getAllDatasets()) nPlots = len(VariableList) * opts.nDatasets # For-loop: All datasets for dataset in datasetsMgr.getAllDatasets(): opts.saveDir = aux.getSaveDirPath(opts.saveDirBase, prefix="hltaus/", postfix="ROC") PlotRateVsEff(datasetsMgr, dataset, "SingleTau", "PU140") PlotRateVsEff(datasetsMgr, dataset, "SingleTau", "PU200") PlotRateVsEff(datasetsMgr, dataset, "DiTau", "PU140") PlotRateVsEff(datasetsMgr, dataset, "DiTau", "PU200") # For-looop: All variables for hName in VariableList: hPath = os.path.join(opts.folder, hName) counter += 1 msg = "{:<9} {:>3} {:<1} {:<3} {:<50}".format( "Histogram", "%i" % counter, "/", "%s:" % (nPlots), "%s" % (dataset.getName())) aux.Print( ShellStyles.SuccessStyle() + msg + ShellStyles.NormalStyle(), counter == 1) if "neutrino" in dataset.getName().lower(): if "rate" in hName.lower(): opts.saveDir = aux.getSaveDirPath(opts.saveDirBase, prefix="hltaus/", postfix="Rates") PlotHistos(dataset.getName(), hPath, hName.split("_")[0] + "_") else: pass else: if "rate" in hName.lower(): continue else: if "eff" in hName.lower(): opts.saveDir = aux.getSaveDirPath( opts.saveDirBase, prefix="hltaus/", postfix="Efficiencies") PlotHistos(dataset.getName(), hPath, hName.split("_")[0] + "_") if "turnon" in hName.lower(): opts.saveDir = aux.getSaveDirPath(opts.saveDirBase, prefix="hltaus/", postfix="TurnOns") PlotHistos(dataset.getName(), hPath, hName.split("_")[1] + "_") aux.Print( "All plots saved under directory %s" % (ShellStyles.NoteStyle() + aux.convertToURL(opts.saveDir, opts.url) + ShellStyles.NormalStyle()), True) return
raise Exception("Found no datasets in multicrab dir \"%s\"" % (opts.mcrab)) else: for i, d in enumerate(opts.dsetDict, 1): Verbose(d, True) for j, f in enumerate(opts.dsetDict[d], 1): Print(f.GetName(), j == 0) # Inform user (briefly) Verbose( "Found %d datasets: %s" % (len(opts.datasets), ", ".join(opts.datasets)), True) # Get folders present in ROOT files opts.folders = GetFoldersInRootFiles(opts) Verbose( "Found %d folders: %s" % (len(opts.folders), ", ".join(opts.folders)), True) # Get algorithms present in ROOT files opts.algos = GetAlgorithmNames(opts) Verbose( "Found %d algorithms: %s" % (len(opts.algos), ", ".join(opts.algos)), True) if opts.saveDir == None: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="", postfix="") # Do the plotting main(opts)
% (FOLDER)) (opts, parseArgs) = parser.parse_args() # Require at least two arguments (script-name, path to multicrab) if opts.mcrab == None: Print( "Not enough arguments passed to script execution. Printing docstring & EXIT." ) print __doc__ sys.exit(0) # Determine path for saving plots if opts.saveDir == None: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/TkEG/", postfix="TH1D") else: print "opts.saveDir = ", opts.saveDir # Overwrite default save formats? if opts.formats != None: opts.saveFormats = opts.formats.split(",") else: opts.saveFormats = SAVEFORMATS # Inform user of compatibility issues pyV1 = sys.version_info[0] pyV2 = sys.version_info[1] pyV3 = sys.version_info[2] pyVer = "%d.%d.%d" % (pyV1, pyV2, pyV3)
def main(opts): # Apply TDR style style = tdrstyle.TDRStyle() style.setOptStat(False) style.setGridX(opts.gridX) style.setGridY(opts.gridY) optModes = [""] if opts.optMode != None: optModes = [opts.optMode] # For-loop: All opt Mode for opt in optModes: opts.optMode = opt # Setup & configure the dataset manager datasetsMgr = GetDatasetsFromDir(opts) datasetsMgr.updateNAllEventsToPUWeighted() if 0: datasetsMgr.loadLuminosities() # from lumi.json # Custom filtering of datasets datasetsToRemove = [] # For-loop: All dsets to be removed for i, d in enumerate(datasetsToRemove, 0): msg = "Removing dataset %s" % d Print(ShellStyles.WarningLabel() + msg + ShellStyles.NormalStyle(), i == 0) datasetsMgr.remove( filter(lambda name: d in name, datasetsMgr.getAllDatasetNames())) # Merge histograms (see NtupleAnalysis/python/tools/plots.py) plots.mergeRenameReorderForDataMC(datasetsMgr) # Print dataset information datasetsMgr.PrintInfo() if opts.verbose: datasetsMgr.PrintCrossSections() # Define signal and background datasets names dsets_signal = [] dsets_minBias = [] for d in datasetsMgr.getAllDatasetNames(): if "SingleNeutrino" in d: dsets_minBias.append(d) else: dsets_signal.append(d) # ROC curve ingredients (histograms) effLists = [[ "Tk_Eff", "RelIso_Eff", "VtxIso_Eff", "VtxIsoLoose_Eff", "VtxIsoTight_Eff", "RelIsoLoose_Eff", "RelIsoTight_Eff" ], [ "DiTau_Eff_Tk", "DiTau_Eff_RelIso", "DiTau_Eff_VtxIso", "DiTau_Eff_VtxIsoLoose", "DiTau_Eff_VtxIsoTight", "DiTau_Eff_RelIsoLoose", "DiTau_Eff_RelIsoTight", ]] rateLists = [[ "Tk_Rate", "RelIso_Rate", "VtxIso_Rate", "VtxIsoLoose_Rate", "VtxIsoTight_Rate", "RelIsoLoose_Rate", "RelIsoTight_Rate" ], [ "DiTau_Rate_Tk", "DiTau_Rate_RelIso", "DiTau_Rate_VtxIso", "DiTau_Rate_VtxIsoLoose", "DiTau_Rate_VtxIsoTight", "DiTau_Rate_RelIsoLoose", "DiTau_Rate_RelIsoTight" ]] turnOnLists = [ [ "Tk_TurnOn25", "RelIso_TurnOn25", "VtxIso_TurnOn25" ], # "VtxIsoLoose_TurnOn25", "VtxIsoTight_TurnOn25", "RelIsoLoose_TurnOn25", "RelIsoTight_TurnOn25"], ["Tk_TurnOn50", "RelIso_TurnOn50", "VtxIso_TurnOn50"] ] #, "VtxIsoLoose_TurnOn50", "VtxIsoTight_TurnOn50", "RelIsoLoose_TurnOn50", "RelIsoTight_TurnOn50"]] turnOnLists_noNeutrals = [[ "Tk_TurnOn25_noNeutrals", "RelIso_TurnOn25_noNeutrals", "VtxIso_TurnOn25_noNeutrals" ], [ "Tk_TurnOn50_noNeutrals", "RelIso_TurnOn50_noNeutrals", "VtxIso_TurnOn50_noNeutrals" ]] turnOnLists_withNeutrals = [[ "Tk_TurnOn25_withNeutrals", "RelIso_TurnOn25_withNeutrals", "VtxIso_TurnOn25_withNeutrals" ], [ "Tk_TurnOn50_withNeutrals", "RelIso_TurnOn50_withNeutrals", "VtxIso_TurnOn50_withNeutrals" ]] turnOnLists_1pr = [[ "Tk_TurnOn25_1pr", "RelIso_TurnOn25_1pr", "VtxIso_TurnOn25_1pr" ], ["Tk_TurnOn50_1pr", "RelIso_TurnOn50_1pr", "VtxIso_TurnOn50_1pr"]] turnOnLists_3pr = [[ "Tk_TurnOn25_3pr", "RelIso_TurnOn25_3pr", "VtxIso_TurnOn25_3pr" ], ["Tk_TurnOn50_3pr", "RelIso_TurnOn50_3pr", "VtxIso_TurnOn50_3pr"]] turnOnLists_all = [[ "VtxIso_TurnOn25", "VtxIso_TurnOn25_1pr", "VtxIso_TurnOn25_3pr", "VtxIso_TurnOn25_withNeutrals", "VtxIso_TurnOn25_noNeutrals" ], [ "VtxIso_TurnOn50", "VtxIso_TurnOn50_1pr", "VtxIso_TurnOn50_3pr", "VtxIso_TurnOn50_withNeutrals", "VtxIso_TurnOn50_noNeutrals" ]] # For-loop: All background histos (min bias) for i, b in enumerate(dsets_minBias, 1): bPU = b.split("PU")[1] # Create rate plots (SingleTau, DiTau) if 1: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/", postfix="Rates") PlotRate(datasetsMgr, rateLists[0], b, bPU, "SingleTau") PlotRate(datasetsMgr, rateLists[1], b, bPU, "DiTau") # For-loop: All signal histos for j, s in enumerate(dsets_signal, 1): sPU = s.split("PU")[1] # Create rate plots (SingleTau, DiTau) if i == 1: # (since inside minBias loop) opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/", postfix="Efficiencies") PlotEfficiency(datasetsMgr, effLists[0], s, sPU, "SingleTau") PlotEfficiency(datasetsMgr, effLists[1], s, sPU, "DiTau") # Skip non-matching signal and bkg PU pairs? if sPU != bPU and sPU != "": continue else: if sPU == "": sPU = "0" #rename before saving # For-loop: All triggers for k in range(0, len(effLists)): eff = effLists[k] rate = rateLists[k] Verbose("Bkg = %s, Signal = %s" % (b, s), False) if 1: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/", postfix="ROC") PlotRateVsEff(datasetsMgr, eff, rate, s, b, sPU, bPU) # For-loop: All signal histos for i, s in enumerate(dsets_signal, 1): PU = s.split("PU")[1] # Create rate plots (SingleTau, DiTau) if 1: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/", postfix="TurnOns") PlotTurnOns(datasetsMgr, turnOnLists[0], s, PU, "TurnOns_25GeV_%s_Inclusive" % (s)) PlotTurnOns(datasetsMgr, turnOnLists[1], s, PU, "TurnOns_50GeV_%s_Inclusive" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_noNeutrals[0], s, PU, "TurnOns_25GeV_%s_noNeutrals" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_noNeutrals[1], s, PU, "TurnOns_50GeV_%s_noNeutrals" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_withNeutrals[0], s, PU, "TurnOns_25GeV_%s_withNeutrals" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_withNeutrals[1], s, PU, "TurnOns_50GeV_%s_withNeutrals" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_1pr[0], s, PU, "TurnOns_25GeV_%s_1pr" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_1pr[1], s, PU, "TurnOns_50GeV_%s_1pr" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_3pr[0], s, PU, "TurnOns_25GeV_%s_3pr" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_3pr[1], s, PU, "TurnOns_50GeV_%s_3pr" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_all[0], s, PU, "TurnOns_25GeV_%s_VtxIso_allModes" % (s)) PlotTurnOns(datasetsMgr, turnOnLists_all[1], s, PU, "TurnOns_50GeV_%s_VtxIso_allModes" % (s)) print Print( "All plots saved under directory %s" % (ShellStyles.NoteStyle() + aux.convertToURL(opts.saveDir, opts.url) + ShellStyles.NormalStyle()), True) return
% (FOLDER)) (opts, parseArgs) = parser.parse_args() # Require at least two arguments (script-name, path to multicrab) if opts.mcrab == None: Print( "Not enough arguments passed to script execution. Printing docstring & EXIT." ) print __doc__ sys.exit(0) # Determine path for saving plots if opts.saveDir == None: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/", postfix="Calibrations") else: print "opts.saveDir = ", opts.saveDir # Overwrite default save formats? if opts.formats != None: opts.saveFormats = opts.formats.split(",") else: opts.saveFormats = SAVEFORMATS # Inform user of compatibility issues pyV1 = sys.version_info[0] pyV2 = sys.version_info[1] pyV3 = sys.version_info[2] pyVer = "%d.%d.%d" % (pyV1, pyV2, pyV3)
% (FOLDER)) (opts, parseArgs) = parser.parse_args() # Require at least two arguments (script-name, path to multicrab) if opts.mcrab == None: Print( "Not enough arguments passed to script execution. Printing docstring & EXIT." ) print __doc__ sys.exit(0) # Determine path for saving plots if opts.saveDir == None: opts.saveDir = aux.getSaveDirPath(opts.mcrab, prefix="hltaus/", postfix="Counters") else: print "opts.saveDir = ", opts.saveDir # Overwrite default save formats? if opts.formats != None: opts.saveFormats = opts.formats.split(",") else: opts.saveFormats = SAVEFORMATS # Inform user of compatibility issues pyV1 = sys.version_info[0] pyV2 = sys.version_info[1] pyV3 = sys.version_info[2] pyVer = "%d.%d.%d" % (pyV1, pyV2, pyV3)