process.flashggDiPhotonSystematics + process.flashggDiPhotonMVA + process.sampleInfo + process.hltFilter + process.pho_sequence + process.allTagsAndProbes + process.pileupReweightingProducer + process.mc_sequence + process.tree_sequence) else: process.p = cms.Path(process.flashggUpdatedIdMVADiPhotons + process.flashggDiPhotonSystematics + process.flashggDiPhotonMVA + #process.sampleInfo + process.hltFilter + process.pho_sequence + process.allTagsAndProbes + process.pileupReweightingProducer + process.mc_sequence + process.tree_sequence) process.TFileService = cms.Service( "TFileService", #fileName = cms.string(myoptions['OUTPUT_FILE_NAME']), fileName=cms.string("TnP.root"), closeFileFast=cms.untracked.bool(True)) from flashgg.MetaData.JobConfig import JobConfig customize = JobConfig(crossSections=[ "$CMSSW_BASE/src/flashgg/MetaData/data/cross_sections.json" ]) customize.setDefault("maxEvents", -1) customize.setDefault("targetLumi", 1) customize(process)
from flashgg.MetaData.JobConfig import JobConfig customize = JobConfig(#metaDataSrc="diphotons", crossSections=["$CMSSW_BASE/src/flashgg/MetaData/data/cross_sections.json", "$CMSSW_BASE/src/diphotons/MetaData/data/cross_sections.json", "$CMSSW_BASE/src/diphotons/MetaData/data/cross_sections_gen_grid.json"])
def checkCrossSections(self): # checks if all cross sections (apart from data) # were specified import re from flashgg.MetaData.samples_utils import SamplesManager from flashgg.MetaData.JobConfig import JobConfig # ignore any escaping etc. kwargs = {} for part in re.split('\s+', self.options.cmdLine): key, value = part.split('=', 1) kwargs[key] = value if not kwargs.has_key('campaign'): print >> sys.stderr, "WARNING: campaign not set" # automatically get metadata locations right for both high-mass and SM Higgs try: from diphotons.MetaData.JobConfig import customize except ImportError: from flashgg.MetaData.JobConfig import customize if not kwargs.has_key("metaDataSrc"): kwargs["metaDataSrc"] = customize.metaDataSrc if not kwargs.has_key("crossSections"): kwargs["crossSections"] = customize.crossSections # TODO: the following line is duplicated from # JobConfig(..) but we can't make JobConfig.options.parseArguments() # to parse anything other than sys.argv without modifying sys.argv temporarily... campaign = kwargs.get('campaign', "") jobConfig = JobConfig(**kwargs) sm = SamplesManager( "$CMSSW_BASE/src/%s/MetaData/data/%s/datasets.json" % (jobConfig.metaDataSrc, campaign), jobConfig.crossSections, ) hasProblem = False # loop over all types of processes (data, signal, background) for dsList in self.options.processes.values(): for idsName in dsList: #if args were provided for this dataset, then it is a list... if isinstance(idsName, list): dsName = idsName[0] #... or just a string else: dsName = idsName # check if this datasets was selected if not self.isSelectedDataset(dsName): # skip this dataset continue #---------- try: name, xsec, totEvents, files, maxEvents = sm.getDatasetMetaData( jobConfig.maxEvents, dsName, jobId=-1, nJobs=jobConfig.nJobs) if xsec == None: print >> sys.stderr, "cross section for", dsName, "not found in", jobConfig.crossSections hasProblem = True except Exception, ex: if type(ex) == Exception and ( ex.message.startswith( 'No dataset matched the request:') or ex.message.startswith( 'More then one dataset matched the request:')): print >> sys.stderr, ex.message else: raise
from flashgg.MetaData.JobConfig import JobConfig customize = JobConfig( metaDataSrc="diphotons", crossSections=[ "$CMSSW_BASE/src/diphotons/MetaData/data/cross_sections.json" ])