Skip to content

Commit

Permalink
Merge pull request #10839 from yetkinyilmaz/das_query_75X_03
Browse files Browse the repository at this point in the history
Option for DAS query in ConfigBuilder 75X
  • Loading branch information
davidlange6 committed Oct 13, 2015
2 parents cf422a9 + 194ec33 commit a9c569b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 8 deletions.
18 changes: 10 additions & 8 deletions Configuration/Applications/python/ConfigBuilder.py
Expand Up @@ -21,6 +21,7 @@ class Options:
defaultOptions.step=''
defaultOptions.pileup='NoPileUp'
defaultOptions.pileup_input = None
defaultOptions.pileup_dasoption = ''
defaultOptions.geometry = 'SimDB'
defaultOptions.geometryExtendedOptions = ['ExtendedGFlash','Extended','NoCastor']
defaultOptions.magField = ''
Expand All @@ -36,6 +37,7 @@ class Options:
defaultOptions.evt_type = ""
defaultOptions.filein = ""
defaultOptions.dasquery=""
defaultOptions.dasoption=""
defaultOptions.secondfilein = ""
defaultOptions.customisation_file = []
defaultOptions.customisation_file_unsch = []
Expand Down Expand Up @@ -122,7 +124,7 @@ def filesFromList(fileName,s=None):
print "found parent files:",sec
return (prim,sec)

def filesFromDASQuery(query,s=None):
def filesFromDASQuery(query,option="",s=None):
import os,time
import FWCore.ParameterSet.Config as cms
prim=[]
Expand All @@ -134,11 +136,11 @@ def filesFromDASQuery(query,s=None):
if count!=0:
print 'Sleeping, then retrying DAS'
time.sleep(100)
p = Popen('das_client.py --query "%s"'%(query), stdout=PIPE,shell=True)
p = Popen('das_client.py %s --query "%s"'%(option,query), stdout=PIPE,shell=True)
pipe=p.stdout.read()
tupleP = os.waitpid(p.pid, 0)
eC=tupleP[1]
count=count+1
pipe=p.stdout.read()
if eC==0:
print "DAS succeeded after",count,"attempts",eC
else:
Expand Down Expand Up @@ -383,7 +385,7 @@ def filesFromOption(self):
if entry.startswith("filelist:"):
filesFromList(entry[9:],self.process.source)
elif entry.startswith("dbs:") or entry.startswith("das:"):
filesFromDASQuery('file dataset = %s'%(entry[4:]),self.process.source)
filesFromDASQuery('file dataset = %s'%(entry[4:]),self._options.dasoption,self.process.source)
else:
self.process.source.fileNames.append(self._options.dirin+entry)
if self._options.secondfilein:
Expand All @@ -394,7 +396,7 @@ def filesFromOption(self):
if entry.startswith("filelist:"):
self.process.source.secondaryFileNames.extend((filesFromList(entry[9:]))[0])
elif entry.startswith("dbs:") or entry.startswith("das:"):
self.process.source.secondaryFileNames.extend((filesFromDASQuery('file dataset = %s'%(entry[4:])))[0])
self.process.source.secondaryFileNames.extend((filesFromDASQuery('file dataset = %s'%(entry[4:]),self._options.dasoption))[0])
else:
self.process.source.secondaryFileNames.append(self._options.dirin+entry)

Expand Down Expand Up @@ -441,7 +443,7 @@ def filesFromOption(self):

if self._options.dasquery!='':
self.process.source=cms.Source("PoolSource", fileNames = cms.untracked.vstring(),secondaryFileNames = cms.untracked.vstring())
filesFromDASQuery(self._options.dasquery,self.process.source)
filesFromDASQuery(self._options.dasquery,self._options.dasoption,self.process.source)

##drop LHEXMLStringProduct on input to save memory if appropriate
if 'GEN' in self.stepMap.keys():
Expand Down Expand Up @@ -716,7 +718,7 @@ def addStandardSequences(self):
if not "DATAMIX" in self.stepMap.keys(): # when DATAMIX is present, pileup_input refers to pre-mixed GEN-RAW
if self._options.pileup_input:
if self._options.pileup_input.startswith('dbs:') or self._options.pileup_input.startswith('das:'):
mixingDict['F']=filesFromDASQuery('file dataset = %s'%(self._options.pileup_input[4:],))[0]
mixingDict['F']=filesFromDASQuery('file dataset = %s'%(self._options.pileup_input[4:],),self._options.pileup_dasoption)[0]
else:
mixingDict['F']=self._options.pileup_input.split(',')
specialization=defineMixing(mixingDict)
Expand Down Expand Up @@ -1515,7 +1517,7 @@ def prepare_DATAMIX(self, sequence = None):
if self._options.pileup_input:
theFiles=''
if self._options.pileup_input.startswith('dbs:') or self._options.pileup_input.startswith('das:'):
theFiles=filesFromDASQuery('file dataset = %s'%(self._options.pileup_input[4:],))[0]
theFiles=filesFromDASQuery('file dataset = %s'%(self._options.pileup_input[4:],),self._options.pileup_dasoption)[0]
elif self._options.pileup_input.startswith("filelist:"):
theFiles= (filesFromList(self._options.pileup_input[9:]))[0]
else:
Expand Down
10 changes: 10 additions & 0 deletions Configuration/Applications/python/Options.py
Expand Up @@ -206,6 +206,11 @@
default=None,
dest="pileup_input")

expertSettings.add_option("--pileup_dasoption",
help="Additional option for DAS query of pile up",
default="",
dest="pileup_dasoption")

expertSettings.add_option("--datamix",
help="What datamix config to use. Default=DataOnSim.",
default=defaultOptions.datamix,
Expand Down Expand Up @@ -267,6 +272,11 @@
default='',
dest="dasquery")

expertSettings.add_option("--dasoption",
help="Additional option for DAS query",
default='',
dest="dasoption")

expertSettings.add_option("--dbsquery",
help="Deprecated. Please use dasquery option. Functions for backward compatibility",
default='',
Expand Down

0 comments on commit a9c569b

Please sign in to comment.