Beispiel #1
0
def generate(channels, modes, add_failing, dropCC=False):
    
    mtet_df = evalgof.loadDF("../output/all_pvalues.json")
    tt_df = evalgof.loadDF("../output/tt_pvalues.json")
        
    base = "cc"
    name = "custom"
    
    configs = ["cc1", "cc2"] + modes
    
    cols = [base] + configs
    
    tests = ["saturated", "KS", "AD"]
    
    for ch in channels:    
        for test in tests:
            if "tt" in ch:
                df = shape(tt_df, ch, test, configs, cols, dropCC)
            else:
                df = shape(mtet_df, ch, test, configs, cols, dropCC)
                
#             print df
            toGrid(df)
Beispiel #2
0
def main():
    
    parser = argparse.ArgumentParser()
    parser.add_argument('-c', dest='channel', help='Decay channel', choices = ['mt', 'et', 'tt', 'all'], default='all')
#     parser.add_argument('-m', dest='mode', help='Config to compare', default='')
    parser.add_argument('mode', nargs="*", help='Variable', default=[])
    parser.add_argument('-f', dest="failing", help='Variable', action="store_true")
    args = parser.parse_args()
    
    
    
    if not args.mode:
        variables = ["pt_1","pt_2","jpt_1","jpt_2","bpt_1","bpt_2","njets","nbtag","m_sv","mt_1",
                    "mt_2","pt_vis","pt_tt","mjj","jdeta","m_vis","dijetpt","met","eta_1","eta_2"]
        modes = ["nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", "nn12",
                   "nn13", "nn14", "nn15", "nn16", "nn17", "nn18", "nn21"]
    else:
        modes = args.mode

#     makeHtml(args.channel, modes, args.failing)
    
    if "all" in args.channel:
        channels = ["et", "mt", "tt"]
    else:                     
        channels = ["tt"]
    
    mtet_df = evalgof.loadDF("../output/all_pvalues.json")
    tt_df = evalgof.loadDF("../output/tt_pvalues.json")
        
    base = "cc"
    name = "custom"
    
    configs = ["cc1", "cc2"] + modes
    
    cols = [base] + configs
    
    plotAllTests("mt", "nbtag", mtet_df, configs)
Beispiel #3
0
def makeHtml(channel, modes, add_failing):
    df = evalgof.loadDF("../output/{0}_pvalues.json".format(channel))
    
    print df
    
    if not modes:
        base = "cc"
        name = "default"
        if "all" in channel:
            configs = ["cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", "nn12",
                   "nn13", "nn14", "nn15", "nn16", "nn17", "nn18"]
            channels = ["et", "mt", "tt"]
        else:
    #         configs = ["cc1", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", "nn13", "nn15", 
    #                  "nn16", "nn17", "nn18", "nn19", "nn20", "nn15a", "nn16a", "nn17a", "nn18a"]
    #         configs = ["cc1", "nn5", "nn10", "nn13", "nn15", "nn15a", "nn15a2", "nn16", "nn16a", "nn16a2", "nn17", "nn17a", "nn17a2", 
    #                    "nn18", "nn18a", "nn18a2", "nn19", "nn20"]
    #         configs = ["cc1", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", 
    #                "nn13", "nn13a2", "nn14", "nn14a2", "nn15a2", "nn16a2", "nn17a2", "nn18a2"]
    #         configs = ["cc1", "cc2", "nn13", "nn13a2", "nn14", "nn14a2", "nn15", "nn15a", "nn15a2", "nn16", "nn16a", "nn16a2", 
    #                    "nn17", "nn17a", "nn17a2", "nn18", "nn18a", "nn18a2",
    #                    "nn1a2", "nn2a2", "nn3a2", "nn4a2", "nn5a2", "nn6a2", "nn7a2", "nn8a2", "nn9a2", "nn10a2", "nn11a2", "nn12a2"]
    #         configs = ["cc1", "cc2", "nn1a2", "nn2a2", "nn3a2", "nn4a2", "nn5a2", "nn6a2", "nn7a2", "nn8a2", "nn9a2", "nn10a2", 
    #                    "nn11a2", "nn12a2", "nn13a2", "nn14a2", "nn15a2", "nn16a2", "nn17a2", "nn18a2"]
    #         configs = ["cc1", "cc2", "nn11", "nn11a2", "nn11e", "nn12a2", "nn12e", "nn14a2", "nn14e", "nn16", "nn16a2", "nn16e", "nn18", "nn18a2", "nn18e"]
            
    #         vanilla
