def main():
#    muonDir = "../multicrab_muonDebugAnalysisAod_130503_112555"
#    muonDir = "../multicrab_muonDebugAnalysisAod_pt41_130506_124929"
    muonDir = "../multicrab_muonDebugAnalysisAod_pt41_muscle_pu_130506_163909"
    tauDir = "."

    if jetSelection:
        muonDir = "../multicrab_muonAnalysis_GenMuonDebug_130506_155845"
    

    args = {
        "analysisName": "debugAnalyzer",
        "dataEra": "Run2011A"
    }
    muArgs = {}
    muArgs.update(args)
    #muArgs["analysisName"] =  "debugAnalyzerMuscle"

    muonDatasets = dataset.getDatasetsFromMulticrabCfg(directory=muonDir, weightedCounters=False, **muArgs)
    tauDatasets = dataset.getDatasetsFromMulticrabCfg(directory=tauDir, weightedCounters=False, **args)

    plots.mergeRenameReorderForDataMC(muonDatasets)
    plots.mergeRenameReorderForDataMC(tauDatasets)

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.cmsTextMode = histograms.CMSMode.SIMULATION
    histograms.cmsText[histograms.CMSMode.SIMULATION] = "Simulation"
    histograms.createLegend.setDefaults(y1=0.93, y2=0.8, x1=0.82, x2=0.93)

    doPlots(muonDatasets.getDataset("TTJets"), tauDatasets.getDataset("TTJets"))
    doCounters(muonDatasets, tauDatasets, "TTJets")
def main():
    dirNormal = "../multicrab_signalAnalysisGenTauSkim_140814_211711"
    dirEmb = "."

    dsetsNormal = dataset.getDatasetsFromMulticrabCfg(directory=dirNormal, analysisName="signalAnalysisGenuineTau")
    dsetsNormalCut = dataset.getDatasetsFromMulticrabCfg(directory=dirNormal, analysisName="signalAnalysisGenuineTauCaloMet70")
    dsetsEmb = dataset.getDatasetsFromMulticrabCfg(directory=dirEmb, analysisName="signalAnalysisMIdEffTrgEffWTauMu")
    dsetsEmbCut = dataset.getDatasetsFromMulticrabCfg(directory=dirEmb, analysisName="signalAnalysisMIdEffTrgEffWTauMuCaloMet70")

    dsetsNormal.updateNAllEventsToPUWeighted()
    dsetsNormalCut.updateNAllEventsToPUWeighted()
    dsetsEmb.updateNAllEventsToPUWeighted()
    dsetsEmbCut.updateNAllEventsToPUWeighted()

    dsetsEmb.loadLuminosities()
    dsetsEmbCut.loadLuminosities()

    plots.mergeRenameReorderForDataMC(dsetsNormal)
    plots.mergeRenameReorderForDataMC(dsetsNormalCut)
    plots.mergeRenameReorderForDataMC(dsetsEmb)
    plots.mergeRenameReorderForDataMC(dsetsEmbCut)

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.cmsTextMode = histograms.CMSMode.SIMULATION_PRELIMINARY
    histograms.createLegend.setDefaults(y1=0.93, y2=0.8, x1=0.82, x2=0.93)
    histograms.uncertaintyMode.set(histograms.uncertaintyMode.StatOnly)
    histograms.createLegendRatio.moveDefaults(dx=-0.05, dh=-0.1)
    plots._legendLabels["BackgroundStatError"] = "Norm. stat. unc."

    if not os.path.exists("calometComparison"):
        os.mkdir("calometComparison")

    #doPlots(dsetsNormal.getDataset("TTJets"), dsetsEmb.getDataset("TTJets"), dsetsEmb.getDataset("Data").getLuminosity())
    doEffPlots(dsetsNormalCut.getDataset("TTJets"), dsetsNormal.getDataset("TTJets"), dsetsEmbCut.getDataset("TTJets"), dsetsEmb.getDataset("TTJets"), dsetsEmb.getDataset("Data").getLuminosity())
def main():
    #    muonDir = "../multicrab_muonDebugAnalysisAod_130503_112555"
    #    muonDir = "../multicrab_muonDebugAnalysisAod_pt41_130506_124929"
    muonDir = "../multicrab_muonDebugAnalysisAod_pt41_muscle_pu_130506_163909"
    tauDir = "."

    if jetSelection:
        muonDir = "../multicrab_muonAnalysis_GenMuonDebug_130506_155845"

    args = {"analysisName": "debugAnalyzer", "dataEra": "Run2011A"}
    muArgs = {}
    muArgs.update(args)
    #muArgs["analysisName"] =  "debugAnalyzerMuscle"

    muonDatasets = dataset.getDatasetsFromMulticrabCfg(directory=muonDir,
                                                       weightedCounters=False,
                                                       **muArgs)
    tauDatasets = dataset.getDatasetsFromMulticrabCfg(directory=tauDir,
                                                      weightedCounters=False,
                                                      **args)

    plots.mergeRenameReorderForDataMC(muonDatasets)
    plots.mergeRenameReorderForDataMC(tauDatasets)

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.cmsTextMode = histograms.CMSMode.SIMULATION
    histograms.cmsText[histograms.CMSMode.SIMULATION] = "Simulation"
    histograms.createLegend.setDefaults(y1=0.93, y2=0.8, x1=0.82, x2=0.93)

    doPlots(muonDatasets.getDataset("TTJets"),
            tauDatasets.getDataset("TTJets"))
    doCounters(muonDatasets, tauDatasets, "TTJets")
def main():
    dirAve = "."
    # dirSeeds = []
    # inputInfoPath = os.path.join(dirAve, "inputInfo.txt")
    # f = open(inputInfoPath)
    # input_re = re.compile("Embedded input directory: (?P<dir>\S+)")
    # for line in f:
    #     m = input_re.search(line)
    #     if m:
    #         dirSeeds.append(os.path.join("..", m.group("dir")))
    # f.close()
    # if len(dirSeeds) == 0:
    #     raise Exception("Found 0 input directories from %s" % inputInfoPath)

    parser = OptionParser(usage="Usage: %prog seed0 [seed1 ...]")
    #parser.add_option("-s", "--seed", dest="dirSeeds", default=[], action="append"
    #                  help="Path to pseudo-multicrab with a single seed (can be given multiple times)")

    (opts, args) = parser.parse_args()
    if len(args) == 0:
        parser.error("No seed pseudo-multicrab directories were given")

#    dirSeeds = [
##        "../embedding_140509_100532",
##        "../embedding_seedTest1_140508_154221",
##        "../embedding_seedTest2_140508_154540",
##        "../embedding_seedTest3_140508_155055",
##        "../embedding_seedTest4_140508_155742"
#        "../embedding_mc_tightPlus_140512_160900",
#        "../embedding_mc_seedTest1_140807_084326"
#        ]
    dirSeeds = args

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.createLegend.moveDefaults(dx=-0.02)
    histograms.uncertaintyMode.set(histograms.uncertaintyMode.StatOnly)
    histograms.createLegendRatio.moveDefaults(dh=-0.1, dx=-0.53)
    plots._legendLabels["BackgroundStatError"] = "Avg. stat. unc."

    for optMode in [
#        "OptQCDTailKillerZeroPlus",

        "OptQCDTailKillerLoosePlus",
#        "OptQCDTailKillerMediumPlus",
        "OptQCDTailKillerTightPlus",

#        "OptQCDTailKillerVeryTightPlus",
#            None
        ]:
        datasetsAve = dataset.getDatasetsFromMulticrabCfg(directory=dirAve, dataEra=dataEra, analysisName=analysisEmb, optimizationMode=optMode)
        datasetsSeeds = [
            dataset.getDatasetsFromMulticrabCfg(directory=d, dataEra=dataEra, analysisName=analysisEmb, optimizationMode=optMode) for d in dirSeeds
            ]
        doDataset(datasetsAve, datasetsSeeds, optMode)
        datasetsAve.close()
        for d in datasetsSeeds:
            d.close()

        tauEmbedding.writeToFile(optMode+"_average", "input.txt", ("Average: %s\n" % os.getcwd()) + "\n".join(["Seed: "+s for s in dirSeeds]))
Exemplo n.º 5
0
def main():
    effDir = "../multicrab_aodAnalysis_taumet_v53_3_131015_122226_triggerTestEff"
    bitDir = "."

    datasets = aux.MultiObject()
    datasets.add(
        "eff",
        dataset.getDatasetsFromMulticrabCfg(directory=effDir, dataEra=era))
    datasets.add(
        "bit",
        dataset.getDatasetsFromMulticrabCfg(directory=bitDir, dataEra=era))

    datasets.forEach(plots.mergeRenameReorderForDataMC)

    style = tdrstyle.TDRStyle()
    histograms.cmsTextMode = histograms.CMSMode.SIMULATION
    histograms.createLegend.setDefaults(y1=0.93, y2=0.8, x1=0.82, x2=0.93)
    histograms.createLegend.moveDefaults(dx=-0.05)
    plots._plotStyles["Ratio"].extend([
        styles.StyleMarker(markerColor=ROOT.kRed),
        styles.StyleLine(lineColor=ROOT.kRed)
    ])
    plots._plotStyles["RatioLine"].extend(
        [styles.StyleLine(lineColor=ROOT.kBlack)])

    plots.drawPlot.setDefaults(addLuminosityText=True)

    doPlots(*(datasets.getDataset("TTJets")))
def main():
    datasetsEmb = dataset.getDatasetsFromMulticrabCfg(
        cfgfile=dirEmb + "/multicrab.cfg", counters=analysisEmb + "Counters")
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(
        cfgfile=dirSig + "/multicrab.cfg", counters=analysisSig + "Counters")

    datasetsEmb.updateNAllEventsToPUWeighted()
    datasetsSig.updateNAllEventsToPUWeighted()

    datasetsEmb.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasetsEmb)
    plots.mergeRenameReorderForDataMC(datasetsSig)

    style = tdrstyle.TDRStyle()
    histograms.createLegend.setDefaults(y1=0.9, y2=0.75, x1=0.6, x2=0.95)

    tauEmbedding.normalize = False
    tauEmbedding.era = "Run2011A"

    #    doPlots(datasetsEmb, datasetsSig, "TTJets")
    #    doPlots(datasetsEmb, datasetsSig, "WJets")
    #    doCounters(datasetsEmb, datasetsSig, "TTJets")
    #    doCounters(datasetsEmb, datasetsSig, "WJets")
    #    doCounters(datasetsEmb, datasetsSig, "DYJetsToLL")
    #    doCounters(datasetsEmb, datasetsSig, "SingleTop")
    doCounters(datasetsEmb, datasetsSig, "Diboson")
