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 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)
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)
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)
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)
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 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