#             configs = ["cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", "nn12",
#                        "nn13", "nn14", "nn15", "nn16", "nn17", "nn18", "nn19", "nn20"]
            
    #         aiso2
    #         configs = ["cc1", "cc2", "nn1a2", "nn2a2", "nn3a2", "nn4a2", "nn5a2", "nn6a2", "nn7a2", "nn8a2", "nn9a2", "nn10a2", 
    #                     "nn11a2", "nn12a2","nn13a2", "nn14a2", "nn15a2", "nn16a2", "nn17a2", "nn18a2"]
    
    #         aiso
            configs = ["cc1", "cc2", "nn1a", "nn2a", "nn3a", "nn4a", "nn5a", "nn6a", "nn7a", "nn8a", "nn9a", "nn10a", 
                        "nn11a", "nn12a","nn13a", "nn14a", "nn15a", "nn16a", "nn17a", "nn18a"]
            
    #         emb
    #         configs = ["cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11e", "nn12e",
    #                     "nn13", "nn14e", "nn15", "nn16e", "nn17", "nn18e"]
            
            channels = ["tt"]
        
        cols = [base] + configs
        
        for ch in channels:    
            html = ""
            for test in ["saturated", "KS", "AD"]:
                if add_failing:
                    res = makeSingleHtml(df, ch, test, configs, cols, name, evalgof.compareFailingVars(df, channel))    
                else:
                    res = makeSingleHtml(df, ch, test, configs, cols, name, None)                                         
                html = html + res
            
#             file = open('{0}_{1}.html'.format(ch, name), "w+")
#             file.write(res)
#             file.close()                        
#                         
#             
#             pdf.from_string(res, '{0}_{1}.pdf'.format(ch, name))
            
    else:
        base = "cc"
        name = "custom"
        if "all" in channel:
            configs = ["cc1", "cc2"] + modes
            channels = ["et", "mt", "tt"]
        else:            
            configs = ["cc1", "cc2"] + modes            
            channels = ["tt"]
        
        cols = [base] + configs
        
        for ch in channels:    
            html = ""
            for test in ["saturated", "KS", "AD"]:
                if add_failing:
                    res = makeSingleHtml(df, ch, test, configs, cols, name, evalgof.compareFailingVars(df, channel))    
                else:
                    res = makeSingleHtml(df, ch, test, configs, cols, name, None)                   
                html = html + res
