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")
Exemple #2
0
def addConfigInfo(process, options, dataVersion):
    process.configInfo = cms.EDAnalyzer("HPlusConfigInfoAnalyzer",
        dataVersion = cms.untracked.string(dataVersion.version),
        isData = cms.untracked.bool(dataVersion.isData())
    )
    if options.crossSection >= 0.:
        process.configInfo.crossSection = cms.untracked.double(options.crossSection)
        print "Dataset cross section has been set to %g pb" % options.crossSection

    codeVersion = git.getCommitId()
    if codeVersion != None:
        process.configInfo.codeVersion = cms.untracked.string(codeVersion)

    return cms.Path(process.configInfo)
Exemple #3
0
def addConfigInfo(process, options, dataVersion):
    process.configInfo = cms.EDAnalyzer(
        "HPlusConfigInfoAnalyzer",
        dataVersion=cms.untracked.string(dataVersion.version),
        isData=cms.untracked.bool(dataVersion.isData()))
    if options.crossSection >= 0.:
        process.configInfo.crossSection = cms.untracked.double(
            options.crossSection)
        print "Dataset cross section has been set to %g pb" % options.crossSection

    codeVersion = git.getCommitId()
    if codeVersion != None:
        process.configInfo.codeVersion = cms.untracked.string(codeVersion)

    return cms.Path(process.configInfo)
Exemple #4
0
def addConfigInfo(process, options, dataVersion):
    process.configInfo = cms.EDAnalyzer("HPlusConfigInfoAnalyzer",
        dataVersion = cms.untracked.string(dataVersion.version),
        isData = cms.untracked.bool(dataVersion.isData()),
        energy = cms.untracked.uint32(options.energy)
    )
    print "Dataset centre-of-mass energy has been set to %d TeV" % options.energy
    if options.crossSection >= 0.:
        process.configInfo.crossSection = cms.untracked.double(options.crossSection)
        print "Dataset cross section has been set to %g pb" % options.crossSection

    codeVersion = git.getCommitId()
    if codeVersion != None:
        process.configInfo.codeVersion = cms.untracked.string(codeVersion)

    if len(options.puWeightEra) > 0:
        process.configInfo.era = cms.untracked.string(options.puWeightEra)

    return cms.Path(process.configInfo)
Exemple #5
0
def addConfigInfo(process, options, dataVersion):
    process.configInfo = cms.EDAnalyzer(
        "HPlusConfigInfoAnalyzer",
        dataVersion=cms.untracked.string(dataVersion.version),
        isData=cms.untracked.bool(dataVersion.isData()),
        energy=cms.untracked.uint32(options.energy))
    print "Dataset centre-of-mass energy has been set to %d TeV" % options.energy
    if options.crossSection >= 0.:
        process.configInfo.crossSection = cms.untracked.double(
            options.crossSection)
        print "Dataset cross section has been set to %g pb" % options.crossSection

    codeVersion = git.getCommitId()
    if codeVersion != None:
        process.configInfo.codeVersion = cms.untracked.string(codeVersion)

    if len(options.puWeightEra) > 0:
        process.configInfo.era = cms.untracked.string(options.puWeightEra)

    return cms.Path(process.configInfo)
Exemple #6
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")
Exemple #7
0
def addConfigInfo(of, dataset):
    d = of.mkdir("configInfo")
    d.cd()

    # configinfo histogram
    configinfo = ROOT.TH1F("configinfo", "configinfo", 3, 0, 3)
    axis = configinfo.GetXaxis()

    def setValue(bin, name, value):
        axis.SetBinLabel(bin, name)
        configinfo.SetBinContent(bin, value)

    setValue(1, "control", 1)
    if dataset.isData():
        setValue(2, "luminosity", dataset.getLuminosity())
        setValue(3, "isData", 1)
    elif dataset.isMC():
        setValue(2, "crossSection", dataset.getCrossSection())
        setValue(3, "isData", 0)

    configinfo.Write()
    configinfo.Delete()

    # dataVersion
    ds = dataset
    if dataset.isData():
        ds = dataset.datasets[0]

    dataVersion = ROOT.TNamed("dataVersion", ds.dataVersion)
    dataVersion.Write()
    dataVersion.Delete()

    # codeVersion
    codeVersion = ROOT.TNamed("codeVersion", git.getCommitId())
    codeVersion.Write()
    codeVersion.Delete()

    of.cd()
