1 import FWCore.ParameterSet.Config
as cms
5 from FWCore.ParameterSet.MassReplace
import massReplaceInputTag
as MassReplaceInputTag
6 from FWCore.ParameterSet.MassReplace
import massReplaceParameter
as MassReplaceParameter
11 if 'hltTrigReport' in process.__dict__:
12 process.hltTrigReport.HLTriggerResults = cms.InputTag(
'TriggerResults',
'',process.name_() )
20 process.options.wantSummary = cms.untracked.bool(
True)
21 process.options.numberOfThreads = cms.untracked.uint32( 4 )
22 process.options.numberOfStreams = cms.untracked.uint32( 0 )
23 process.options.sizeOfStackForThreadsInKB = cms.untracked.uint32( 10*1024 )
25 process.MessageLogger.TriggerSummaryProducerAOD=cms.untracked.PSet()
26 process.MessageLogger.L1GtTrigReport=cms.untracked.PSet()
27 process.MessageLogger.L1TGlobalSummary=cms.untracked.PSet()
28 process.MessageLogger.HLTrigReport=cms.untracked.PSet()
46 def _legacyStage1(process):
47 labels = [
'gtDigis',
'simGtDigis',
'newGtDigis',
'hltGtDigis']
49 if label
in process.__dict__:
50 process.load(
'L1Trigger.GlobalTriggerAnalyzer.l1GtTrigReport_cfi')
51 process.l1GtTrigReport.L1GtRecordInputTag = cms.InputTag( label )
52 process.L1AnalyzerEndpath = cms.EndPath( process.l1GtTrigReport )
53 process.schedule.append(process.L1AnalyzerEndpath)
56 labels = [
'gtStage2Digis',
'simGtStage2Digis',
'newGtStage2Digis',
'hltGtStage2Digis']
58 if label
in process.__dict__:
59 process.load(
'L1Trigger.L1TGlobal.L1TGlobalSummary_cfi')
60 process.L1TGlobalSummary.AlgInputTag = cms.InputTag( label )
61 process.L1TGlobalSummary.ExtInputTag = cms.InputTag( label )
62 process.L1TAnalyzerEndpath = cms.EndPath(process.L1TGlobalSummary )
63 process.schedule.append(process.L1TAnalyzerEndpath)
65 from Configuration.Eras.Modifier_stage2L1Trigger_cff
import stage2L1Trigger
66 (~stage2L1Trigger).toModify(process, _legacyStage1)
67 stage2L1Trigger.toModify(process, _stage2)
69 if hasattr(process,
'TriggerMenu'):
70 delattr(process,
'TriggerMenu')
80 if not (
'HLTAnalyzerEndpath' in process.__dict__) :
81 def _legacyStage1(process):
82 if 'hltGtDigis' in process.__dict__:
83 from HLTrigger.Configuration.HLT_Fake_cff
import fragment
84 process.hltL1GtTrigReport = fragment.hltL1GtTrigReport
85 process.hltTrigReport = fragment.hltTrigReport
86 process.HLTAnalyzerEndpath = cms.EndPath(process.hltGtDigis + process.hltL1GtTrigReport + process.hltTrigReport)
87 process.schedule.append(process.HLTAnalyzerEndpath)
90 if 'hltGtStage2ObjectMap' in process.__dict__:
91 from HLTrigger.Configuration.HLT_FULL_cff
import fragment
92 process.hltL1TGlobalSummary = fragment.hltL1TGlobalSummary
93 process.hltTrigReport = fragment.hltTrigReport
94 process.HLTAnalyzerEndpath = cms.EndPath(process.hltGtStage2Digis + process.hltL1TGlobalSummary + process.hltTrigReport)
95 process.schedule.append(process.HLTAnalyzerEndpath)
97 from Configuration.Eras.Modifier_stage2L1Trigger_cff
import stage2L1Trigger
98 (~stage2L1Trigger).toModify(process, _legacyStage1)
99 stage2L1Trigger.toModify(process, _stage2)
101 if hasattr(process,
'TriggerMenu'):
102 delattr(process,
'TriggerMenu')
104 process=
Base(process)
110 """Customisations for running HLT+RECO in the same job
111 - remove ESSources and ESProducers from Tasks (needed to run HLT+RECO tests on GPU)
112 - when Reconstruction_cff is loaded, it brings in Tasks that include
113 GPU-related ES modules with the same names as they have in HLT configs
114 - in TSG tests, these GPU-related RECO Tasks are not included in the Schedule
115 (because the "gpu" process-modifier is not used);
116 this causes the ES modules not to be executed, thus making them unavailable to HLT producers
117 - this workaround removes ES modules from Tasks, making their execution independent of the content of the Schedule;
118 with reference to https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideAboutPythonConfigFile?rev=92#Behavior_when_an_ESProducer_ESSo,
119 this workaround avoids "Case 3" by reverting to "Case 2"
120 - this workaround only affects Tasks of non-HLT steps, as the addition of ES modules to Tasks is not supported in ConfDB
121 (none of the Tasks used in the HLT step can contain ES modules in the first place, modulo customisations outside ConfDB)
123 for taskName
in process.tasks_():
124 task = process.tasks_()[taskName]
125 esModulesToRemove = set()
126 for modName
in task.moduleNames():
127 module = getattr(process, modName)
128 if isinstance(module, cms.ESSource)
or isinstance(module, cms.ESProducer):
129 esModulesToRemove.add(module)
130 for esModule
in esModulesToRemove:
131 task.remove(esModule)
137 """Customisation of GlobalTag for Online BeamSpot
138 - edits the GlobalTag ESSource to load the tags used to produce the HLT beamspot
139 - these tags are not available in the Offline GT, which is the GT presently used in HLT+RECO tests
140 - not loading these tags (i.e. not using this customisation) does not result in a runtime error,
141 but it leads to an HLT beamspot different to the one obtained when running HLT alone
143 if hasattr(process,
'GlobalTag'):
144 if not hasattr(process.GlobalTag,
'toGet'):
145 process.GlobalTag.toGet = cms.VPSet()
146 process.GlobalTag.toGet += [
148 record = cms.string(
'BeamSpotOnlineLegacyObjectsRcd'),
149 tag = cms.string(
'BeamSpotOnlineLegacy')
152 record = cms.string(
'BeamSpotOnlineHLTObjectsRcd'),
153 tag = cms.string(
'BeamSpotOnlineHLT')
162 process.source.inputCommands = cms.untracked.vstring (
164 'drop *_hltL1GtObjectMap_*_*',
165 'drop *_TriggerResults_*_*',
166 'drop *_hltTriggerSummaryAOD_*_*',
169 process=
Base(process)
176 from Configuration.Eras.Era_Run3_cff
import Run3
177 l1repack = cms.Process(
'L1REPACK', Run3)
178 l1repack.load(
'Configuration.StandardSequences.SimL1EmulatorRepack_'+sequence+
'_cff')
180 for module
in l1repack.es_sources_():
181 if not hasattr(process, module):
182 setattr(process, module, getattr(l1repack, module))
183 for module
in l1repack.es_producers_():
184 if not hasattr(process, module):
185 setattr(process, module, getattr(l1repack, module))
187 for module
in l1repack.SimL1Emulator.expandAndClone().moduleNames():
188 setattr(process, module, getattr(l1repack, module))
189 for taskName, task
in l1repack.tasks_().
items():
190 if l1repack.SimL1Emulator.contains(task):
191 setattr(process, taskName, task)
192 for sequenceName, sequence
in l1repack.sequences_().
items():
193 if l1repack.SimL1Emulator.contains(sequence):
194 setattr(process, sequenceName, sequence)
196 process.SimL1Emulator = l1repack.SimL1Emulator
198 for path
in process.paths_():
199 getattr(process,path).
insert(0,process.SimL1Emulator)
200 for path
in process.endpaths_():
201 getattr(process,path).
insert(0,process.SimL1Emulator)
205 'hgcalTriggerGeometryESProducer',
207 if hasattr(process, obj):
208 delattr(process, obj)
217 if ((xmlFile
is None)
or (xmlFile==
"")):
220 process.L1TriggerMenu= cms.ESProducer(
"L1TUtmTriggerMenuESProducer",
221 L1TriggerMenuFile= cms.string(xmlFile)
223 process.ESPreferL1TXML = cms.ESPrefer(
"L1TUtmTriggerMenuESProducer",
"L1TriggerMenu")
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
def customiseGlobalTagForOnlineBeamSpot