5 Scenario supporting proton collisions 13 from Configuration.DataProcessing.Utils
import stepALCAPRODUCER,dqmIOSource,harvestingMode,dictIO,gtNameAndConnect,addMonitoring
14 import FWCore.ParameterSet.Config
as cms
18 Scenario.__init__(self)
23 Implement configuration building for data processing for proton 29 if not 'skims' in args:
33 if not 'skims' in args:
34 args[
'skims']=self.skims
37 options.__dict__.update(defaultOptions.__dict__)
38 options.scenario =
"pp" 43 process = cms.Process(
'RECO', self.eras)
44 cb =
ConfigBuilder(options, process = process, with_output =
True)
47 process.source = cms.Source(
"PoolSource",
48 fileNames = cms.untracked.vstring()
58 AlcaReco processing & skims for proton collisions 62 pclWflws = [x
for x
in skims
if "PromptCalibProd" in x]
63 skims = [x
for x
in skims
if x
not in pclWflws]
66 step +=
'ALCA:'+(
'+'.
join(pclWflws))
71 step +=
"ALCAOUTPUT:"+(
'+'.
join(skims))
74 options.__dict__.update(defaultOptions.__dict__)
75 options.scenario =
"pp" 77 options.conditions = args[
'globaltag']
if 'globaltag' in args
else 'None' 78 if 'globalTagConnect' in args
and args[
'globalTagConnect'] !=
'':
79 options.conditions +=
','+args[
'globalTagConnect']
81 options.triggerResultsProcess =
'RECO' 83 process = cms.Process(
'ALCA', self.eras)
87 process.source = cms.Source(
89 fileNames=cms.untracked.vstring()
97 methodToCall = getattr(process,
'ALCARECOStream'+wfl)
98 methodToCall.dataset.dataTier = cms.untracked.string(
'ALCAPROMPT')
107 Proton collisions data taking DQM Harvesting 110 options = defaultOptions
111 options.scenario =
"pp" 112 options.step =
"HARVESTING:alcaHarvesting" 113 options.name =
"EDMtoMEConvert" 116 process = cms.Process(
"HARVESTING", self.eras)
119 configBuilder.prepare()
140 Proton collisions data taking AlCa Harvesting 145 skims = args[
'skims']
148 if 'alcapromptdataset' in args:
149 skims.append(
'@'+args[
'alcapromptdataset'])
151 if len(skims) == 0:
return None 152 options = defaultOptions
153 options.scenario = self.cbSc
if hasattr(self,
'cbSc')
else self.__class__.__name__
154 options.step =
"ALCAHARVEST:"+(
'+'.
join(skims))
155 options.name =
"ALCAHARVEST" 158 process = cms.Process(
"ALCAHARVEST", self.eras)
159 process.source = cms.Source(
"PoolSource")
161 if 'customs' in args:
162 options.customisation_file=args[
'customs']
165 configBuilder.prepare()
170 process.source.processingMode = cms.untracked.string(
'RunsAndLumis')
171 process.source.fileNames = cms.untracked(cms.vstring())
172 process.maxEvents.input = -1
173 process.dqmSaver.workflow = datasetName
181 Proton collision data taking express processing 186 skims = args[
'skims']
187 pclWkflws = [x
for x
in skims
if "PromptCalibProd" in x]
188 for wfl
in pclWkflws:
192 options.__dict__.update(defaultOptions.__dict__)
193 options.scenario =
"pp" 196 if 'outputs' in args:
198 outputs_Raw = [x
for x
in args[
'outputs']
if x[
'dataTier'] ==
'RAW']
199 outputs_noRaw = [x
for x
in args[
'outputs']
if x[
'dataTier'] !=
'RAW']
200 if len(outputs_Raw) == 1:
201 print 'RAW data-tier requested' 202 options.outputDefinition = outputs_noRaw.__str__()
207 options.filein =
'tobeoverwritten.xyz' 208 if 'inputSource' in args:
209 options.filetype = args[
'inputSource']
210 process = cms.Process(
'RECO', self.eras)
212 if 'customs' in args:
213 options.customisation_file=args[
'customs']
215 cb =
ConfigBuilder(options, process = process, with_output =
True, with_input =
True)
221 for output
in outputs_Raw:
223 moduleLabel = output[
'moduleLabel']
224 selectEvents = output.get(
'selectEvents',
None)
225 maxSize = output.get(
'maxSize',
None)
227 outputModule = cms.OutputModule(
229 fileName = cms.untracked.string(
"%s.root" % moduleLabel)
232 outputModule.dataset = cms.untracked.PSet(dataTier = cms.untracked.string(
"RAW"))
235 outputModule.maxSize = cms.untracked.int32(maxSize)
237 if selectEvents !=
None:
238 outputModule.SelectEvents = cms.untracked.PSet(
239 SelectEvents = cms.vstring(selectEvents)
241 outputModule.outputCommands = cms.untracked.vstring(
'drop *',
244 setattr(process, moduleLabel, outputModule)
246 setattr(process, moduleLabel+
'_step', cms.EndPath(outputModule))
247 path = getattr(process, moduleLabel+
'_step')
248 process.schedule.append(path)
def harvestingMode(process, datasetName, args, rANDl=True)
def expressProcessing(self, globalTag, args)
def gtNameAndConnect(globalTag, args)
def dqmHarvesting(self, datasetName, runNumber, globalTag, args)
def dictIO(options, args)
def skimsIfNotGiven(self, args, sl)
def promptReco(self, globalTag, args)
def addMonitoring(process)
def alcaSkim(self, skims, args)
def stepALCAPRODUCER(skims)
static std::string join(char **cmd)
def alcaHarvesting(self, globalTag, datasetName, args)