Exemplo n.º 7
0
def main():
    # Datasets
    datasetsEmbedding = dataset.getDatasetsFromMulticrabCfg(cfgfile=embeddingDir+"/multicrab.cfg", counters=None)
    datasetsTau = dataset.getDatasetsFromMulticrabCfg(cfgfile=tauDir+"/multicrab.cfg", counters=None)

    datasetsEmbedding.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasetsEmbedding)
    plots.mergeRenameReorderForDataMC(datasetsTau)

    if embeddingData:
        datasetsEmbedding.selectAndReorder(["Data"])
    else:
        datasetsEmbedding.selectAndReorder([mcSample])
    datasetsTau.selectAndReorder([mcSample])

    # Style
    style = tdrstyle.TDRStyle()
    
    def createMuonTauPlot(nameMuon, nameTau):
        return MuonTauPlot(datasetsEmbedding, datasetsTau, embeddingAnalysis, tauAnalysis, nameMuon, nameTau)

    def createTauPlot(nameTau):
        return TauPlot(datasetsEmbedding, datasetsTau, embeddingAnalysis, tauAnalysis, nameTau)

    # Plots
    plotPt(createMuonTauPlot("Muon_Pt", "GenTau_Pt"), opts={"xmin":30, "ymin":5e-4})
    plotPt(createTauPlot("Tau_Pt"))

    plotEta(createMuonTauPlot("Muon_Eta", "GenTau_Eta"), opts={"xmin":-2.1, "xmax": 2.1})
    plotEta(createTauPlot("Tau_Eta"), opts={"xmin":-2.4, "xmax":2.4})

    plotPhi(createMuonTauPlot("Muon_Phi", "GenTau_Phi"))
    plotPhi(createTauPlot("Tau_Phi"))
Exemplo n.º 8
0
def main():
    # Read the datasets
    # Take only TT+W from signal analysis, and data from embedding+signal analysis
    datasetsEmbSig = dataset.getDatasetsFromMulticrabCfg(
        cfgfile=embeddingSignalAnalysis + "/multicrab.cfg", counters=counters)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=signalAnalysis +
                                                      "/multicrab.cfg",
                                                      counters=counters)

    # Select only data from embedded
    datasetsEmbSig.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasetsEmbSig)
    if useData:
        datasetsEmbSig.selectAndReorder(datasetsEmbSig.getDataDatasetNames())
    else:
        mcNames = filter(lambda name: "TTToHplus" not in name,
                         datasetsEmbSig.getMCDatasetNames())
        print "Merging MC"
        print "  " + "\n  ".join(mcNames)
        datasetsEmbSig.merge("MC", mcNames)
        datasetsEmbSig.selectAndReorder(["Data", "MC"])

    # Select only data from original
    datasetsSig.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasetsSig)
    sigLumi = datasetsSig.getDataset("Data").getLuminosity()
    if useData:
        datasetsSig.selectAndReorder(datasetsSig.getDataDatasetNames())
    else:
        datasetsSig.remove(["WW_TuneZ2", "WZ_TuneZ2", "ZZ_TuneZ2"])
        mcNames = filter(lambda name: "TTToHplus" not in name,
                         datasetsSig.getMCDatasetNames())
        print "Merging MC"
        print "  " + "\n  ".join(mcNames)
        datasetsSig.merge("MC", mcNames)
        datasetsSig.selectAndReorder(["Data", "MC"])

    print "Embedding luminosity %f" % datasetsEmbSig.getDataset(
        "Data").getLuminosity()
    print "Normal    luminosity %f" % datasetsSig.getDataset(
        "Data").getLuminosity()

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    histograms.createLegend.setDefaults(y1=0.7)

    # Wrapper to decrease typing and have the common options
    def createPlot(plot, *args):
        kwargs = {}
        kwargs["saveFormats"] = [".png"]
        return Plot(datasetsEmbSig, datasetsSig, analysis + "/" + plot, *args,
                    **kwargs)

    transverseMass(createPlot("transverseMass"), rebin=20)

    print "============================================================"
    print "Main counter"
    print getMainCounterTable(datasetsEmbSig, datasetsSig).format()
def main():
    tauDirEmbs = [os.path.join("..", d) for d in tauEmbedding.tauDirEmbs]
    tauDirSig = "../"+tauEmbedding.tauDirSig

    dirEmbs = ["."] + [os.path.join("..", d) for d in tauEmbedding.dirEmbs[1:]]
    dirSig = "../"+tauEmbedding.dirSig

#    tauDirEmbs = tauDirEmbs[:2]
#    dirEmbs = dirEmbs[:2]

    tauDatasetsEmb = tauEmbedding.DatasetsMany(tauDirEmbs, tauAnalysisEmb+"Counters", normalizeMCByLuminosity=True)
    tauDatasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=tauDirSig+"/multicrab.cfg", counters=tauAnalysisSig+"Counters")
    datasetsEmb = tauEmbedding.DatasetsMany(dirEmbs, analysisEmb+"Counters", normalizeMCByLuminosity=True)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=dirSig+"/multicrab.cfg", counters=analysisSig+"Counters")

    tauDatasetsSig.updateNAllEventsToPUWeighted()
    datasetsSig.updateNAllEventsToPUWeighted()

    tauDatasetsEmb.forEach(plots.mergeRenameReorderForDataMC)
    datasetsEmb.forEach(plots.mergeRenameReorderForDataMC)
    tauDatasetsEmb.setLumiFromData()
    datasetsEmb.setLumiFromData()
    plots.mergeRenameReorderForDataMC(tauDatasetsSig)
    plots.mergeRenameReorderForDataMC(datasetsSig)

    def mergeEWK(datasets):
        datasets.merge("EWKMC", ["WJets", "TTJets", "DYJetsToLL", "SingleTop", "Diboson"], keepSources=True)
    mergeEWK(tauDatasetsSig)
    mergeEWK(datasetsSig)
    tauDatasetsEmb.forEach(mergeEWK)
    datasetsEmb.forEach(mergeEWK)
    plots._legendLabels["EWKMC"] = "EWK"

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    ROOT.gStyle.SetHatchesLineWidth(2)

    histograms.cmsTextMode = histograms.CMSMode.SIMULATION
    histograms.cmsText[histograms.CMSMode.SIMULATION] = "Simulation"
    #histograms.createLegend.setDefaults(y1=0.93, y2=0.75, x1=0.52, x2=0.93)
    histograms.createLegend.setDefaults(y1=0.93, y2=0.77, x1=0.45, x2=0.7, textSize=0.04)
    #histograms.createLegend.setDefaults(y1=0.93, y2=0.7, x1=0.45, x2=0.93)
    tauEmbedding.normalize = True
    tauEmbedding.era = "Run2011A"

    def dop(name):
        doTauPlots(tauDatasetsEmb, tauDatasetsSig, name)
        doTauCounters(tauDatasetsEmb, tauDatasetsSig, name)
        doPlots(datasetsEmb, datasetsSig, name)
        doCounters(datasetsEmb, datasetsSig, name)

    dop("TTJets")
    dop("WJets")
    dop("DYJetsToLL")
    dop("SingleTop")
    dop("Diboson")
def main():
    # Read the datasets
    # Take only TT+W from signal analysis, and data from embedding+signal analysis
    datasetsEmbSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=embeddingSignalAnalysis+"/multicrab.cfg", counters=counters)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=signalAnalysis+"/multicrab.cfg", counters=counters)
    datasetsEmbSig.updateNAllEventsToPUWeighted()
    datasetsSig.updateNAllEventsToPUWeighted()

    # Select only data from embedded
    datasetsEmbSig.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasetsEmbSig)
    if useData:
        datasetsEmbSig.selectAndReorder(datasetsEmbSig.getDataDatasetNames())
    else:
        mcNames = filter(lambda name: "TTToHplus" not in name, datasetsEmbSig.getMCDatasetNames())
        print "Merging MC"
        print "  "+"\n  ".join(mcNames)
        datasetsEmbSig.merge("MC", mcNames)
        datasetsEmbSig.selectAndReorder(["Data", "MC"])

    # Select only data from original
    datasetsSig.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasetsSig)
    sigLumi = datasetsSig.getDataset("Data").getLuminosity()
    if useData:
        datasetsSig.selectAndReorder(datasetsSig.getDataDatasetNames())
    else:
        datasetsSig.remove(["WW_TuneZ2", "WZ_TuneZ2", "ZZ_TuneZ2"])
        mcNames = filter(lambda name: "TTToHplus" not in name, datasetsSig.getMCDatasetNames())
        print "Merging MC"
        print "  "+"\n  ".join(mcNames)
        datasetsSig.merge("MC", mcNames)
        datasetsSig.selectAndReorder(["Data", "MC"])

    print "Embedding luminosity %f" % datasetsEmbSig.getDataset("Data").getLuminosity()
    print "Normal    luminosity %f" % datasetsSig.getDataset("Data").getLuminosity()

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    histograms.createLegend.setDefaults(y1=0.7)


    # Wrapper to decrease typing and have the common options
    def createPlot(plot, *args):
        kwargs = {}
        kwargs["saveFormats"] = [".png"]
        return Plot(datasetsEmbSig, datasetsSig, analysis+"/"+plot, *args, **kwargs)

    transverseMass(createPlot("transverseMass"), rebin=20)

    print "============================================================"
    print "Main counter"
    print getMainCounterTable(datasetsEmbSig, datasetsSig).format()
Exemplo n.º 11
0
def main():
    datasetsEmb = dataset.getDatasetsFromMulticrabCfg(cfgfile=dirEmb+"/multicrab.cfg", counters=analysisEmb+"Counters")
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=dirSig+"/multicrab.cfg", counters=analysisSig+"Counters")

    datasetsEmb.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasetsEmb)
    plots.mergeRenameReorderForDataMC(datasetsSig)

    style = tdrstyle.TDRStyle()
    histograms.createLegend.setDefaults(y1=0.93, y2=0.78, x1=0.6, x2=0.95)

    doPlots(datasetsEmb, datasetsSig, "TTJets")
    doPlots(datasetsEmb, datasetsSig, "WJets")
def main(opts):
    #    muonDir = "/opt/data/matti/embedding/v44_5/multicrab_muonDebugAnalysisNtupleAod_130507_141258"
    muonDir = "/opt/data/matti/embedding/v44_5/multicrab_muonDebugAnalysisNtupleAod_130515_104754"
    tauDir = "/opt/data/matti/embedding/v44_5/multicrab_analysisTau_v44_5_GenTauDebug_130508_123329"

    muonDatasets = dataset.getDatasetsFromMulticrabCfg(directory=muonDir,
                                                       weightedCounters=False)
    tauDatasets = dataset.getDatasetsFromMulticrabCfg(directory=tauDir,
                                                      weightedCounters=False)

    plots.mergeRenameReorderForDataMC(muonDatasets)
    plots.mergeRenameReorderForDataMC(tauDatasets)

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    tdrstyle.setDarkBodyRadiatorPalette()
    histograms.cmsTextMode = histograms.CMSMode.SIMULATION
    histograms.cmsText[histograms.CMSMode.SIMULATION] = "Simulation"
    histograms.createLegend.setDefaults(y1=0.93, y2=0.8, x1=0.7, x2=0.93)

    selectorArgsMuon = MuonSelectorArgs()
    selectorArgsTau = TauSelectorArgs()

    selectorArgsMuon.set(puWeight="Run2011A")
    selectorArgsTau.set(puWeight="Run2011A")

    args = {
        "process": opts.process,
        #"maxEvents": 100,
        #"printStatus": False
    }
    ntupleCacheMuon = dataset.NtupleCache(
        "tree",
        "EmbeddingDebugMuonAnalysisSelector",
        selectorArgs=selectorArgsMuon,
        cacheFileName="histogramCacheMuon.root",
        macros=["rochcor_wasym_v4.C"],
        **args)
    ntupleCacheTau = dataset.NtupleCache(
        "tree",
        "EmbeddingDebugTauAnalysisSelector",
        selectorArgs=selectorArgsTau,
        cacheFileName="histogramCacheTau.root",
        **args)

    doPlots(muonDatasets.getDataset("TTJets"),
            tauDatasets.getDataset("TTJets"), ntupleCacheMuon, ntupleCacheTau)
    doCounters(muonDatasets, tauDatasets, "TTJets", ntupleCacheMuon,
               ntupleCacheTau)