def addConfigInfo(of, dataset):
    d = of.mkdir("configInfo")
    d.cd()

    # configinfo histogram
    configinfo = ROOT.TH1F("configinfo", "configinfo", 3, 0, 3)
    axis = configinfo.GetXaxis()

    def setValue(bin, name, value):
        axis.SetBinLabel(bin, name)
        configinfo.SetBinContent(bin, value)

    setValue(1, "control", 1)
    if dataset.isData():
        setValue(2, "luminosity", dataset.getLuminosity())
        setValue(3, "isData", 1)
    elif dataset.isMC():
        setValue(2, "crossSection", dataset.getCrossSection())
        setValue(3, "isData", 0)

    configinfo.Write()
    configinfo.Delete()

    # dataVersion
    ds = dataset
    if dataset.isData():
        ds = dataset.datasets[0]

    dataVersion = ROOT.TNamed("dataVersion", ds.dataVersion)
    dataVersion.Write()
    dataVersion.Delete()

    # codeVersion
    codeVersion = ROOT.TNamed("codeVersion", git.getCommitId())
    codeVersion.Write()
    codeVersion.Delete()

    of.cd()
                    tmp = e
            eras = [tmp]

    # Create pseudo multicrab directory

    dirname = "embedding"
    if opts.outputName != None:
        dirname += opts.outputName
    if datasetCreatorMC is not None:
        dirname += "_mc"
    if opts.midfix is not None:
        dirname += "_" + opts.midfix
    taskDir = multicrab.createTaskDir(dirname)

    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()
    # A bit of a kludgy way to indicate for datacard generator that this directory is from embedding (this can be obsolete way)
    f = open(os.path.join(taskDir, "multicrab.cfg"), "w")
    f.write("[Data]\n")
    f.write("dummy = embedded\n\n")
    residualPrefix = ""
    if opts.residual is not None:
        residualPrefix = "Residual_"
    if datasetCreatorMC is not None:
                    tmp = e
            eras = [tmp]

    # Create pseudo multicrab directory
    
    dirname = "embedding"
    if opts.outputName != None:
        dirname += opts.outputName
    if datasetCreatorMC is not None:
        dirname += "_mc"
    if opts.midfix is not None:
        dirname += "_"+opts.midfix
    taskDir = multicrab.createTaskDir(dirname)

    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()
    # A bit of a kludgy way to indicate for datacard generator that this directory is from embedding (this can be obsolete way)
    f = open(os.path.join(taskDir, "multicrab.cfg"), "w")
    f.write("[Data]\n")
    f.write("dummy = embedded\n\n")
    residualPrefix = ""
    if opts.residual is not None:
        residualPrefix = "Residual_"
    if datasetCreatorMC is not None:
def main():

    if len(sys.argv) == 1:
        usage()

    if not QCDInvertedDir(sys.argv[1:]):
        print "No QCD inverted dir recognized from input",sys.argv[1:]
        usage()

    dirQCDInv = sys.argv[1]
    dirs = []
    dirs.append(dirQCDInv)

    print "QCDInverted multicrab directory",dirQCDInv
    print 

                                        
    taskDir = multicrab.createTaskDir("QCDInverted")

    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("Original directory:\n%s\n\n" % "\n".join(dirQCDInv))
    f.write("\nQCDInverted analysis: %s\n" % analysis)
    f.close()
    f = open(os.path.join(taskDir, "multicrab.cfg"), "w")
    f.write("[Data]\n")
    f.write("CMSSW.pset = signalAnalysisInvertedTau_cfg.py\n")
    f.close()

        
    creator = dataset.readFromMulticrabCfg(directory=dirQCDInv)
    optModes = []#creator.getOptimizationModes()
    optModes.append("")
    dataEras = creator.getDataEras()
    dataEras = []
#    dataEras.append("Run2011A")
#    dataEras.append("Run2011AB")
    dataEras.append("Run2011B")
    print "optModes",optModes
    print "dataEras",dataEras

    directory = os.path.join(taskDir, "Data", "res")
    os.makedirs(directory)

    fOUT = ROOT.TFile.Open(os.path.join(directory, "histograms-Data.root"), "RECREATE")

    lumiSaved = False    
    for optMode in optModes:
	for dataEra in dataEras:

            datasetsQCDInv = creator.createDatasetManager(dataEra=dataEra, searchMode=searchMode, analysisName=analysis, optimizationMode=optMode)
            datasetsQCDInv.loadLuminosities()
            datasetsQCDInv.updateNAllEventsToPUWeighted()

            plots.mergeRenameReorderForDataMC(datasetsQCDInv)
            
            datasetsQCDInv.mergeData()
            datasetsQCDInv.merge("EWK", ["WJets", "DYJetsToLL", "SingleTop", "Diboson","TTJets"], keepSources=True)
            
            if not lumiSaved:
                # Save luminosity
                data = {"Data": datasetsQCDInv.getDataset("Data").getLuminosity()}
                f = open(os.path.join(taskDir, "lumi.json"), "w")
                json.dump(data, f, indent=2)
                f.close()
		lumiSaved = True
    
            anadir = fOUT.mkdir(analysis+searchMode+dataEra+optMode)

            anadir.cd()
            integrals = []
            for massPlot in massPlots:
                print "Processing",massPlot
                massPlotDir = anadir.mkdir(massPlot)
                anadir.cd(massPlot)
                integral = write(fOUT,datasetsQCDInv,[massPlot])
                integrals.append(integral[0])

  	    for controlPlot in controlPlots:
                print "Processing",controlPlot
                controlPlotDir = anadir.mkdir(controlPlot)
                anadir.cd(controlPlot)
                controlPlotNames = datasetsQCDInv.getDataset("Data").getDirectoryContent(controlPlot)
                controlPlotNamesWithPaths = []
                for controlPlotName in controlPlotNames:
                    controlPlotNamesWithPaths.append(os.path.join(controlPlot,controlPlotName))
                write(fOUT,datasetsQCDInv,controlPlotNamesWithPaths)
                anadir.cd()

    	    counterdir = anadir.mkdir("counters")
            anadir.cd("counters")
            counter = ROOT.TH1D("counter","counter",len(integrals),0,len(integrals))
            for i,integral in enumerate(integrals):
                binLabel = "integral_"+massPlots[i]
                counter.SetBinContent(i+1,integral)
                counter.GetXaxis().SetBinLabel(i+1,binLabel)
            counter.Write()
            weighteddir = counterdir.mkdir("weighted")
            weighteddir.cd()
            counter.Write()

    addConfigInfo(fOUT, datasetsQCDInv.getDataset("Data"))
    
    fOUT.Close()

    print "Created multicrab-like dir for LandS:",taskDir