5 Scenario supporting proton collisions
13 from Configuration.DataProcessing.Utils
import stepALCAPRODUCER,stepSKIMPRODUCER,addMonitoring,dictIO,dqmIOSource,harvestingMode,dqmSeq,gtNameAndConnect
15 from Configuration.DataProcessing.RecoTLR
import customisePrompt,customiseExpress
20 self.
cbSc=self.__class__.__name__
24 Implement configuration building for data processing for proton
31 if 'repacked' in args:
32 if args[
'repacked'] ==
True:
33 options.isRepacked =
True
35 options.isRepacked =
False
43 Proton collision data taking prompt reco
48 if (args.has_key(
"PhysicsSkims")) :
52 options.__dict__.update(defaultOptions.__dict__)
53 options.scenario = self.
cbSc
59 for a
in args[
'outputs']:
60 if a[
'dataTier'] ==
'MINIAOD':
66 options.runUnscheduled=
True
71 options.customisation_file=args[
'customs']
77 options.step =
'RAW2DIGI,L1Reco,RECO'+self.
recoSeq+eiStep+step+PhysicsSkimStep+miniAODStep+
',DQM'+dqmStep+
',ENDJOB'
82 process = cms.Process(
'RECO')
83 cb =
ConfigBuilder(options, process = process, with_output =
True)
86 process.source = cms.Source(
"PoolSource",
87 fileNames = cms.untracked.vstring()
100 Proton collision data taking express processing
103 skims = args[
'skims']
105 pclWkflws = [x
for x
in skims
if "PromptCalibProd" in x]
106 for wfl
in pclWkflws:
112 options.__dict__.update(defaultOptions.__dict__)
113 options.scenario = self.
cbSc
116 if self.
cbSc ==
'pp':
119 options.step =
'RAW2DIGI,L1Reco,RECO'+eiStep+step+
',DQM'+dqmStep+
',ENDJOB'
122 options.filein =
'tobeoverwritten.xyz'
123 if 'inputSource' in args:
124 options.filetype = args[
'inputSource']
125 process = cms.Process(
'RECO')
127 if 'customs' in args:
128 options.customisation_file=args[
'customs']
132 cb =
ConfigBuilder(options, process = process, with_output =
True, with_input =
True)
143 _visualizationProcessing_
148 options.__dict__.update(defaultOptions.__dict__)
149 options.scenario = self.
cbSc
152 if 'preFilter' in args:
153 options.step +=
'FILTER:'+args[
'preFilter']+
','
156 if self.
cbSc ==
'pp':
159 options.step +=
'RAW2DIGI,L1Reco,RECO'+eiStep+
',ENDJOB'
164 options.timeoutOutput =
True
166 options.filein =
'tobeoverwritten.xyz'
168 if 'inputSource' in args:
169 options.filetype = args[
'inputSource']
172 options.filetype =
'DQMDAQ'
174 print "Using %s source"%options.filetype
176 process = cms.Process(
'RECO')
178 if 'customs' in args:
179 options.customisation_file=args[
'customs']
181 cb =
ConfigBuilder(options, process = process, with_output =
True, with_input =
True)
200 AlcaReco processing & skims for proton collisions
205 pclWflws = [x
for x
in skims
if "PromptCalibProd" in x]
206 skims =
filter(
lambda x: x
not in pclWflws, skims)
209 step +=
'ALCA:'+(
'+'.
join(pclWflws))
214 step +=
"ALCAOUTPUT:"+(
'+'.
join(skims))
217 options.__dict__.update(defaultOptions.__dict__)
218 options.scenario = self.
cbSc
220 options.conditions = args[
'globaltag']
if 'globaltag' in args
else 'None'
221 if args.has_key(
'globalTagConnect')
and args[
'globalTagConnect'] !=
'':
222 options.conditions +=
','+args[
'globalTagConnect']
224 options.triggerResultsProcess =
'RECO'
226 if 'customs' in args:
227 options.customisation_file=args[
'customs']
229 process = cms.Process(
'ALCA')
233 process.source = cms.Source(
235 fileNames = cms.untracked.vstring()
243 methodToCall = getattr(process,
'ALCARECOStream'+wfl)
244 methodToCall.dataset.dataTier = cms.untracked.string(
'ALCAPROMPT')
253 Proton collisions data taking DQM Harvesting
256 options = defaultOptions
257 options.scenario = self.
cbSc
258 options.step =
"HARVESTING"+
dqmSeq(args,
':dqmHarvesting')
259 options.name =
"EDMtoMEConvert"
262 process = cms.Process(
"HARVESTING")
265 if 'customs' in args:
266 options.customisation_file=args[
'customs']
269 configBuilder.prepare()
279 Proton collisions data taking AlCa Harvesting
284 skims = args[
'skims']
287 if 'alcapromptdataset' in args:
288 skims.append(
'@'+args[
'alcapromptdataset'])
290 if len(skims) == 0:
return None
291 options = defaultOptions
292 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
293 options.step =
"ALCAHARVEST:"+(
'+'.
join(skims))
294 options.name =
"ALCAHARVEST"
297 process = cms.Process(
"ALCAHARVEST")
298 process.source = cms.Source(
"PoolSource")
300 if 'customs' in args:
301 options.customisation_file=args[
'customs']
304 configBuilder.prepare()
309 process.source.processingMode = cms.untracked.string(
'RunsAndLumis')
310 process.source.fileNames = cms.untracked(cms.vstring())
311 process.maxEvents.input = -1
312 process.dqmSaver.workflow = datasetName
320 skimming method overload for the prompt skiming
323 options = defaultOptions
324 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
325 options.step =
"SKIM:"+(
'+'.
join(skims))
326 options.name =
"SKIM"
328 process = cms.Process(
"SKIM")
329 process.source = cms.Source(
"PoolSource")
331 if 'customs' in args:
332 options.customisation_file=args[
'customs']
335 configBuilder.prepare()
340 def repack(self, **args):
341 options = defaultOptions
343 options.filein='file.dat'
344 options.filetype='DAT'
345 options.scenario = self.cbSc if hasattr(self,'cbSc') else self.__class__.__name__
346 process = cms.Process('REPACK')
347 cb = ConfigBuilder(options, process = process, with_output = True,with_input=True)
349 print cb.pythonCfgCode
def visualizationProcessing
static std::string join(char **cmd)