def main():
    # Read the datasets
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)

    datasets.remove(["WJets_TuneD6T_Winter10", "TTJets_TuneD6T_Winter10",
                     "TTToHplusBWB_M140_Spring11","TTToHplusBWB_M80_Spring11","TTToHplusBWB_M90_Spring11",
                   "TTToHplusBWB_M155_Spring11","TTToHplusBWB_M150_Spring11","TTToHplusBWB_M160_Spring11","TTToHplusBWB_M100_Spring11",
                    "TTToHplusBHminusB_M80_Spring11","TTToHplusBHminusB_M100_Spring11","TTToHplusBHminusB_M160_Spring11",
                     "TTToHplusBHminusB_M150_Spring11","TTToHplusBHminusB_M140_Spring11","TTToHplusBHminusB_M155_Spring11", "TauPlusX_160431-161016_Prompt","TauPlusX_162803-162828_Prompt",
                     "QCD_Pt30to50_TuneZ2_Spring11","QCD_Pt50to80_TuneZ2_Spring11","QCD_Pt80to120_TuneZ2_Spring11",
                     "QCD_Pt120to170_TuneZ2_Spring11","QCD_Pt170to300_TuneZ2_Spring11","QCD_Pt300to470_TuneZ2_Spring11",
#                     "Tau_165970-166164_Prompt", "Tau_166374-167043_Prompt", "Tau_167078-167784_Prompt", "Tau_165088-165633_Prompt"
#                     "Tau_163270-163869_May10","Tau_161217-163261_May10", "Tau_160431-161176_May10"
                     ])
                     

    
    
    datasets.loadLuminosities()

    # Take signals from 42X
    datasets.remove(filter(lambda name: "TTToHplus" in name, datasets.getAllDatasetNames()))
    
    datasets.remove(["QCD_Pt30to50_TuneZ2_Summer11","QCD_Pt50to80_TuneZ2_Summer11","QCD_Pt80to120_TuneZ2_Summer11",
                     "QCD_Pt120to170_TuneZ2_Summer11","QCD_Pt170to300_TuneZ2_Summer11","QCD_Pt300to470_TuneZ2_Summer11",
                     "WJets_TuneZ2_Summer11", "TTJets_TuneZ2_Summer11", "DYJetsToLL_M50_TuneZ2_Summer11", "Tau_160431-161176_May10",                                                            
                     "Tau_161119-161119_May10_Wed", "Tau_161217-163261_May10", "Tau_163270-163869_May10",
                     "Tau_165088-165633_Prompt", "Tau_165103-165103_Prompt_Wed", "Tau_165970-166164_Prompt",
                     "Tau_166346-166346_Prompt", "Tau_166374-167043_Prompt", "Tau_167078-167784_Prompt",
                     "Tau_167786-167913_Prompt_Wed"
                     ])
    datasetsSignal = dataset.getDatasetsFromMulticrabCfg(cfgfile="multicrab.cfg", counters=counters)

    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    
    datasets_tm = datasets.deepCopy()
    
    genTopPt(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genTopPt", normalizeByCrossSection=True), "genTopPt")
    genTopPt(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genTopPt_wrongB", normalizeByCrossSection=True), "genTopPt_wrongB")
    genBquark_Eta(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genBquark_FromTop_Eta", normalizeByCrossSection=True), "genBquark_FromTop_Eta")
    genBquark_Eta(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genBquark_NotFromTop_Eta", normalizeByCrossSection=True), "genBquark_NotFromTop_Eta")
    genBquark_Pt(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genBquark_FromTop_Pt", normalizeByCrossSection=True), "genBquark_FromTop_Pt")
    genBquark_Pt(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genBquark_NotFromTop_Pt", normalizeByCrossSection=True), "genBquark_NotFromTop_Pt")
    genBquark_DeltaRTau(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genBquark_FromTop_DeltaRTau", normalizeByCrossSection=True), "genBquark_FromTop_DeltaRTau")
    genBquark_DeltaRTau(plots.MCPlot(datasets, analysis+"/GenParticleAnalysis/genBquark_NotFromTop_DeltaRTau", normalizeByCrossSection=True), "genBquark_NotFromTop_DeltaRTau")
Exemplo n.º 14
0
def main():
    # Read the datasets
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)
           
    #datasets.loadLuminosities()

    plots.mergeRenameReorderForDataMC(datasets)

    # Set the signal cross sections to a given BR(t->H), BR(h->taunu)
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # Set the signal cross sections to a value from MSSM
    #    xsect.setHplusCrossSectionsToMSSM(datasets, tanbeta=20, mu=200)
                
    plots.mergeWHandHH(datasets) # merging of WH and HH signals must be done after setting the cross section

    # Create counter
    eventCounter = counter.EventCounter(datasets)

    #eventCounter.normalizeMCByLuminosity()
    eventCounter.normalizeMCToLuminosity(1000) # in pb^-1

    print "============================================================"
    print "Main counter (MC normalized by collision data luminosity)"
    print eventCounter.getMainCounterTable().format()

    triggerCounter = eventCounter.getSubCounter("Trigger")
    triggerCounter.forEachDataset(printTriggerEfficiency)
def main():
    tauDirEmbs = ["."] + [os.path.join("..", d) for d in tauEmbedding.tauDirEmbs[1:]]
    tauDirSig = "../"+tauEmbedding.tauDirSig

    datasetsEmb = tauEmbedding.DatasetsMany(tauDirEmbs, analysisEmb+"Counters", normalizeMCByLuminosity=True)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=tauDirSig+"/multicrab.cfg", counters=analysisSig+"Counters")
    datasetsSig.updateNAllEventsToPUWeighted()

    datasetsEmb.forEach(plots.mergeRenameReorderForDataMC)
    #datasetsEmb.setLumiFromData()
    datasetsEmb.lumi = 5049
    plots.mergeRenameReorderForDataMC(datasetsSig)

    def mergeEWK(datasets):
        datasets.merge("EWKMC", ["WJets", "TTJets"], keepSources=True)
        #datasets.merge("EWKMC", ["WJets", "TTJets", "DYJetsToLL", "SingleTop", "Diboson"], keepSources=True)
    #mergeEWK(datasetsSig)
    #datasetsEmb.forEach(mergeEWK)
    #plots._legendLabels["EWKMC"] = "EWK"

    style = tdrstyle.TDRStyle()
    histograms.createLegend.setDefaults(y1=0.93, y2=0.75, x1=0.52, x2=0.93)
    
    tauEmbedding.normalize = True
    tauEmbedding.era = "Run2011A"

    def dop(datasetName):
#        doPlots(datasetsEmb, datasetsSig, datasetName)
        doCounters(datasetsEmb, datasetsSig, datasetName)
        print "%s done" % datasetName
    dop("TTJets")
Exemplo n.º 16
0
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()
Exemplo n.º 17
0
def getDatasets(multicrabPath, myDataEra):

    # Get the ROOT files for all datasets, merge datasets and reorder them
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=multicrabPath,
                                                   dataEra=myDataEra)
    #print "%sAvailable datasets:\n    %s" % (" "*0, datasets.getAllDatasetNames())

    # Print PSets used in ROOT-file generation
    if bPrintPSet:
        #print "*** Printing PSets for dataset \"%s\"" % ("TTToHplusBHminusB_M120_Fall11")
        #print datasets.getDataset("TTToHplusBHminusB_M120_Fall11").getParameterSet()
        psets = datasets.getSelections()
        f = open("PSets.txt", "w")
        f.write(psets)
        f.close()

    # Take care of PU weighting, luminosity, signal merging etc... of the datatasets
    print "\n*** Datasets:"
    manageDatasets(datasets)

    # Print the dataset information for sanity checks
    print "=" * 70
    datasets.printInfo()
    print "=" * 70

    # Do sanity checks before returning the datasets object
    nDatasets = len(datasets.getAllDatasetNames())
    nDataDatasets = len(datasets.getDataDatasets())
    nMCDatasets = len(datasets.getMCDatasets())
    if nDatasets > 0:
        return datasets
    else:
        print "%sERROR! There are zero (0) datasets. Check your settings. " % (
            " " * 0)
        sys.exit()
Exemplo n.º 18
0
def main():
    datasetsEmb = DatasetsMany(dirEmbs, analysisEmb+"Counters", normalizeMCByLuminosity=False)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=dirSig+"/multicrab.cfg", counters=analysisSig+"Counters")
    datasetsEmb.forEach(lambda d: d.mergeData())
    datasetsEmb.setLumiFromData()

#    nonDyMc = ["QCD_Pt20_MuEnriched", "WJets", "TTJets", "SingleTop", "Diboson"]
#    datasetsEmb.remove(nonDyMc)
#    datasetsSig.remove(nonDyMc)

    tauEmbedding.normalize=True
    tauEmbedding.era = "Run2011A"


    taskDir = multicrab.createTaskDir("embedded")

    f = open(os.path.join(taskDir, "codeVersion.txt"), "w")
    f.write(git.getCommitId()+"\n")
    f.close()
    f = open(os.path.join(taskDir, "codeStatus.txt"), "w")
    f.write(git.getStatus()+"\n")
    f.close()
    f = open(os.path.join(taskDir, "codeDiff.txt"), "w")
    f.write(git.getDiff()+"\n")
    f.close()
    f = open(os.path.join(taskDir, "inputInfo.txt"), "w")
    f.write("Embedded directories:\n%s\n\nNormal directory:\n%s\n" % ("\n".join(dirEmbs), dirSig))
    f.write("\nEmbedded analysis: %s\nNormal analysis: %s\n" % (analysisEmb, analysisSig))
    f.close()

    operate = lambda dn: operateDataset(taskDir, datasetsEmb, datasetsSig, dn)

    operate("Data")
    operate("DYJetsToLL_M50_TuneZ2_Summer11")
    operate("WW_TuneZ2_Summer11")
def main():
    dirSeeds = [
        "embedding_mc_seedTest1_fix_140807_103811",
        "embedding_mc_seedTest1_140807_084326"
        ]

    labels = [
        "Fixed",
        "Current"
        ]

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.createLegend.moveDefaults(dx=-0.02)
    histograms.uncertaintyMode.set(histograms.uncertaintyMode.StatOnly)
    histograms.createLegendRatio.moveDefaults(dh=-0.1, dx=-0.53)
    plots._legendLabels["BackgroundStatError"] = "Avg. stat. unc."

    for optMode in [
#        "OptQCDTailKillerZeroPlus",

#        "OptQCDTailKillerLoosePlus",
#        "OptQCDTailKillerMediumPlus",
#        "OptQCDTailKillerTightPlus",

#        "OptQCDTailKillerVeryTightPlus",

            None
        ]:
        datasetsSeeds = [
            dataset.getDatasetsFromMulticrabCfg(directory=d, dataEra=dataEra, analysisName=analysisEmb, optimizationMode=optMode) for d in dirSeeds
            ]
        doDataset(datasetsSeeds, optMode, labels)
        for d in datasetsSeeds:
            d.close()
Exemplo n.º 20
0
def main():
    # Read the datasets
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=analysis+"Counters", weightedCounters=(dataEra!=""))
    if dataEra != "":
        datasets.updateNAllEventsToPUWeighted(era=dataEra)
    datasets.loadLuminosities()
    plots.mergeRenameReorderForDataMC(datasets)

    # Remove signal
    datasets.remove(filter(lambda name: "TTToHplus" in name, datasets.getAllDatasetNames()))

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.createLegend.moveDefaults(dx=-0.04)
    plots._legendLabels["QCD_Pt20_MuEnriched"] = "QCD"
    #datasets.remove(["QCD_Pt20_MuEnriched"])
    #histograms.createLegend.moveDefaults(dh=-0.05)

    selectorArgs = [tauEmbedding.tauNtuple.weight[dataEra]]
    ntupleCache = dataset.NtupleCache(analysis+"/tree", "TauAnalysisSelector",
                                      selectorArgs=selectorArgs+[True],
                                      process=False,
                                      #maxEvents=100,
                                      cacheFileName="histogramCacheTauEmb.root"
                                      )
#    doPlots(datasets)
    doCounters(datasets, ntupleCache)
Exemplo n.º 21
0
def getMulticrabPsets(options, multicrabDir):
    '''
    def getMulticrabPsets(options, multicrabDir):
    '''

    ### Get the user-defined (or default) data-era
    myDataEra = options.dataEra

    ### Get the ROOT files for all datasets, merge datasets and reorder them
    if options.verbose:
        print "+++ VERBOSE: Obtaining datasets from multicrab directory \"%s\"" % (multicrabDir)
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=multicrabDir, dataEra=myDataEra)

    ### Print PSets used in ROOT-file generation
    saveFileName = "PSet_Multicrab.txt" # + multicrabDir.strip("../") + ".txt"
    saveFilePath = os.getcwd() + "/" + saveFileName

    ### Check that file does not already exist
    fileExists(saveFilePath, False)
    saveFile = open(saveFilePath, "w")
    print "+++ Saving PSets from Multicrab directory \"%s\" to:\n    \"%s\"" % (multicrabDir, saveFilePath)
    saveFile.write(datasets.getSelections())
    saveFile.close()

    if options.verbose:
        print "+++ VERBOSE: Obtained PSets from %s" % (multicrabDir)

    return saveFilePath
Exemplo n.º 22
0
def main():
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)
    datasets.updateNAllEventsToPUWeighted()
    datasets.loadLuminosities()

    plots.mergeRenameReorderForDataMC(datasets)
    print "Int.Lumi",datasets.getDataset("Data").getLuminosity()
