Ejemplo n.º 1
0
        % (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)
Ejemplo n.º 2
0
    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(
Ejemplo n.º 3
0
            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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
        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)
Ejemplo n.º 6
0
        % (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)
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
        % (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)
Ejemplo n.º 9
0
        % (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)