5 Scenario supporting proton collisions
13 from Configuration.DataProcessing.Utils
import stepALCAPRODUCER,addMonitoring,dictIO,dqmIOSource,harvestingMode,dqmSeq
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
39 options.__dict__.update(defaultOptions.__dict__)
40 options.scenario = self.
cbSc
41 options.step =
'RAW2DIGI,L1Reco,RECO'+self.
recoSeq+step+
',DQM'+dqmStep+
',ENDJOB'
43 options.conditions = globalTag
45 process = cms.Process(
'RECO')
46 cb =
ConfigBuilder(options, process = process, with_output =
True)
49 process.source = cms.Source(
"PoolSource",
50 fileNames = cms.untracked.vstring()
63 Proton collision data taking express processing
69 options.__dict__.update(defaultOptions.__dict__)
70 options.scenario = self.
cbSc
71 options.step =
'RAW2DIGI,L1Reco,RECO'+step+
',DQM'+dqmStep+
',ENDJOB'
73 options.conditions = globalTag
75 process = cms.Process(
'RECO')
76 cb =
ConfigBuilder(options, process = process, with_output =
True)
79 process.source = cms.Source(
"NewEventStreamFileReader",
80 fileNames = cms.untracked.vstring()
93 AlcaReco processing & skims for proton collisions
98 if 'PromptCalibProd' in skims:
99 step =
"ALCA:PromptCalibProd"
100 skims.remove(
'PromptCalibProd')
105 step +=
"ALCAOUTPUT:"+(
'+'.
join(skims))
108 options.__dict__.update(defaultOptions.__dict__)
109 options.scenario = self.
cbSc
111 options.conditions = args[
'globaltag']
if 'globaltag' in args
else 'None'
112 options.triggerResultsProcess =
'RECO'
114 process = cms.Process(
'ALCA')
118 process.source = cms.Source(
120 fileNames = cms.untracked.vstring()
127 if 'PromptCalibProd' in step:
128 process.ALCARECOStreamPromptCalibProd.dataset.dataTier = cms.untracked.string(
'ALCAPROMPT')
137 Proton collisions data taking DQM Harvesting
140 options = defaultOptions
141 options.scenario = self.
cbSc
142 options.step =
"HARVESTING"+
dqmSeq(args,
':dqmHarvesting')
143 options.name =
"EDMtoMEConvert"
144 options.conditions = globalTag
146 process = cms.Process(
"HARVESTING")
149 configBuilder.prepare()
159 Proton collisions data taking AlCa Harvesting
162 if not 'skims' in args:
return None
163 options = defaultOptions
164 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
165 options.step =
"ALCAHARVEST:"+(
'+'.
join(args[
'skims']))
166 options.name =
"ALCAHARVEST"
167 options.conditions = globalTag
169 process = cms.Process(
"ALCAHARVEST")
170 process.source = cms.Source(
"PoolSource")
172 configBuilder.prepare()
177 process.source.processingMode = cms.untracked.string(
'RunsAndLumis')
178 process.source.fileNames = cms.untracked(cms.vstring())
179 process.maxEvents.input = -1
180 process.dqmSaver.workflow = datasetName
188 skimming method overload for the prompt skiming
191 options = defaultOptions
192 options.scenario = self.
cbSc if hasattr(self,
'cbSc')
else self.__class__.__name__
193 options.step =
"SKIM:"+(
'+'.
join(skims))
194 options.name =
"SKIM"
195 options.conditions = globalTag
196 process = cms.Process(
"SKIM")
197 process.source = cms.Source(
"PoolSource")
199 configBuilder.prepare()
204 def repack(self, **args):
205 options = defaultOptions
207 options.filein='file.dat'
208 options.filetype='DAT'
209 options.scenario = self.cbSc if hasattr(self,'cbSc') else self.__class__.__name__
210 process = cms.Process('REPACK')
211 cb = ConfigBuilder(options, process = process, with_output = True,with_input=True)
213 print cb.pythonCfgCode
static std::string join(char **cmd)