#    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))
#    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))
    
    style = tdrstyle.TDRStyle()




#    datasets3 = dataset.getDatasetsFromMulticrabCfg(cfgfile="/home/rkinnune/signalAnalysis/CMSSW_4_4_4/src/HiggsAnalysis/HeavyChHiggsToTauNu/test/multicrab_120607_075512/multicrab.cfg", counters=counters)
#    datasets3.updateNAllEventsToPUWeighted()
#    datasets3.loadLuminosities()
#    plots.mergeRenameReorderForDataMC(datasets3)
#    datasets2.selectAndReorder(["TTJets_TuneZ2_Fall11","TTToHplusBWB_M120_Fall11"])
#    datasets2.rename("TTJets_TuneZ2_Fall11","TTJets2")
#    datasets2.rename("TTToHplusBWB_M120_Fall11","TTToHplusBWB_M120_2")     
#    datasets.extend(datasets2)     

#    plot(datasets, datasets2, datasets3)
    
    plot(datasets)
    printCounters(datasets)
Exemplo n.º 23
0
def embeddingPlots():
    datasets = None
    if os.path.exists("histograms.root"):
        datasets = dataset.getDatasetsFromRootFiles([("Test", "histograms.root")], counters=None)
    else:
        datasets = dataset.getDatasetsFromMulticrabCfg(counters="countAnalyzer")
        datasets.selectAndReorder(["TTJets_TuneZ2_Summer11"])
#        datasets.selectAndReorder(["WJets_TuneZ2_Summer11"])
#        datasets.selectAndReorder(["WJets_TuneZ2_Spring11"])
#        datasets.selectAndReorder(["QCD_Pt20_MuEnriched_TuneZ2_Winter10"])
        datasets.updateNAllEventsToPUWeighted()

    #isoAnalyses = ["EmbeddingAnalyzer"+x for x in ["RelIso05", "RelIso10", "RelIso15", "RelIso20", "RelIso25", "RelIso50", ""]]
    isoAnalyses = ["EmbeddingAnalyzer"]

    muonTau = PlotMuonTau()
    muonTauPFCand = PlotMuonPFCand()
    genTauNu = PlotGenTauNu()
    met = PlotMet()
    muonTauMetDeltaPhi = PlotMuonTauMetDeltaPhi()

    muonTauIso = PlotMuonTauIso()
    #muonTauIso.plot(datasets, isoAnalyses)
    #muonTauIso.plot(datasets, isoAnalyses, normalizeToOne=True)

    for analysis in [
        "EmbeddingAnalyzer",
    #    "tauIdEmbeddingAnalyzer",
    #    "tauPtIdEmbeddingAnalyzer"
    #    "EmbeddingAnalyzer/matched",
    #    "tauIdEmbeddingAnalyzer/matched",
    #    "tauPtIdEmbeddingAnalyzer/matched"
        ]:
        for q in ["Pt", "Eta", "Phi"]:
            muonTau.plot(datasets, analysis, q)
            #genTauNu.plot(datasets, analysis, q)
        for q in ["TrackDxy", "TrackDz"]:
            muonTauPFCand.plot(datasets, analysis, q)
        muonTauDR(datasets, analysis)
        muonTauIso2(datasets, analysis)
#        tauGenMass(datasets, analysis)
    
#        muonTauMetDeltaPhi.plot(datasets, analysis, "Met")
        for t in [
            "Met",
    #        "MetNoMuon",
    #        "GenMetTrue",
    #        "GenMetCalo",
    #        "GenMetCaloAndNonPrompt",
    #        "GenMetNuSum",
    #        "GenMetNu"
            ]:
            muonTauMetDeltaPhi.plot(datasets, analysis, t)
            for q, log in [
                ("Et", True),
                ("X", True),
                ("Y", True),
                ("Phi", False)
                ]:
                met.plot(datasets, analysis, t=t, q=q, log=log)
Exemplo n.º 24
0
def getDatasets(multicrabPath, myDataEra):
    '''
    def getDatasets(multicrabPath, myDataEra):
    This module used the user-defined path to a multicrab directory to 
    get the available datasets for a given Data-Era. 
    According to the boolean dictionary in the beginning of this file
    the datasets are merged and reordered. Optionally the PSet parameters
    are also printed for a specified dataset, also selected at the beginning 
    of this file with the "pSetToPrint" string.
    '''

    ### Get the ROOT files for all datasets, merge datasets and reorder them
    print "*** Obtaining datasets from: %s" % (multicrabPath)
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=multicrabPath, dataEra=myDataEra)
    #print "*** Available datasets: %s" % (datasets.getAllDatasetNames())

    ### Print PSets used in ROOT-file generation
    if getBool("bPrintPSet"):
        print datasets.getDataset(pSetToPrint).getParameterSet()
        
    ### Take care of PU weighting, luminosity, signal merging etc... of the datatasets
    manageDatasets(datasets)

    ### Print the dataset information for sanity checks
    datasets.printInfo()

    return datasets
Exemplo n.º 25
0
def main():
    dirSeeds = [
        "embedding_mc_seedTest1_fix_140807_103811",
        "embedding_mc_seedTest1_140807_084326"
    ]

    labels = ["Fixed", "Current"]

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.createLegend.moveDefaults(dx=-0.02)
    histograms.uncertaintyMode.set(histograms.uncertaintyMode.StatOnly)
    histograms.createLegendRatio.moveDefaults(dh=-0.1, dx=-0.53)
    plots._legendLabels["BackgroundStatError"] = "Avg. stat. unc."

    for optMode in [
            #        "OptQCDTailKillerZeroPlus",

            #        "OptQCDTailKillerLoosePlus",
            #        "OptQCDTailKillerMediumPlus",
            #        "OptQCDTailKillerTightPlus",

            #        "OptQCDTailKillerVeryTightPlus",
            None
    ]:
        datasetsSeeds = [
            dataset.getDatasetsFromMulticrabCfg(directory=d,
                                                dataEra=dataEra,
                                                analysisName=analysisEmb,
                                                optimizationMode=optMode)
            for d in dirSeeds
        ]
        doDataset(datasetsSeeds, optMode, labels)
        for d in datasetsSeeds:
            d.close()
Exemplo n.º 26
0
def getDatasets(multicrabPath, myDataEra):

    # Get the ROOT files for all datasets, merge datasets and reorder them
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=multicrabPath, dataEra=myDataEra)
    #print "%sAvailable datasets:\n    %s" % (" "*0, datasets.getAllDatasetNames())
    
    # Print PSets used in ROOT-file generation
    if bPrintPSet:
        #print "*** Printing PSets for dataset \"%s\"" % ("TTToHplusBHminusB_M120_Fall11")
        #print datasets.getDataset("TTToHplusBHminusB_M120_Fall11").getParameterSet()
        psets = datasets.getSelections()
        f = open("PSets.txt", "w")
        f.write(psets)
        f.close()

    # Take care of PU weighting, luminosity, signal merging etc... of the datatasets
    print "\n*** Datasets:"
    manageDatasets(datasets)

    # Print the dataset information for sanity checks
    print "="*70
    datasets.printInfo()
    print "="*70

    # Do sanity checks before returning the datasets object
    nDatasets     = len(datasets.getAllDatasetNames())
    nDataDatasets = len(datasets.getDataDatasets())
    nMCDatasets   = len(datasets.getMCDatasets())
    if nDatasets > 0:
        return datasets
    else:
        print "%sERROR! There are zero (0) datasets. Check your settings. " % (" "*0)
        sys.exit()
Exemplo n.º 27
0
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()
Exemplo n.º 28
0
def main():
    # Create all datasets from a multicrab task
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)

    # Read integrated luminosities of data datasets from lumi.json
    datasets.loadLuminosities()

    # Include only 120 mass bin of HW and HH datasets
    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))

    # Default merging nad ordering of data and MC datasets
    # All data datasets to "Data"
    # All QCD datasets to "QCD"
    # All single top datasets to "SingleTop"
    # WW, WZ, ZZ to "Diboson"
    plots.mergeRenameReorderForDataMC(datasets)

    # Set BR(t->H) to 0.2, keep BR(H->tau) in 1
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # Merge WH and HH datasets to one (for each mass bin)
    # TTToHplusBWB_MXXX and TTToHplusBHminusB_MXXX to "TTToHplus_MXXX"
    plots.mergeWHandHH(datasets)

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    dataMCExample(datasets)
    distComparison(datasets)

    # Script execution can be paused like this, it will continue after
    # user has given some input (which must include enter)
    if drawToScreen:
        raw_input("Hit enter to continue")
