5 Scenario supporting proton collisions 13 from Configuration.DataProcessing.Utils
import stepALCAPRODUCER,stepSKIMPRODUCER,addMonitoring,dictIO,dqmIOSource,harvestingMode,dqmSeq,gtNameAndConnect
14 import FWCore.ParameterSet.Config
as cms
15 from Configuration.DataProcessing.RecoTLR
import customisePrompt,customiseExpress
19 Scenario.__init__(self)
21 self.
cbSc=self.__class__.__name__
28 Implement configuration building for data processing for proton 35 if 'repacked' in args:
36 if args[
'repacked'] ==
True:
37 options.isRepacked =
True 39 options.isRepacked =
False 47 Proton collision data taking prompt reco 52 if (
"PhysicsSkims" in args) :
56 options.__dict__.update(defaultOptions.__dict__)
57 options.scenario = self.
cbSc 63 for a
in args[
'outputs']:
64 if a[
'dataTier'] ==
'MINIAOD':
70 options.runUnscheduled=
True 75 options.customisation_file=args[
'customs']
81 options.step =
'RAW2DIGI,L1Reco,RECO'+self.
recoSeq+eiStep+step+PhysicsSkimStep+miniAODStep+
',DQM'+dqmStep+
',ENDJOB' 87 process = cms.Process(
'RECO', cms.ModifierChain(self.eras, self.
promptModifiers) )
88 cb =
ConfigBuilder(options, process = process, with_output =
True)
91 process.source = cms.Source(
"PoolSource",
92 fileNames = cms.untracked.vstring()
105 Proton collision data taking express processing 108 skims = args[
'skims']
110 pclWkflws = [x
for x
in skims
if "PromptCalibProd" in x]
111 for wfl
in pclWkflws:
117 options.__dict__.update(defaultOptions.__dict__)
118 options.scenario = self.
cbSc 121 if self.
cbSc ==
'pp':
124 options.step =
'RAW2DIGI,L1Reco,RECO'+eiStep+step+
',DQM'+dqmStep+
',ENDJOB' 129 options.filein =
'tobeoverwritten.xyz' 130 if 'inputSource' in args:
131 options.filetype = args[
'inputSource']
132 process = cms.Process(
'RECO', cms.ModifierChain(self.eras, self.
expressModifiers) )
134 if 'customs' in args:
135 options.customisation_file=args[
'customs']
139 cb =
ConfigBuilder(options, process = process, with_output =
True, with_input =
True)
150 _visualizationProcessing_ 155 options.__dict__.update(defaultOptions.__dict__)
156 options.scenario = self.
cbSc 159 if 'preFilter' in args:
160 options.step +=
'FILTER:'+args[
'preFilter']+
',' 163 if self.
cbSc ==
'pp':
166 options.step +=
'RAW2DIGI,L1Reco,RECO'+eiStep+
',ENDJOB' 171 options.timeoutOutput =
True 173 options.filein =
'tobeoverwritten.xyz' 175 if 'inputSource' in args:
176 options.filetype = args[
'inputSource']
179 options.filetype =
'DQMDAQ' 181 print "Using %s source"%options.filetype
183 process = cms.Process(
'RECO', cms.ModifierChain(self.eras, self.
visModifiers) )
185 if 'customs' in args:
186 options.customisation_file=args[
'customs']
190 cb =
ConfigBuilder(options, process = process, with_output =
True, with_input =
True)
209 AlcaReco processing & skims for proton collisions 214 pclWflws = [x
for x
in skims
if "PromptCalibProd" in x]
215 skims =
filter(
lambda x: x
not in pclWflws, skims)
218 step +=
'ALCA:'+(
'+'.
join(pclWflws))
223 step +=
"ALCAOUTPUT:"+(
'+'.
join(skims))
226 options.__dict__.update(defaultOptions.__dict__)
227 options.scenario = self.
cbSc 229 options.conditions = args[
'globaltag']
if 'globaltag' in args
else 'None' 230 if 'globalTagConnect' in args
and args[
'globalTagConnect'] !=
'':
231 options.conditions +=
','+args[
'globalTagConnect']
233 options.triggerResultsProcess =
'RECO' 235 if 'customs' in args:
236 options.customisation_file=args[
'customs']
238 process = cms.Process(
'ALCA', self.eras)
242 process.source = cms.Source(
244 fileNames = cms.untracked.vstring()
252 methodToCall = getattr(process,
'ALCARECOStream'+wfl)
253 methodToCall.dataset.dataTier = cms.untracked.string(
'ALCAPROMPT')
262 Proton collisions data taking DQM Harvesting 265 options = defaultOptions
266 options.scenario = self.
cbSc 267 options.step =
"HARVESTING"+
dqmSeq(args,
':dqmHarvesting')
268 options.name =
"EDMtoMEConvert" 271 process = cms.Process(
"HARVESTING", self.eras)
274 if 'customs' in args:
275 options.customisation_file=args[
'customs']
278 configBuilder.prepare()
288 Proton collisions data taking AlCa Harvesting 293 skims = args[
'skims']
296 if 'alcapromptdataset' in args:
297 skims.append(
'@'+args[
'alcapromptdataset'])
299 if len(skims) == 0:
return None 300 options = defaultOptions
301 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
302 options.step =
"ALCAHARVEST:"+(
'+'.
join(skims))
303 options.name =
"ALCAHARVEST" 306 process = cms.Process(
"ALCAHARVEST", self.eras)
307 process.source = cms.Source(
"PoolSource")
309 if 'customs' in args:
310 options.customisation_file=args[
'customs']
313 configBuilder.prepare()
318 process.source.processingMode = cms.untracked.string(
'RunsAndLumis')
319 process.source.fileNames = cms.untracked(cms.vstring())
320 process.maxEvents.input = -1
321 process.dqmSaver.workflow = datasetName
329 skimming method overload for the prompt skiming 332 options = defaultOptions
333 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
334 options.step =
"SKIM:"+(
'+'.
join(skims))
335 options.name =
"SKIM" 337 process = cms.Process(
"SKIM", self.eras)
338 process.source = cms.Source(
"PoolSource")
340 if 'customs' in args:
341 options.customisation_file=args[
'customs']
344 configBuilder.prepare()
349 def repack(self, **args): 350 options = defaultOptions 352 options.filein='file.dat' 353 options.filetype='DAT' 354 options.scenario = self.cbSc if hasattr(self,'cbSc') else self.__class__.__name__ 355 process = cms.Process('REPACK', self.eras) 356 cb = ConfigBuilder(options, process = process, with_output = True,with_input=True) 358 print cb.pythonCfgCode def stepSKIMPRODUCER(PhysicsSkims)
def harvestingMode(process, datasetName, args, rANDl=True)
def skimming(self, skims, globalTag, options)
def dqmSeq(args, default)
def gtNameAndConnect(globalTag, args)
def expressProcessing(self, globalTag, args)
def visualizationProcessing(self, globalTag, args)
def alcaSkim(self, skims, args)
def dictIO(options, args)
def alcaHarvesting(self, globalTag, datasetName, args)
def addMonitoring(process)
def stepALCAPRODUCER(skims)
def promptReco(self, globalTag, args)
def dqmHarvesting(self, datasetName, runNumber, globalTag, args)
static std::string join(char **cmd)
def _checkRepackedFlag(self, options, args)