Beispiel #4
0
def makePdf(channel, modes):
    reload(GOFTools.evalgof)
    from IPython.display import display, HTML
    import GOFTools.evalgof as evalgof
    df = evalgof.loadDF("../output/{0}_pvalues.json".format(channel))

    print df

    if not modes:
        base = "cc"
        if "all" in channel:
            configs = [
                "cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7",
                "nn8", "nn9", "nn10", "nn11", "nn12", "nn13", "nn14", "nn15",
                "nn16", "nn17", "nn18", "nn21"
            ]
            channels = ["et", "mt", "tt"]
        else:
            #         configs = ["cc1", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", "nn13", "nn15",
            #                  "nn16", "nn17", "nn18", "nn19", "nn20", "nn15a", "nn16a", "nn17a", "nn18a"]
            #         configs = ["cc1", "nn5", "nn10", "nn13", "nn15", "nn15a", "nn15a2", "nn16", "nn16a", "nn16a2", "nn17", "nn17a", "nn17a2",
            #                    "nn18", "nn18a", "nn18a2", "nn19", "nn20"]
            #         configs = ["cc1", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11",
            #                "nn13", "nn13a2", "nn14", "nn14a2", "nn15a2", "nn16a2", "nn17a2", "nn18a2"]
            #         configs = ["cc1", "cc2", "nn13", "nn13a2", "nn14", "nn14a2", "nn15", "nn15a", "nn15a2", "nn16", "nn16a", "nn16a2",
            #                    "nn17", "nn17a", "nn17a2", "nn18", "nn18a", "nn18a2",
            #                    "nn1a2", "nn2a2", "nn3a2", "nn4a2", "nn5a2", "nn6a2", "nn7a2", "nn8a2", "nn9a2", "nn10a2", "nn11a2", "nn12a2"]
            #         configs = ["cc1", "cc2", "nn1a2", "nn2a2", "nn3a2", "nn4a2", "nn5a2", "nn6a2", "nn7a2", "nn8a2", "nn9a2", "nn10a2",
            #                    "nn11a2", "nn12a2", "nn13a2", "nn14a2", "nn15a2", "nn16a2", "nn17a2", "nn18a2"]
            #         configs = ["cc1", "cc2", "nn11", "nn11a2", "nn11e", "nn12a2", "nn12e", "nn14a2", "nn14e", "nn16", "nn16a2", "nn16e", "nn18", "nn18a2", "nn18e"]

            #         vanilla
            configs = [
                "cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7",
                "nn8", "nn9", "nn10", "nn11", "nn12", "nn13", "nn14", "nn15",
                "nn16", "nn17", "nn18", "nn19", "nn20"
            ]

            #         aiso2
            #         configs = ["cc1", "cc2", "nn1a2", "nn2a2", "nn3a2", "nn4a2", "nn5a2", "nn6a2", "nn7a2", "nn8a2", "nn9a2", "nn10a2",
            #                     "nn11a2", "nn12a2","nn13a2", "nn14a2", "nn15a2", "nn16a2", "nn17a2", "nn18a2"]

            #         aiso
            #         configs = ["cc1", "cc2", "nn1a", "nn2a", "nn3a", "nn4a", "nn5a", "nn6a", "nn7a", "nn8a", "nn9a", "nn10a",
            #                     "nn11a", "nn12a","nn13a", "nn14a", "nn15a", "nn16a", "nn17a", "nn18a"]

            #         emb
            #         configs = ["cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11e", "nn12e",
            #                     "nn13", "nn14e", "nn15", "nn16e", "nn17", "nn18e"]

            channels = ["tt"]

        cols = [base] + configs

        for ch in channels:
            html = ""

            result = evalgof.compareSideBySide(df, "cc", configs, "saturated",
                                               ch)
            result = result.rename(columns={"channel": "ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            styler = result.style.applymap(color_negative_red) \
                        .apply(highlight_greater_than_base, subset=cols, axis=1) \
                        .apply(highlight_smaller_than_base, subset=cols, axis=1) \
                        .apply(highlight_max, subset=cols, axis=1)

            html = html + styler.render()

            result = evalgof.compareSideBySide(df, "cc", configs, "KS", ch)
            result = result.rename(columns={"channel": "ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            styler = result.style.applymap(color_negative_red) \
                        .apply(highlight_greater_than_base, subset=cols, axis=1) \
                        .apply(highlight_smaller_than_base, subset=cols, axis=1) \
                        .apply(highlight_max, subset=cols, axis=1)

            html = html + "<br/>"
            html = html + styler.render()

            result = evalgof.compareSideBySide(df, "cc", configs, "AD", ch)
            result = result.rename(columns={"channel": "ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            styler = result.style.applymap(color_negative_red) \
                        .apply(highlight_greater_than_base, subset=cols, axis=1) \
                        .apply(highlight_smaller_than_base, subset=cols, axis=1) \
                        .apply(highlight_max, subset=cols, axis=1)

            html = html + "<br/>"
            html = html + styler.render()

            import pandas as pd
            import pdfkit as pdf
            pdf.from_string(html, '{0}_complete.pdf'.format(ch))

    else:
        base = "cc"
        name = "custom"
        if "all" in channel:
            configs = ["cc1", "cc2"] + modes
            channels = ["et", "mt", "tt"]
        else:
            configs = ["cc1", "cc2"] + modes
            channels = ["tt"]

        cols = [base] + configs

        for ch in channels:
            html = ""

            result = evalgof.compareSideBySide(df, "cc", configs, "saturated",
                                               ch)
            result = result.rename(columns={"channel": "ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            styler = result.style.applymap(color_negative_red) \
                        .apply(highlight_greater_than_base, subset=cols, axis=1) \
                        .apply(highlight_smaller_than_base, subset=cols, axis=1) \
                        .apply(highlight_max, subset=cols, axis=1)

            html = html + styler.render()

            result = evalgof.compareSideBySide(df, "cc", configs, "KS", ch)
            result = result.rename(columns={"channel": "ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            styler = result.style.applymap(color_negative_red) \
                        .apply(highlight_greater_than_base, subset=cols, axis=1) \
                        .apply(highlight_smaller_than_base, subset=cols, axis=1) \
                        .apply(highlight_max, subset=cols, axis=1)

            html = html + "<br/>"
            html = html + styler.render()

            result = evalgof.compareSideBySide(df, "cc", configs, "AD", ch)
            result = result.rename(columns={"channel": "ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            styler = result.style.applymap(color_negative_red) \
                        .apply(highlight_greater_than_base, subset=cols, axis=1) \
                        .apply(highlight_smaller_than_base, subset=cols, axis=1) \
                        .apply(highlight_max, subset=cols, axis=1)

            html = html + "<br/>"
            html = html + styler.render()

            import pandas as pd
            import pdfkit as pdf
            pdf.from_string(html, '{0}_{1}.pdf'.format(ch, name))
Beispiel #5
0
def makeCsv(channel, modes):
    reload(GOFTools.evalgof)
    from IPython.display import display, HTML
    import GOFTools.evalgof as evalgof
    df = evalgof.loadDF("../output/{0}_pvalues.json".format(channel))
    
    print df
    
    if not modes:
        base = "cc"
        if "all" in channel:
            configs = ["cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", "nn12",
                   "nn13", "nn14", "nn15", "nn16", "nn17", "nn18", "nn21"]
            channels = ["et", "mt", "tt"]
        else:
            
    #         vanilla
            configs = ["cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11", "nn12",
                       "nn13", "nn14", "nn15", "nn16", "nn17", "nn18", "nn19", "nn20"]
            
    #         aiso2
    #         configs = ["cc1", "cc2", "nn1a2", "nn2a2", "nn3a2", "nn4a2", "nn5a2", "nn6a2", "nn7a2", "nn8a2", "nn9a2", "nn10a2", 
    #                     "nn11a2", "nn12a2","nn13a2", "nn14a2", "nn15a2", "nn16a2", "nn17a2", "nn18a2"]
    
    #         aiso
    #         configs = ["cc1", "cc2", "nn1a", "nn2a", "nn3a", "nn4a", "nn5a", "nn6a", "nn7a", "nn8a", "nn9a", "nn10a", 
    #                     "nn11a", "nn12a","nn13a", "nn14a", "nn15a", "nn16a", "nn17a", "nn18a"]
            
    #         emb
    #         configs = ["cc1", "cc2", "nn1", "nn2", "nn3", "nn4", "nn5", "nn6", "nn7", "nn8", "nn9", "nn10", "nn11e", "nn12e",
    #                     "nn13", "nn14e", "nn15", "nn16e", "nn17", "nn18e"]
            
            channels = ["tt"]
        
        cols = [base] + configs
        
        for ch in channels:    
            
            result = evalgof.compareSideBySide(df, "cc", configs, "saturated", ch)
            result = result.rename(columns = {"channel":"ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
                        
            saveCsv(result, "{0}_{1}_complete.csv".format(ch, "saturated"))
            
            result = evalgof.compareSideBySide(df, "cc", configs, "KS", ch)
            result = result.rename(columns = {"channel":"ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
                        
            saveCsv(result, "{0}_{1}_complete.csv".format(ch, "KS"))
            
            result = evalgof.compareSideBySide(df, "cc", configs, "AD", ch)
            result = result.rename(columns = {"channel":"ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            
            saveCsv(result, "{0}_{1}_complete.csv".format(ch, "AD"))  
            
    else:
        base = "cc"
        name = "custom"
        if "all" in channel:
            configs = ["cc1", "cc2"] + modes
            channels = ["et", "mt", "tt"]
        else:            
            configs = ["cc1", "cc2"] + modes            
            channels = ["tt"]
        
        cols = [base] + configs
        
        for ch in channels:    
            result = evalgof.compareSideBySide(df, "cc", configs, "saturated", ch)
            result = result.rename(columns = {"channel":"ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
                        
            saveCsv(result, "{0}_{1}_{2}.csv".format(ch, "saturated", name))
            
            result = evalgof.compareSideBySide(df, "cc", configs, "KS", ch)
            result = result.rename(columns = {"channel":"ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
                        
            saveCsv(result, "{0}_{1}_{2}.csv".format(ch, "KS", name))
            
            result = evalgof.compareSideBySide(df, "cc", configs, "AD", ch)
            result = result.rename(columns = {"channel":"ch"})
            result.drop(["dc_type", "gof_mode"], axis=1, inplace=True)
            
            saveCsv(result, "{0}_{1}_{2}.csv".format(ch, "AD", name))  
Beispiel #6
0
def makeHtml(channel, modes, add_failing):
    et_df = evalgof.loadDF("output/et_pvalues.json")
    mt_df = evalgof.loadDF("output/mt_pvalues.json")
    tt_df = evalgof.loadDF("output/tt_pvalues.json")
    #     tt_df = None

    print et_df
    print mt_df

    if not modes:
        base = "cc"
        name = "default"

        channels = [channel]
        configs = ["cc1", "cc2"]

        cols = [base] + configs

        for ch in channels:
            html = ""
            if ch == "tt":
                in_df = tt_df
            elif ch == "et":
                in_df = et_df
            elif ch == "mt":
                in_df = mt_df

            for test in ["saturated", "KS", "AD"]:
                if add_failing:
                    res = makeSingleHtml(
                        in_df, ch, test, configs, cols, name,
                        evalgof.compareFailingVarsNew(in_df, channel))
                else:
                    res = makeSingleHtml(in_df, ch, test, configs, cols, name,
                                         None)
                html = html + res

    else:
        base = "cc"
        name = "custom"

        channels = [channel]
        configs = ["cc1", "cc2"] + modes

        #         cols = [base] + configs
        cols = modes

        for ch in channels:
            html = ""
            if ch == "tt":
                in_df = tt_df
            elif ch == "et":
                in_df = et_df
            elif ch == "mt":
                in_df = mt_df

            for test in ["saturated", "KS", "AD"]:
                if add_failing:
                    res = makeSingleHtml(
                        in_df, ch, test, configs, cols, name,
                        evalgof.compareFailingVarsNew(in_df, channel))
                else:
                    res = makeSingleHtml(in_df, ch, test, configs, cols, name,
                                         None)
                html = html + res