Exemplo n.º 29
0
def main():
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)
#    datasets.loadLuminosities()
    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))
    datasets.updateNAllEventsToPUWeighted()
    plots.mergeRenameReorderForDataMC(datasets)
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)
    plots.mergeWHandHH(datasets)

    style = tdrstyle.TDRStyle()
    td = dataset.TreeDraw(analysis+"/tree", weight="weightPileup*weightTrigger*weightPrescale", 
                          selection="genMet_p4.Et() > 20"
#                          selection="genMet_p4.Et() > 20 && [email protected]() >= 1"
#                          selection="genMet_p4.Et() > 20 && [email protected]() >= 2"
#                          selection="genMet_p4.Et() > 20 && [email protected]() >= 3"
                          )

    kwargs = {}
    kwargs["normalizeToLumi"] = 1150

    dist=">>dist(25,0,5)"
    for q in ["Et", "X", "Y", "Phi"]:
        rawRes = plots.DataMCPlot(datasets, td.clone(varexp="met_p4.%s()/genMet_p4.%s() %s" % (q, q, dist)), **kwargs)
        type1Res = plots.DataMCPlot(datasets, td.clone(varexp="metType1_p4.%s()/genMet_p4.%s() %s" % (q, q, dist)), **kwargs)
        #type1Res = plots.DataMCPlot(datasets, td.clone(varexp="tcMet_p4.%s()/genMet_p4.%s() %s" % (q, q, dist)), normalizeToLumi=1150)

        compare(rawRes, type1Res, q, "TTJets")
def main():
#    dirEmb = "../embedding_mc_nooptmodes_140826_094514"
    dirEmb = "../embedding_mc_mtweightedfit_140822_101246"
    dirSig = "."

    for optMode in [
        "OptQCDTailKillerLoosePlus",
#        "OptQCDTailKillerMediumPlus",
#        "OptQCDTailKillerTightPlus",
#            None
        ]:
        datasetsEmb = dataset.getDatasetsFromMulticrabCfg(directory=dirEmb, dataEra=dataEra, analysisName=analysisEmb, optimizationMode=optMode)
        datasetsSig = dataset.getDatasetsFromMulticrabCfg(directory=dirSig, dataEra=dataEra, analysisName=analysisSig, optimizationMode=optMode)
        doDataset(datasetsEmb, datasetsSig, optMode)
        datasetsEmb.close()
        datasetsSig.close()
Exemplo n.º 31
0
def main():
    # Read the datasets
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)
    datasets.updateNAllEventsToPUWeighted()

    #datasets.loadLuminosities()

    plots.mergeRenameReorderForDataMC(datasets)

    # Set the signal cross sections to a given BR(t->H), BR(h->taunu)
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # Set the signal cross sections to a value from MSSM
    #    xsect.setHplusCrossSectionsToMSSM(datasets, tanbeta=20, mu=200)

    plots.mergeWHandHH(
        datasets
    )  # merging of WH and HH signals must be done after setting the cross section

    # Create counter
    eventCounter = counter.EventCounter(datasets)

    #eventCounter.normalizeMCByLuminosity()
    eventCounter.normalizeMCToLuminosity(1000)  # in pb^-1

    print "============================================================"
    print "Main counter (MC normalized by collision data luminosity)"
    print eventCounter.getMainCounterTable().format()

    triggerCounter = eventCounter.getSubCounter("Trigger")
    triggerCounter.forEachDataset(printTriggerEfficiency)
Exemplo n.º 32
0
def getMulticrabPsets(options, multicrabDir):
    '''
    def getMulticrabPsets(options, multicrabDir):
    '''

    ### Get the user-defined (or default) data-era
    myDataEra = options.dataEra

    ### Get the ROOT files for all datasets, merge datasets and reorder them
    if options.verbose:
        print "+++ VERBOSE: Obtaining datasets from multicrab directory \"%s\"" % (
            multicrabDir)
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=multicrabDir,
                                                   dataEra=myDataEra)

    ### Print PSets used in ROOT-file generation
    saveFileName = "PSet_Multicrab.txt"  # + multicrabDir.strip("../") + ".txt"
    saveFilePath = os.getcwd() + "/" + saveFileName

    ### Check that file does not already exist
    fileExists(saveFilePath, False)
    saveFile = open(saveFilePath, "w")
    print "+++ Saving PSets from Multicrab directory \"%s\" to:\n    \"%s\"" % (
        multicrabDir, saveFilePath)
    saveFile.write(datasets.getSelections())
    saveFile.close()

    if options.verbose:
        print "+++ VERBOSE: Obtained PSets from %s" % (multicrabDir)

    return saveFilePath
def main():
    datasets = dataset.getDatasetsFromMulticrabCfg(
        counters=tauAnalysisEmb + "Counters", weightedCounters=(dataEra != ""))
    if dataEra != "":
        datasets.updateNAllEventsToPUWeighted(era=dataEra)
    plots.mergeRenameReorderForDataMC(datasets)

    style = tdrstyle.TDRStyle()
    histograms.cmsTextMode = histograms.CMSMode.SIMULATION
    histograms.cmsText[histograms.CMSMode.SIMULATION] = "Simulation"
    histograms.createLegend.setDefaults(y1=0.93, y2=0.75, x1=0.52, x2=0.93)

    isolations = [
        ("Standard", "standard"),
        ("TauLike", "taulike"),
        ("ChargedHadrRel10", "chargedHadrRel10"),
        ("ChargedHadrRel15", "chargedHadrRel15"),
    ]

    for name, isolation in isolations:
        ntupleCache = dataset.NtupleCache(
            tauAnalysisEmb + "/tree",
            "EmbeddingMuonIsolationSelector",
            selectorArgs=[tauEmbedding.tauNtuple.weight[dataEra], isolation],
            cacheFileName="histogramCache-%s.root" % name,
            #maxEvents=100,
            #process=False,
        )

        for datasetName in ["TTJets"]:
            doPlots(datasets, datasetName, name, ntupleCache)
            doCounters(datasets, datasetName, name, ntupleCache)
Exemplo n.º 34
0
def getDatasets(multicrabPath, myDataEra):
    '''
    def getDatasets(multicrabPath, myDataEra):
    This module used the user-defined path to a multicrab directory to 
    get the available datasets for a given Data-Era. 
    According to the boolean dictionary in the beginning of this file
    the datasets are merged and reordered. Optionally the PSet parameters
    are also printed for a specified dataset, also selected at the beginning 
    of this file with the "pSetToPrint" string.
    '''

    ### Get the ROOT files for all datasets, merge datasets and reorder them
    print "*** Obtaining datasets from: %s" % (multicrabPath)
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=multicrabPath,
                                                   dataEra=myDataEra)
    #print "*** Available datasets: %s" % (datasets.getAllDatasetNames())

    ### Print PSets used in ROOT-file generation
    if getBool("bPrintPSet"):
        print datasets.getDataset(pSetToPrint).getParameterSet()

    ### Take care of PU weighting, luminosity, signal merging etc... of the datatasets
    manageDatasets(datasets)

    ### Print the dataset information for sanity checks
    datasets.printInfo()

    return datasets
def main():
    dirEmbs = ["."] + [os.path.join("..", d) for d in result.dirEmbs[1:]]
    dirSig = "../"+result.dirSig

    datasetsEmb = result.DatasetsMany(dirEmbs, analysisEmb+"Counters", normalizeMCByLuminosity=True)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=dirSig+"/multicrab.cfg", counters=analysisSig+"Counters")

    datasetsEmb.forEach(plots.mergeRenameReorderForDataMC)
    datasetsEmb.setLumiFromData()
    plots.mergeRenameReorderForDataMC(datasetsSig)

    datasetsEmb.remove(filter(lambda name: "HplusTB" in name, datasetsEmb.getAllDatasetNames()))

    def addSignal(datasetMgr):
        xsect.setHplusCrossSectionsToBR(datasetMgr, br_tH=0.03, br_Htaunu=1) # agreed to use 3 % as with QCD
        plots.mergeWHandHH(datasetMgr)

        ttjets2 = datasetMgr.getDataset("TTJets").deepCopy()
        ttjets2.setName("TTJets2")
        ttjets2.setCrossSection(ttjets2.getCrossSection() - datasetMgr.getDataset("TTToHplus_M120").getCrossSection())
        datasetMgr.append(ttjets2)
        datasetMgr.merge("EWKnoTT", ["WJets", "DYJetsToLL", "SingleTop", "Diboson"], keepSources=True)
        datasetMgr.merge("EWKScaled", ["EWKnoTT", "TTJets2"])
#        for mass in [80, 100]:
        for mass in [80, 90, 100, 120, 140, 150, 155, 160]:
            datasetMgr.merge("EWKSignal_M%d"%mass, ["TTToHplus_M%d"%mass, "EWKScaled"], keepSources=True)
    datasetsEmb.forEach(addSignal)

    tauEmbedding.normalize=True
    tauEmbedding.era = "Run2011A"

    doCounters(datasetsEmb)
Exemplo n.º 36
0
def main():
    datasetsEmb = result.DatasetsMany(tauPlotMany.dirEmbs, analysisEmb+"Counters", normalizeMCByLuminosity=True)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=dirSig+"/multicrab.cfg", counters=analysisSig+"Counters")

    datasetsEmb.forEach(plots.mergeRenameReorderForDataMC)
    datasetsEmb.setLumiFromData()
    plots.mergeRenameReorderForDataMC(datasetsSig)

    def mergeEWK(datasets):
        datasets.merge("EWKMC", ["WJets", "TTJets"], keepSources=True)
        #datasets.merge("EWKMC", ["WJets", "TTJets", "DYJetsToLL", "SingleTop", "Diboson"], keepSources=True)
    mergeEWK(datasetsSig)
    datasetsEmb.forEach(mergeEWK)
    plots._legendLabels["EWKMC"] = "EWK"

    style = tdrstyle.TDRStyle()
    histograms.createLegend.setDefaults(y1=0.93, y2=0.75, x1=0.52, x2=0.93)
    
    tauEmbedding.normalize = True
    tauEmbedding.era = "Run2011A"

    def dop(datasetName):
        doPlots(datasetsEmb, datasetsSig, datasetName)
#        doCounters(datasetsEmb, datasetsSig, datasetName)
        print "%s done" % datasetName
    dop("TTJets")
    dop("WJets")
    dop("DYJetsToLL")
    dop("SingleTop")
    dop("Diboson")
    dop("EWKMC")
def main():
    dirEmbs = ["."] + [os.path.join("..", d) for d in tauEmbedding.dirEmbs[1:]]
    dirSig = "../"+tauEmbedding.dirSig
    
    datasetsEmb = tauEmbedding.DatasetsMany(dirEmbs, analysisEmb+"Counters", normalizeMCByLuminosity=True)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(cfgfile=dirSig+"/multicrab.cfg", counters=analysisSig+"Counters")
    datasetsSig.updateNAllEventsToPUWeighted()

    del plots._datasetMerge["WW"]
#    del plots._datasetMerge["WZ"]
#    del plots._datasetMerge["ZZ"]

    datasetsEmb.forEach(lambda mgr: plots.mergeRenameReorderForDataMC(mgr, keepSourcesMC=True))
    datasetsEmb.setLumiFromData()
    plots.mergeRenameReorderForDataMC(datasetsSig, keepSourcesMC=True)

    def mergeEWK(datasets):
        datasets.merge("EWKMC", ["WJets", "TTJets", "DYJetsToLL", "SingleTop", "Diboson", "WW"], keepSources=True)
        #datasets.merge("EWKMC", ["WJets", "TTJets"], keepSources=True)
    mergeEWK(datasetsSig)
    datasetsEmb.forEach(mergeEWK)
    plots._legendLabels["EWKMC"] = "EWK"

    datasetsEmb.remove(filter(lambda name: "TTToHplus" in name, datasetsEmb.getAllDatasetNames()))
    datasetsEmb.remove(filter(lambda name: "HplusTB" in name, datasetsEmb.getAllDatasetNames()))

    style = tdrstyle.TDRStyle()
    ROOT.gStyle.SetEndErrorSize(5)
    histograms.createLegend.setDefaults(y1=0.93, y2=0.75, x1=0.52, x2=0.93)

    tauEmbedding.normalize=True
    tauEmbedding.era = "Run2011A"

    #datasetsEmbCorrected = tauEmbedding.DatasetsDYCorrection(datasetsEmb, datasetsSig, analysisEmb, analysisSig)
    datasetsEmbCorrected = tauEmbedding.DatasetsResidual(datasetsEmb, datasetsSig, analysisEmb, analysisSig, ["DYJetsToLL", "WW"], totalNames=["Data", "EWKMC"])

    def dop(datasetName):
        doPlots(datasetsEmb, datasetsSig, datasetName)
