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
20 self.
cbSc=self.__class__.__name__
24 Implement configuration building for data processing for proton
33 Proton collision data taking prompt reco
38 if (args.has_key(
"PhysicsSkims")) :
42 options.__dict__.update(defaultOptions.__dict__)
43 options.scenario = self.
cbSc
49 for a
in args[
'outputs']:
50 if a[
'dataTier'] ==
'MINIAOD':
56 options.runUnscheduled=
True
60 options.customisation_file=args[
'customs']
66 options.step =
'RAW2DIGI,L1Reco,RECO'+self.
recoSeq+eiStep+step+PhysicsSkimStep+miniAODStep+
',DQM'+dqmStep+
',ENDJOB'
72 process = cms.Process(
'RECO')
73 cb =
ConfigBuilder(options, process = process, with_output =
True)
76 process.source = cms.Source(
"PoolSource",
77 fileNames = cms.untracked.vstring()
90 Proton collision data taking express processing
95 pclWkflws = [x
for x
in skims
if "PromptCalibProd" in x]
102 options.__dict__.update(defaultOptions.__dict__)
103 options.scenario = self.
cbSc
106 if self.
cbSc ==
'pp':
109 options.step =
'RAW2DIGI,L1Reco,RECO'+eiStep+step+
',DQM'+dqmStep+
',ENDJOB'
112 options.filein =
'tobeoverwritten.xyz'
113 if 'inputSource' in args:
114 options.filetype = args[
'inputSource']
115 process = cms.Process(
'RECO')
117 if 'customs' in args:
118 options.customisation_file=args[
'customs']
120 cb =
ConfigBuilder(options, process = process, with_output =
True, with_input =
True)
131 _visualizationProcessing_
136 options.__dict__.update(defaultOptions.__dict__)
137 options.scenario = self.
cbSc
140 if 'preFilter' in args:
141 options.step +=
'FILTER:'+args[
'preFilter']+
','
144 if self.
cbSc ==
'pp':
147 options.step +=
'RAW2DIGI,L1Reco,RECO'+eiStep+
',ENDJOB'
152 options.timeoutOutput =
True
154 options.filein =
'tobeoverwritten.xyz'
156 if 'inputSource' in args:
157 options.filetype = args[
'inputSource']
160 options.filetype =
'DQMDAQ'
162 print "Using %s source"%options.filetype
164 process = cms.Process(
'RECO')
166 if 'customs' in args:
167 options.customisation_file=args[
'customs']
169 cb =
ConfigBuilder(options, process = process, with_output =
True, with_input =
True)
188 AlcaReco processing & skims for proton collisions
193 pclWflws = [x
for x
in skims
if "PromptCalibProd" in x]
194 skims =
filter(
lambda x: x
not in pclWflws, skims)
197 step +=
'ALCA:'+(
'+'.
join(pclWflws))
202 step +=
"ALCAOUTPUT:"+(
'+'.
join(skims))
205 options.__dict__.update(defaultOptions.__dict__)
206 options.scenario = self.
cbSc
208 options.conditions = args[
'globaltag']
if 'globaltag' in args
else 'None'
209 if args.has_key(
'globalTagConnect')
and args[
'globalTagConnect'] !=
'':
210 options.conditions +=
','+args[
'globalTagConnect']
212 options.triggerResultsProcess =
'RECO'
214 if 'customs' in args:
215 options.customisation_file=args[
'customs']
217 process = cms.Process(
'ALCA')
221 process.source = cms.Source(
223 fileNames = cms.untracked.vstring()
231 methodToCall = getattr(process,
'ALCARECOStream'+wfl)
232 methodToCall.dataset.dataTier = cms.untracked.string(
'ALCAPROMPT')
241 Proton collisions data taking DQM Harvesting
244 options = defaultOptions
245 options.scenario = self.
cbSc
246 options.step =
"HARVESTING"+
dqmSeq(args,
':dqmHarvesting')
247 options.name =
"EDMtoMEConvert"
250 process = cms.Process(
"HARVESTING")
253 if 'customs' in args:
254 options.customisation_file=args[
'customs']
257 configBuilder.prepare()
267 Proton collisions data taking AlCa Harvesting
272 skims = args[
'skims']
275 if 'alcapromptdataset' in args:
276 skims.append(
'@'+args[
'alcapromptdataset'])
278 if len(skims) == 0:
return None
279 options = defaultOptions
280 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
281 options.step =
"ALCAHARVEST:"+(
'+'.
join(skims))
282 options.name =
"ALCAHARVEST"
285 process = cms.Process(
"ALCAHARVEST")
286 process.source = cms.Source(
"PoolSource")
288 if 'customs' in args:
289 options.customisation_file=args[
'customs']
292 configBuilder.prepare()
297 process.source.processingMode = cms.untracked.string(
'RunsAndLumis')
298 process.source.fileNames = cms.untracked(cms.vstring())
299 process.maxEvents.input = -1
300 process.dqmSaver.workflow = datasetName
308 skimming method overload for the prompt skiming
311 options = defaultOptions
312 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
313 options.step =
"SKIM:"+(
'+'.
join(skims))
314 options.name =
"SKIM"
316 process = cms.Process(
"SKIM")
317 process.source = cms.Source(
"PoolSource")
319 if 'customs' in args:
320 options.customisation_file=args[
'customs']
323 configBuilder.prepare()
328 def repack(self, **args):
329 options = defaultOptions
331 options.filein='file.dat'
332 options.filetype='DAT'
333 options.scenario = self.cbSc if hasattr(self,'cbSc') else self.__class__.__name__
334 process = cms.Process('REPACK')
335 cb = ConfigBuilder(options, process = process, with_output = True,with_input=True)
337 print cb.pythonCfgCode
def visualizationProcessing
static std::string join(char **cmd)