#        doCounters(datasetsEmb, datasetsSig, datasetName)
        print "%s done" % datasetName


    #doPlots(datasetsEmbCorrected, datasetsSig, "EWKMC", addData=True, postfix="_residual")
    doCounters(datasetsEmb, datasetsSig, "EWKMC")
    return
    dop("TTJets")
    dop("WJets")
    #dop("W3Jets")
    dop("DYJetsToLL")
    dop("SingleTop")
    dop("Diboson")
    return
    dop("WW")
    dop("WZ")
    dop("ZZ")

    #doPlots(datasetsEmb, datasetsSig, "EWKMC", doData=True, postfix="_data")
    ##doPlots(datasetsEmb, datasetsSig, "Data")

    doPlots(datasetsEmbCorrected, datasetsSig, "EWKMC", postfix="_dycorrected")
Exemplo n.º 38
0
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()
    td = dataset.TreeDraw(analysis+"/tree", weight="weightPileup*weightTrigger*weightPrescale", 
                          selection="genMet_p4.Et() > 20"
#                          selection="genMet_p4.Et() > 20 && [email protected]() >= 1"
#                          selection="genMet_p4.Et() > 20 && [email protected]() >= 2"
#                          selection="genMet_p4.Et() > 20 && [email protected]() >= 3"
                          )

    kwargs = {}
    kwargs["normalizeToLumi"] = 1150

    dist=">>dist(25,0,5)"
    for q in ["Et", "X", "Y", "Phi"]:
        rawRes = plots.DataMCPlot(datasets, td.clone(varexp="met_p4.%s()/genMet_p4.%s() %s" % (q, q, dist)), **kwargs)
        type1Res = plots.DataMCPlot(datasets, td.clone(varexp="metType1_p4.%s()/genMet_p4.%s() %s" % (q, q, dist)), **kwargs)
        #type1Res = plots.DataMCPlot(datasets, td.clone(varexp="tcMet_p4.%s()/genMet_p4.%s() %s" % (q, q, dist)), normalizeToLumi=1150)

        compare(rawRes, type1Res, q, "TTJets")
Exemplo n.º 39
0
def main():
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters,
                                                   dataEra=dataEra)
    datasets.updateNAllEventsToPUWeighted()
    datasets.loadLuminosities()

    #    datasets.getDataset("HplusTB_M180_Fall11").setCrossSection(0.363)
    #    datasets.getDataset("HplusTB_M190_Fall11").setCrossSection(0.2666)
    datasets.getDataset("HplusTB_M200_Fall11").setCrossSection(0.1915)
    #    datasets.getDataset("HplusTB_M250_Fall11").setCrossSection(0.051)
    #    datasets.getDataset("HplusTB_M300_Fall11").setCrossSection(0.0213)

    plots.mergeRenameReorderForDataMC(datasets)
    print "Int.Lumi", datasets.getDataset("Data").getLuminosity()
    #    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))
    #    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))

    style = tdrstyle.TDRStyle()

    #    datasets3 = dataset.getDatasetsFromMulticrabCfg(cfgfile="/home/rkinnune/signalAnalysis/CMSSW_4_4_4/src/HiggsAnalysis/HeavyChHiggsToTauNu/test/multicrab_120607_075512/multicrab.cfg", counters=counters)
    #    datasets3.updateNAllEventsToPUWeighted()
    #    datasets3.loadLuminosities()
    #    plots.mergeRenameReorderForDataMC(datasets3)
    #    datasets2.selectAndReorder(["TTJets_TuneZ2_Fall11","TTToHplusBWB_M120_Fall11"])
    #    datasets2.rename("TTJets_TuneZ2_Fall11","TTJets2")
    #    datasets2.rename("TTToHplusBWB_M120_Fall11","TTToHplusBWB_M120_2")
    #    datasets.extend(datasets2)

    #    plot(datasets, datasets2, datasets3)

    plot(datasets)
    printCounters(datasets)
Exemplo n.º 40
0
def main():
    parser = OptionParser(usage="Usage: %prog [options]")
    parser.add_option("--dirSig", dest="dirSig", default=None,
                      help="Path to signalAnalysisGenTau multicrab directory")

    (opts, args) = parser.parse_args()
    if opts.dirSig is None:
        parser.error("--dirSig missing")

    dirEmb = "."
    dirSig = opts.dirSig

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    #histograms.createLegend.setDefaults(y1=0.93, y2=0.75, x1=0.52, x2=0.93)
#    histograms.createLegend.moveDefaults(dx=-0.1, dh=-0.2)
#    histograms.createLegend.moveDefaults(dx=-0.15, dy=-0.01, dh=+0.05)
#    histograms.uncertaintyMode.set(histograms.uncertaintyMode.StatOnly)
    histograms.uncertaintyMode.set(histograms.uncertaintyMode.StatAndSyst)
#    histograms.createLegendRatio.moveDefaults(dh=-0.1, dx=-0.53)
#    histograms.createLegendRatio.moveDefaults(dx=-0.08)
    histograms.createLegend.setDefaults(textSize=0.04)
    histograms.createLegend.moveDefaults(dx=-0.25, dh=0.1)#, dh=-0.05) # QCD removed

    histograms.createLegendRatio.setDefaults(ncolumns=2, textSize=0.08, columnSeparation=0.3)
    histograms.createLegendRatio.moveDefaults(dx=-0.35, dh=-0.1, dw=0.25)

#    plots._legendLabels["BackgroundStatError"] = "Norm. stat. unc."
    plots._legendLabels["BackgroundStatError"] = "Sim. stat. unc" #"Norm. stat. unc."
    plots._legendLabels["BackgroundStatSystError"] = "Sim. stat.#oplussyst. unc." # "Norm. stat.#oplussyst. unc."

    plots._legendLabels["Data"] = "Embedded data"

    for optMode in [
#        "OptQCDTailKillerNoCuts",
        "OptQCDTailKillerLoosePlus",
#        "OptQCDTailKillerMediumPlus",
#        "OptQCDTailKillerTightPlus",
#            None
    ]:
        datasetsEmb = dataset.getDatasetsFromMulticrabCfg(directory=dirEmb, dataEra=dataEra, analysisName=analysisEmb, optimizationMode=optMode)
        datasetsSig = dataset.getDatasetsFromMulticrabCfg(directory=dirSig, dataEra=dataEra, analysisName=analysisSig, optimizationMode=optMode)
        doDataset(datasetsEmb, datasetsSig, optMode)
        datasetsEmb.close()
        datasetsSig.close()

        tauEmbedding.writeToFile(optMode+"_embdatasigmc", "input.txt", "Embedded: %s\nSignal analysis (GenTau): %s\n" % (os.getcwd(), dirSig))
Exemplo n.º 41
0
def embeddingPlots():
    datasets = None
    if os.path.exists("histograms.root"):
        datasets = dataset.getDatasetsFromRootFiles(
            [("Test", "histograms.root")], counters=None)
    else:
        datasets = dataset.getDatasetsFromMulticrabCfg(
            counters="countAnalyzer/weighted")
        datasets.selectAndReorder(["TTJets_TuneZ2_Summer11"])


#        datasets.selectAndReorder(["WJets_TuneZ2_Summer11"])
#        datasets.selectAndReorder(["WJets_TuneZ2_Spring11"])
#        datasets.selectAndReorder(["QCD_Pt20_MuEnriched_TuneZ2_Winter10"])

#isoAnalyses = ["EmbeddingAnalyzer"+x for x in ["RelIso05", "RelIso10", "RelIso15", "RelIso20", "RelIso25", "RelIso50", ""]]
    isoAnalyses = ["EmbeddingAnalyzer"]

    muonTau = PlotMuonTau()
    muonTauPFCand = PlotMuonPFCand()
    genTauNu = PlotGenTauNu()
    met = PlotMet()
    muonTauMetDeltaPhi = PlotMuonTauMetDeltaPhi()

    muonTauIso = PlotMuonTauIso()
    #muonTauIso.plot(datasets, isoAnalyses)
    #muonTauIso.plot(datasets, isoAnalyses, normalizeToOne=True)

    for analysis in [
            "EmbeddingAnalyzer",
            #    "tauIdEmbeddingAnalyzer",
            #    "tauPtIdEmbeddingAnalyzer"
            #    "EmbeddingAnalyzer/matched",
            #    "tauIdEmbeddingAnalyzer/matched",
            #    "tauPtIdEmbeddingAnalyzer/matched"
    ]:
        for q in ["Pt", "Eta", "Phi"]:
            muonTau.plot(datasets, analysis, q)
            #genTauNu.plot(datasets, analysis, q)
        for q in ["TrackDxy", "TrackDz"]:
            muonTauPFCand.plot(datasets, analysis, q)
        muonTauDR(datasets, analysis)
        muonTauIso2(datasets, analysis)
        #        tauGenMass(datasets, analysis)

        #        muonTauMetDeltaPhi.plot(datasets, analysis, "Met")
        for t in [
                "Met",
                #        "MetNoMuon",
                #        "GenMetTrue",
                #        "GenMetCalo",
                #        "GenMetCaloAndNonPrompt",
                #        "GenMetNuSum",
                #        "GenMetNu"
        ]:
            muonTauMetDeltaPhi.plot(datasets, analysis, t)
            for q, log in [("Et", True), ("X", True), ("Y", True),
                           ("Phi", False)]:
                met.plot(datasets, analysis, t=t, q=q, log=log)
Exemplo n.º 42
0
def main():
    # Create all datasets from a multicrab task
    datasets = dataset.getDatasetsFromMulticrabCfg(analysisName=analysis)

    # As we use weighted counters for MC normalisation, we have to
    # update the all event count to a separately defined value because
    # the analysis job uses skimmed pattuple as an input
    datasets.updateNAllEventsToPUWeighted()

    # Read integrated luminosities of data datasets from lumi.json
    datasets.loadLuminosities()

    # Include only 120 mass bin of HW and HH datasets
    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))
    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))

    # Default merging nad ordering of data and MC datasets
    # All data datasets to "Data"
    # All QCD datasets to "QCD"
    # All single top datasets to "SingleTop"
    # WW, WZ, ZZ to "Diboson"
    plots.mergeRenameReorderForDataMC(datasets)

    # Set BR(t->H) to 0.2, keep BR(H->tau) in 1
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # Merge WH and HH datasets to one (for each mass bin)
    # TTToHplusBWB_MXXX and TTToHplusBHminusB_MXXX to "TTToHplus_MXXX"
    plots.mergeWHandHH(datasets)

    # Merge EWK datasets
    datasets.merge("EWK", [
            "WJets",
            "TTJets",
            "DYJetsToLL",
            "SingleTop",
            "Diboson"
            ])

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    # Create the normalized plot of transverse mass
    # Read the histogram from the file
    #mT = plots.DataMCPlot(datasets, "transverseMass")

    # Create the histogram from the tree (and see the selections explicitly)
    td = dataset.TreeDraw("tree", weight="weightPileup*weightTrigger*weightPrescale",
                             selection="met_p4.Et() > 70 && Max$(jets_btag) > 1.7")
    mT = plots.DataMCPlot(datasets, td.clone(varexp="sqrt(2 * tau_p4.Pt() * met_p4.Et() * (1-cos(tau_p4.Phi()-met_p4.Phi())))>>dist(400, 0, 400)"))

    # Rebin before subtracting
    mT.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(20))

    # Create the data-EWK histogram and draw it
    dataEwkDiff(mT)

    # Draw the mT distribution
    transverseMass(mT)
Exemplo n.º 43
0
def main():
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)
    datasets.updateNAllEventsToPUWeighted()

    # remove data datasets
    datasets.remove(filter(lambda name: "Tau_" in name, datasets.getAllDatasetNames()))
    # remove heavy H+ datasets
    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))

    plots.mergeRenameReorderForDataMC(datasets)
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)
    plots.mergeWHandHH(datasets) # merging of WH and HH signals must be done after setting the cross section

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    # Define variables and cuts
    tauPt = "tau_p4.Pt()"; tauPtCut = tauPt+" > 40"
    tauLeadingCandPt = "tau_leadPFChargedHadrCand_p4.Pt()"; tauLeadingCandPtCut = tauLeadingCandPt+" > 20"

    met = "met_p4.Et()"; metCut = met+" > 70"

    btagMax = "Max$(jets_btag)"; btagCut = btagMax+" > 1.7"
    btagJetNum17 = "Sum$(jets_btag > 1.7"
    btag2ndMax = "MaxIf(kets_btag, jets_btag < Max$(jets_btag))"

    rtau = "tau_leadPFChargedHadrCand_p4.P()/tau_p4.P()"; rtauCut = rtau+" > 0.65"
    mt = "sqrt(2 * tau_p4.Pt() * met_p4.Et() * (1-cos(tau_p4.Phi()-met_p4.Phi())))"; mtCut = mt+" > 80"
    deltaPhi = "acos((tau_p4.Px()*met_p4.Px()+tau_p4.Py()*met_p4.Py())/tau_p4.Pt()/met_p4.Et())*57.2958"; deltaPhiCut = deltaPhi+" < 160"

    npv = "goodPrimaryVertices_n";

    td = dataset.TreeDraw(analysis+"/tree", weight="weightPileup*weightTrigger*weightPrescale")
    lumi = 1145

    def createResult(varexp, selection, weight=None, **kwargs):
        args = {"varexp": varexp, "selection": selection}
        if weight != None:
            args["weight"] = weight
        return Result(datasets, td.clone(**args), normalizeToLumi=lumi, **kwargs)

    # metRes = createResult(met+">>dist(100,0,200)", btagCut, greaterThan=True)
    # metRes.save("met", "MET (GeV)", rebin=10, logy=True, opts={"ymin": 0.01, "ymaxfactor": 10})

    # btagRes = createResult(btagMax+">>dist(80, 0, 8)", metCut, greaterThan=True)
    # btagRes.save("btag", "TCHE", rebin=5, logy=True, opts={"ymin": 0.01, "ymaxfactor": 10})

    # rtauRes = createResult(rtau+">>dist(110,0,1.1)", metCut+"&&"+btagCut, greaterThan=True)
    # rtauRes.save("rtau", "R_{#tau}", rebin=10, logy=True, opts={"ymin": 0.01, "ymaxfactor": 10})

    # mtRes = createResult(mt+">>dist(50,0,200)", metCut+"&&"+btagCut, greaterThan=True)
    # mtRes.save("mt", "M_{T}(#tau, MET) (GeV)", rebin=2, logy=True, opts={"ymin": 0.01, "ymaxfactor": 10})

    # deltaPhiRes = createResult(deltaPhi+">>dist(90,0,180)", metCut+"&&"+btagCut, lessThan=True)
    # deltaPhiRes.save("deltaPhi", "#Delta#Phi(#tau, MET) (#circ)", rebin=5, logy=True, opts={"ymin": 0.01, "ymaxfactor": 10})

    pileupRes = createResult(npv+">>dist(4,1,17)", metCut+"&&"+btagCut, weight="", doPassed=False, lessThan=True)
    pileupRes.save("goodPV", "N(good primary vertices)")
def main():

    ### Get the ROOT files for all datasets, merge datasets and reorder them
    print "*** Obtaining ROOT files from:\n    %s" % (multicrabPath)
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=multicrabPath, dataEra="Run2011A")

    printPSet(bPrintPSet, folderName="signalAnalysisRun2011A")

    print "*** Calling datasets.updateNAllEventsToPUWeighted():"
    datasets.updateNAllEventsToPUWeighted()
    print "*** Loading luminosities"
    datasets.loadLuminosities()    
    print "*** Calling plots.mergeRenameReorderForDataMC(datasets):"
    plots.mergeRenameReorderForDataMC(datasets)
    
    if mcOnly:
        datasets.remove(datasets.getDataDatasetNames())
        histograms.cmsTextMode = histograms.CMSMode.SIMULATION

    ### Merge desirable datasets
    if bMergeEwk:
        print "*** Merging EWK MC"
        datasets.merge("EWK MC", ["WJets", "TTJets", "DYJetsToLL", "SingleTop", "Diboson"])
        plots._plotStyles["EWK MC"] = styles.ttStyle  #plots._plotStyles["EWK"] = styles.getEWKStyle()
    
    ### Remove signals other than M120
    print "*** Removing all signal except M120"
    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))
    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))
    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))

    ### Setup style
    print "*** Setting up style"
    styleGenerator = styles.generator(fill=True)
    style = tdrstyle.TDRStyle()
    histograms.createLegend.moveDefaults(dx=-0.0, dy=+0.0)
    
    ### Merge signals into one histo
    print "*** Merging WH and HH signals into one histogram"
    plots.mergeWHandHH(datasets) # merging of WH and HH signals must be done after setting the cross section

    ### Print desirable information here
    print "*** Available datasets:\n    %s" % (datasets.getAllDatasetNames())
    if mcOnly:
        print "*** Integrated Luminosity:\n    %s (pb)" % (mcOnlyLumi)
    else:
        print "*** Integrated Luminosity:\n     %s (pb)" % (datasets.getDataset("Data").getLuminosity())

    ### Do all plots defined in histoDict function
    doPlots(datasets, histoDict, JetSelectionCuts, SaveExtension = "JetSelection")
    doPlots(datasets, histoDict, MtCut, SaveExtension = "Mt")
    doPlots(datasets, histoDict, MetBtagDeltaPhiCuts, SaveExtension = "MetBtagDeltaPhi")
    doPlots(datasets, histoDict, MetBtagDeltaPhiMtCuts, SaveExtension = "MetBtagDeltaPhiMt")
        
    ### Keep session alive (otherwise canvases close automatically)
    if bBatchMode == False:
        raw_input("*** Press \"any\" key to exit pyROOT: ")
Exemplo n.º 45
0
def main():
    # Create all datasets from a multicrab task
    datasets = dataset.getDatasetsFromMulticrabCfg(analysisName="test")

    # We don't have yet the lumi information handled in NtupleAnalysis, so remove data for now
    datasets.remove(datasets.getDataDatasetNames())

    datasets.getDataset("TBHp_HToTauNu_M_200_13TeV_pythia6").setCrossSection(0.336902*2*0.955592) # pb  
    datasets.getDataset("TTbar_HBWB_HToTauNu_M_160_13TeV_pythia6").setCrossSection(0.336902*2*0.955592) # pb   
    datasets.getDataset("TTJets_MSDecaysCKM_central_Tune4C_13TeV_madgraph_tauola").setCrossSection(245.8) # pb   
    datasets.getDataset("QCD_Pt_50to80_Tune4C_13TeV_pythia8").setCrossSection(8148778.0) # pb   

    # For this we don't have cross section
    datasets.remove(["DYJetsToLL_M10to50_TuneZ2star_Summer12"])
###    datasets.remove(["TBHp_HToTauNu_M_200_13TeV_pythia6"])
    datasets.remove(["QCD_Pt_50to80_TuneZ2star_13TeV_pythia6"])
    datasets.remove(["DYToTauTau_M_20_CT10_TuneZ2star_v2_powheg_tauola_Summer12"])

    # These have 0 events after skim in multicrab_TEST5, and the code crashes because of that
    datasets.remove([
        "QCD_Pt30to50_TuneZ2star_Summer12",
        "QCD_Pt50to80_TuneZ2star_Summer12",
        "QCD_Pt80to120_TuneZ2star_Summer12",
        "QCD_Pt120to170_TuneZ2star_Summer12"
        ])

    # As we use weighted counters for MC normalisation, we have to
    # update the all event count to a separately defined value because
    # the analysis job uses skimmed pattuple as an input
    datasets.updateNAllEventsToPUWeighted(era="Run2012ABCD")

    # At the moment the collision energy must be set by hand
    for dset in datasets.getMCDatasets():
        dset.setEnergy("8")

    # At the moment the cross sections must be set by hand
    xsect.setBackgroundCrossSections(datasets)

    # Default merging and ordering of data and MC datasets
    # All data datasets to "Data"
    # All QCD datasets to "QCD"
    # All single top datasets to "SingleTop"
    # WW, WZ, ZZ to "Diboson"
    plots.mergeRenameReorderForDataMC(datasets)
    datasets.rename("TTJets_MSDecaysCKM_central_Tune4C_13TeV_madgraph_tauola", "TTJets")
    datasets.rename("QCD_Pt_50to80_Tune4C_13TeV_pythia8", "QCD")

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    dataMCExample(datasets)
    MetComparison(datasets)

    # Script execution can be paused like this, it will continue after
    # user has given some input (which must include enter)
    if drawToScreen:
        raw_input("Hit enter to continue")
def main():
    # Read the datasets
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)
    datasets.loadLuminosities()

    plots.mergeRenameReorderForDataMC(datasets)

    # Remove signals other than M120
###    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))
###    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))

    # Set the signal cross sections to a given BR(t->H), BR(h->taunu)
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # Set the signal cross sections to a value from MSSM
#    xsect.setHplusCrossSectionsToMSSM(datasets, tanbeta=20, mu=200)

###    plots.mergeWHandHH(datasets) # merging of WH and HH signals must be done after setting the cross section

    style = tdrstyle.TDRStyle()

    histograms.cmsTextMode = histograms.CMSMode.SIMULATION

    eventCounter = counter.EventCounter(datasets, counters=counters)
    eventCounter.normalizeMCByCrossSection()
    mainTable = eventCounter.getMainCounterTable()

    wh = [
        "TTToHplusBWB_M80",
#        "TTToHplusBWB_M90",
        "TTToHplusBWB_M100",
        "TTToHplusBWB_M120",
        "TTToHplusBWB_M140",
        "TTToHplusBWB_M150",
#        "TTToHplusBWB_M155",
        "TTToHplusBWB_M160",
        ]
    hh = [
        "TTToHplusBHminusB_M80",
#        "TTToHplusBHminusB_M90",
        "TTToHplusBHminusB_M100",
        "TTToHplusBHminusB_M120",
        "TTToHplusBHminusB_M140",
        "TTToHplusBHminusB_M150",
#        "TTToHplusBHminusB_M155",
        "TTToHplusBHminusB_M160",
        ]
    xvalues = [80,
#               90,
               100, 120, 140, 150,
#               155,
               160]

    doPlots(mainTable, xvalues, wh, "HW", True)
    doPlots(mainTable, xvalues, wh, "HW", False)
    doPlots(mainTable, xvalues, hh, "HH", True)
    doPlots(mainTable, xvalues, hh, "HH", False)
Exemplo n.º 47
0
def main():
    dirNormal = "../multicrab_signalAnalysisGenTauSkim_140814_211711"
    dirEmb = "."

    dsetsNormal = dataset.getDatasetsFromMulticrabCfg(
        directory=dirNormal, analysisName="signalAnalysisGenuineTau")
    dsetsNormalCut = dataset.getDatasetsFromMulticrabCfg(
        directory=dirNormal, analysisName="signalAnalysisGenuineTauCaloMet70")
    dsetsEmb = dataset.getDatasetsFromMulticrabCfg(
        directory=dirEmb, analysisName="signalAnalysisMIdEffTrgEffWTauMu")
    dsetsEmbCut = dataset.getDatasetsFromMulticrabCfg(
        directory=dirEmb,
        analysisName="signalAnalysisMIdEffTrgEffWTauMuCaloMet70")

    dsetsNormal.updateNAllEventsToPUWeighted()
    dsetsNormalCut.updateNAllEventsToPUWeighted()
    dsetsEmb.updateNAllEventsToPUWeighted()
    dsetsEmbCut.updateNAllEventsToPUWeighted()

    dsetsEmb.loadLuminosities()
    dsetsEmbCut.loadLuminosities()

    plots.mergeRenameReorderForDataMC(dsetsNormal)
    plots.mergeRenameReorderForDataMC(dsetsNormalCut)
    plots.mergeRenameReorderForDataMC(dsetsEmb)
    plots.mergeRenameReorderForDataMC(dsetsEmbCut)

    # Apply TDR style
    style = tdrstyle.TDRStyle()
    histograms.cmsTextMode = histograms.CMSMode.SIMULATION_PRELIMINARY
    histograms.createLegend.setDefaults(y1=0.93, y2=0.8, x1=0.82, x2=0.93)
    histograms.uncertaintyMode.set(histograms.uncertaintyMode.StatOnly)
    histograms.createLegendRatio.moveDefaults(dx=-0.05, dh=-0.1)
    plots._legendLabels["BackgroundStatError"] = "Norm. stat. unc."

    if not os.path.exists("calometComparison"):
        os.mkdir("calometComparison")

    #doPlots(dsetsNormal.getDataset("TTJets"), dsetsEmb.getDataset("TTJets"), dsetsEmb.getDataset("Data").getLuminosity())
    doEffPlots(dsetsNormalCut.getDataset("TTJets"),
               dsetsNormal.getDataset("TTJets"),
               dsetsEmbCut.getDataset("TTJets"), dsetsEmb.getDataset("TTJets"),
               dsetsEmb.getDataset("Data").getLuminosity())
def main(opts):
    datasets = dataset.getDatasetsFromMulticrabCfg(directory=opts.mdir, dataEra=dataEra, weightedCounters=False)
#    datasets = dataset.getDatasetsFromRootFiles([("TTJets_TuneZ2_Summer11", "histograms.root")], counters=counters, dataEra=dataEra, analysisBaseName=analysis, weightedCounters=False)

    plots.mergeRenameReorderForDataMC(datasets)

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    process(datasets, "TTJets", "Before", ">= 1 genuine tau in acceptance")
def main():
    dirEmbs = ["."] + [os.path.join("..", d) for d in result.dirEmbs[1:]]
    dirSig = "../" + result.dirSig

    datasetsEmb = result.DatasetsMany(dirEmbs,
                                      analysisEmb + "Counters",
                                      normalizeMCByLuminosity=True)
    datasetsSig = dataset.getDatasetsFromMulticrabCfg(
        cfgfile=dirSig + "/multicrab.cfg", counters=analysisSig + "Counters")

    datasetsEmb.remove(
        filter(lambda name: "HplusTB" in name,
               datasetsEmb.getAllDatasetNames()))
    datasetsEmb.remove(
        filter(lambda name: "TTToHplus" in name,
               datasetsEmb.getAllDatasetNames()))

    #    del plots._datasetMerge["WW"]
    #    del plots._datasetMerge["WZ"]
    #    del plots._datasetMerge["ZZ"]

    datasetsEmb.forEach(plots.mergeRenameReorderForDataMC)
    datasetsEmb.setLumiFromData()
    plots.mergeRenameReorderForDataMC(datasetsSig)

    style = tdrstyle.TDRStyle()
    histograms.createLegend.moveDefaults(dx=-0.04)
    datasetsEmb.remove(["W3Jets"])
    datasetsEmb.remove(["QCD_Pt20_MuEnriched"])
    #plots._legendLabels["QCD_Pt20_MuEnriched"] = "QCD"
    histograms.createLegend.moveDefaults(dh=-0.05)
    #histograms.createLegend.moveDefaults(dx=-0.18, dy=0.05, dh=-0.05)

    tauEmbedding.normalize = True
    #tauEmbedding.normalize=False
    tauEmbedding.era = "Run2011A"

    def mergeEWK(datasets):
        datasets.merge(
            "EWKMC",
            ["WJets", "TTJets", "DYJetsToLL", "SingleTop", "Diboson", "WW"],
            keepSources=True)
        #datasets.merge("EWKMC", ["WJets", "TTJets"], keepSources=True)
#    mergeEWK(datasetsSig)
#    datasetsEmb.forEach(mergeEWK)

    datasetsEmbCorrected = result.DatasetsDYCorrection(datasetsEmb,
                                                       datasetsSig,
                                                       analysisEmb,
                                                       analysisSig)
    datasetsResidual = result.DatasetsResidual(datasetsEmb, datasetsSig,
                                               analysisEmb, analysisSig,
                                               ["DYJetsToLL", "WW"])

    doPlots(datasetsEmb)
Exemplo n.º 50
0
    def __init__(self, dirs, counters, normalizeMCByLuminosity=False):
        self.datasetManagers = []
        for d in dirs:
            datasets = dataset.getDatasetsFromMulticrabCfg(cfgfile=d +
                                                           "/multicrab.cfg",
                                                           counters=counters)
            datasets.loadLuminosities()
            tauEmbedding.updateAllEventsToWeighted(datasets)
            self.datasetManagers.append(datasets)

        self.normalizeMCByLuminosity = normalizeMCByLuminosity
Exemplo n.º 51
0
 def __init__(self, analyses, mergeAllMC=False):
     self.analyses = analyses
     self.datasetManagers = []
     for an in analyses:
         dm = dataset.getDatasetsFromMulticrabCfg(counters=an +
                                                  "Counters/weighted")
         dm.loadLuminosities()
         plots.mergeRenameReorderForDataMC(dm)
         if mergeAllMC:
             dm.mergeMC()
         self.datasetManagers.append(dm)
Exemplo n.º 52
0
def main():
    # Create all datasets from a multicrab task
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)

    # Read integrated luminosities of data datasets from lumi.json
    datasets.loadLuminosities()

    # Include only 120 mass bin of HW and HH datasets
    datasets.remove(filter(lambda name: "TTToHplus" in name and not "M120" in name, datasets.getAllDatasetNames()))
    datasets.remove(filter(lambda name: "HplusTB" in name, datasets.getAllDatasetNames()))

    # Default merging nad ordering of data and MC datasets
    # All data datasets to "Data"
    # All QCD datasets to "QCD"
    # All single top datasets to "SingleTop"
    # WW, WZ, ZZ to "Diboson"
    plots.mergeRenameReorderForDataMC(datasets)

    # Set BR(t->H) to 0.2, keep BR(H->tau) in 1
    xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # Merge WH and HH datasets to one (for each mass bin)
    # TTToHplusBWB_MXXX and TTToHplusBHminusB_MXXX to "TTToHplus_MXXX"
    plots.mergeWHandHH(datasets)

    # Merge EWK datasets
    datasets.merge("EWK", [
            "WJets",
            "TTJets",
            "DYJetsToLL",
            "SingleTop",
            "Diboson"
            ])

    # Apply TDR style
    style = tdrstyle.TDRStyle()

    # Create the normalized plot of transverse mass
    # Read the histogram from the file
    #mT = plots.DataMCPlot(datasets, analysis+"/transverseMass")

    # Create the histogram from the tree (and see the selections explicitly)
    td = dataset.TreeDraw(analysis+"/tree", weight="weightPileup*weightTrigger*weightPrescale",
                             selection="met_p4.Et() > 70 && Max$(jets_btag) > 1.7")
    mT = plots.DataMCPlot(datasets, td.clone(varexp="sqrt(2 * tau_p4.Pt() * met_p4.Et() * (1-cos(tau_p4.Phi()-met_p4.Phi())))>>dist(400, 0, 400)"))

    # Rebin before subtracting
    mT.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(20))

    # Create the data-EWK histogram and draw it
    dataEwkDiff(mT)

    # Draw the mT distribution
    transverseMass(mT)
Exemplo n.º 53
0
def main():
    # Create all datasets from a multicrab task
    datasets = dataset.getDatasetsFromMulticrabCfg(counters=counters)
    datasets.updateNAllEventsToPUWeighted()

    # Read integrated luminosities of data datasets from lumi.json
    datasets.loadLuminosities()

    # Default merging nad ordering of data and MC datasets
    # All data datasets to "Data"
    # All QCD datasets to "QCD"
    # All single top datasets to "SingleTop"
    # WW, WZ, ZZ to "Diboson"
    plots.mergeRenameReorderForDataMC(datasets)

    # Set the signal cross sections to a given BR(t->H), BR(h->taunu)

    #xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.2, br_Htaunu=1)
    # LandS assumes ttbar cross section  for both HW and HH
    #xsect.setHplusCrossSectionsToBR(datasets, br_tH=0.05, br_Htaunu=1)

    # LandS expects that HW and HH are normalized to top cross section

    xsect.setHplusCrossSectionsToTop(datasets)

    # Create data-MC comparison plot to get the proper normalization
    # easily
    mt = plots.DataMCPlot(datasets, analysis + "/transverseMassBeforeFakeMet")

    # Rebin to have the agreed 10 GeV binning
    mt.histoMgr.forEachHisto(lambda h: h.getRootHisto().Rebin(10))

    # Create the output ROOT file
    f = ROOT.TFile.Open(outputFile, "RECREATE")

    # Add the histograms of the wanted datasets to the tree
    for datasetName, outputName in [("Data", "data"),
                                    ("TTToHplusBWB_M100", "hw_100"),
                                    ("TTToHplusBHminusB_M100", "hh_100"),
                                    ("TTToHplusBWB_M120", "hw_120"),
                                    ("TTToHplusBHminusB_M120", "hh_120"),
                                    ("TTToHplusBWB_M160", "hw_160"),
                                    ("TTToHplusBHminusB_M160", "hh_160")]:
        th1 = mt.histoMgr.getHisto(datasetName).getRootHisto().Clone(
            "mt_" + outputName)
        th1.SetDirectory(f)
        th1.Write()

    # Write and close the file
    f.Close()

    print
    print "Wrote transverse mass histograms to %s for LandS" % outputFile