CMS 3D CMS Logo

L1TriggerDqmOffline_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # L1 Trigger DQM sequence for offline DQM
4 #
5 # used by DQM GUI: DQM/Configuration
6 #
7 #
8 #
9 # standard RawToDigi sequence and RECO sequence must be run before the L1 Trigger modules,
10 # labels from the standard sequence are used as default for the L1 Trigger DQM modules
11 #
12 # V.M. Ghete - HEPHY Vienna - 2011-01-02
13 #
14 
15 
16 #
17 # DQM L1 Trigger in offline environment
18 #
19 
21 dqmEnvL1T = DQMServices.Components.DQMEnvironment_cfi.dqmEnv.clone()
22 dqmEnvL1T.subSystemFolder = 'L1T'
23 
24 # DQM online L1 Trigger modules, with offline configuration
27 
28 
29 # DQM offline L1 Trigger versus Reco modules
30 
32 dqmEnvL1TriggerReco = DQMServices.Components.DQMEnvironment_cfi.dqmEnv.clone()
33 dqmEnvL1TriggerReco.subSystemFolder = 'L1T/L1TriggerVsReco'
34 
35 #
36 # DQM L1 Trigger Emulator in offline environment
37 # Run also the L1HwVal producers (L1 Trigger emulators)
38 #
39 
41 dqmEnvL1TEMU = DQMServices.Components.DQMEnvironment_cfi.dqmEnv.clone()
42 dqmEnvL1TEMU.subSystemFolder = 'L1TEMU'
43 
44 # DQM Offline Step 1 cfi/cff imports
51 l1TdeRCT.rctSourceData = 'gctDigis'
52 
53 # DQM Offline Step 2 cfi/cff imports
56 
57 
58 # Stage1 customization
59 l1TdeRCT.rctSourceData = 'gctDigis'
60 l1TdeRCTfromRCT.rctSourceData = 'gctDigis'
61 l1tRct.rctSource = 'gctDigis'
62 l1tRctfromRCT.rctSource = 'gctDigis'
63 l1tPUM.regionSource = cms.InputTag("gctDigis")
64 
65 l1tStage1Layer2.gctCentralJetsSource = cms.InputTag("gctDigis","cenJets")
66 l1tStage1Layer2.gctForwardJetsSource = cms.InputTag("gctDigis","forJets")
67 l1tStage1Layer2.gctTauJetsSource = cms.InputTag("gctDigis","tauJets")
68 l1tStage1Layer2.gctIsoTauJetsSource = cms.InputTag("","")
69 l1tStage1Layer2.gctEnergySumsSource = cms.InputTag("gctDigis")
70 l1tStage1Layer2.gctIsoEmSource = cms.InputTag("gctDigis","isoEm")
71 l1tStage1Layer2.gctNonIsoEmSource = cms.InputTag("gctDigis","nonIsoEm")
72 l1tStage1Layer2.stage1_layer2_ = cms.bool(False)
73 
74 dqmL1ExtraParticlesStage1.etTotalSource = 'gctDigis'
75 dqmL1ExtraParticlesStage1.nonIsolatedEmSource = 'gctDigis:nonIsoEm'
76 dqmL1ExtraParticlesStage1.etMissSource = 'gctDigis'
77 dqmL1ExtraParticlesStage1.htMissSource = 'gctDigis'
78 dqmL1ExtraParticlesStage1.forwardJetSource = 'gctDigis:forJets'
79 dqmL1ExtraParticlesStage1.centralJetSource = 'gctDigis:cenJets'
80 dqmL1ExtraParticlesStage1.tauJetSource = 'gctDigis:tauJets'
81 dqmL1ExtraParticlesStage1.isolatedEmSource = 'gctDigis:isoEm'
82 dqmL1ExtraParticlesStage1.etHadSource = 'gctDigis'
83 dqmL1ExtraParticlesStage1.hfRingEtSumsSource = 'gctDigis'
84 dqmL1ExtraParticlesStage1.hfRingBitCountsSource = 'gctDigis'
85 l1ExtraDQMStage1.stage1_layer2_ = cms.bool(False)
86 l1ExtraDQMStage1.L1ExtraIsoTauJetSource_ = cms.InputTag("fake")
87 
88 l1compareforstage1.GCTsourceData = cms.InputTag("gctDigis")
89 l1compareforstage1.GCTsourceEmul = cms.InputTag("valGctDigis")
90 l1compareforstage1.stage1_layer2_ = cms.bool(False)
91 
92 valStage1GtDigis.GctInputTag = 'gctDigis'
93 
94 
95 from Configuration.Eras.Modifier_stage1L1Trigger_cff import stage1L1Trigger
96 stage1L1Trigger.toModify(l1TdeRCT, rctSourceData = 'caloStage1Digis')
97 stage1L1Trigger.toModify(l1TdeRCTfromRCT, rctSourceData = 'rctDigis')
98 stage1L1Trigger.toModify(l1tRct, rctSource = 'caloStage1Digis')
99 stage1L1Trigger.toModify(l1tRctfromRCT, rctSource = 'rctDigis')
100 stage1L1Trigger.toModify(l1tPUM, regionSource = cms.InputTag("rctDigis"))
101 
102 stage1L1Trigger.toModify(l1tStage1Layer2, stage1_layer2_ = cms.bool(True))
103 stage1L1Trigger.toModify(l1tStage1Layer2, gctCentralJetsSource = cms.InputTag("caloStage1LegacyFormatDigis","cenJets"))
104 stage1L1Trigger.toModify(l1tStage1Layer2, gctForwardJetsSource = cms.InputTag("caloStage1LegacyFormatDigis","forJets"))
105 stage1L1Trigger.toModify(l1tStage1Layer2, gctTauJetsSource = cms.InputTag("caloStage1LegacyFormatDigis","tauJets"))
106 stage1L1Trigger.toModify(l1tStage1Layer2, gctIsoTauJetsSource = cms.InputTag("caloStage1LegacyFormatDigis","isoTauJets"))
107 stage1L1Trigger.toModify(l1tStage1Layer2, gctEnergySumsSource = cms.InputTag("caloStage1LegacyFormatDigis"))
108 stage1L1Trigger.toModify(l1tStage1Layer2, gctIsoEmSource = cms.InputTag("caloStage1LegacyFormatDigis","isoEm"))
109 stage1L1Trigger.toModify(l1tStage1Layer2, gctNonIsoEmSource = cms.InputTag("caloStage1LegacyFormatDigis","nonIsoEm"))
110 
111 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, etTotalSource = cms.InputTag("caloStage1LegacyFormatDigis") )
112 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, nonIsolatedEmSource = cms.InputTag("caloStage1LegacyFormatDigis","nonIsoEm") )
113 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, etMissSource = cms.InputTag("caloStage1LegacyFormatDigis") )
114 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, htMissSource = cms.InputTag("caloStage1LegacyFormatDigis") )
115 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, forwardJetSource = cms.InputTag("caloStage1LegacyFormatDigis","forJets") )
116 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, centralJetSource = cms.InputTag("caloStage1LegacyFormatDigis","cenJets") )
117 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, tauJetSource = cms.InputTag("caloStage1LegacyFormatDigis","tauJets") )
118 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, isoTauJetSource = cms.InputTag("caloStage1LegacyFormatDigis","isoTauJets") )
119 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, isolatedEmSource = cms.InputTag("caloStage1LegacyFormatDigis","isoEm") )
120 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, etHadSource = cms.InputTag("caloStage1LegacyFormatDigis") )
121 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, hfRingEtSumsSource = cms.InputTag("caloStage1LegacyFormatDigis") )
122 stage1L1Trigger.toModify( dqmL1ExtraParticlesStage1, hfRingBitCountsSource = cms.InputTag("caloStage1LegacyFormatDigis") )
123 stage1L1Trigger.toModify( l1ExtraDQMStage1, stage1_layer2_ = cms.bool(True))
124 stage1L1Trigger.toModify( l1ExtraDQMStage1, L1ExtraIsoTauJetSource_ = cms.InputTag("dqmL1ExtraParticlesStage1", "IsoTau"))
125 
126 stage1L1Trigger.toModify(l1compareforstage1, GCTsourceData = cms.InputTag("caloStage1LegacyFormatDigis"))
127 stage1L1Trigger.toModify(l1compareforstage1, GCTsourceEmul = cms.InputTag("valCaloStage1LegacyFormatDigis"))
128 stage1L1Trigger.toModify(l1compareforstage1, stage1_layer2_ = cms.bool(True))
129 
130 stage1L1Trigger.toModify(valStage1GtDigis, GctInputTag = 'caloStage1LegacyFormatDigis')
131 
132 #
133 # define sequences
134 #
135 
136 l1TriggerOnline = cms.Sequence(
137  l1tMonitorStage1Online
138  * dqmEnvL1T
139  )
140 
141 l1TriggerOffline = cms.Sequence(
142  l1TriggerOnline *
143  dqmEnvL1TriggerReco
144 )
145 
146 #
147 
148 l1TriggerEmulatorOnline = cms.Sequence(
149  l1Stage1HwValEmulatorMonitor
150  * dqmEnvL1TEMU
151  )
152 
153 l1TriggerEmulatorOffline = cms.Sequence(
154  l1TriggerEmulatorOnline
155 )
156 #
157 
158 # DQM Offline Step 1 sequence
159 l1TriggerDqmOffline = cms.Sequence(
160  l1TriggerOffline
161  * l1tRate_Offline
162  * l1tSync_Offline
163  * l1TriggerEmulatorOffline
164  )
165 
166 # DQM Offline Step 2 sequence
167 l1TriggerDqmOfflineClient = cms.Sequence(
168  l1tMonitorStage1Client
169  * l1EmulatorMonitorClient
170  )
171 
172 
173 #
174 # EMERGENCY removal of modules or full sequences
175 # =============
176 #
177 # un-comment the module line below to remove the module or the sequence
178 
179 #
180 # NOTE: for offline, remove the L1TRate which is reading from cms_orcoff_prod, but also requires
181 # a hard-coded lxplus path - FIXME check if one can get rid of hard-coded path
182 # remove also the corresponding client
183 #
184 # L1TSync - FIXME - same problems as L1TRate
185 
186 
187 # DQM first step
188 #
189 
190 #l1TriggerDqmOffline.remove(l1TriggerOffline)
191 #l1TriggerDqmOffline.remove(l1TriggerEmulatorOffline)
192 
193 #
194 
195 #l1TriggerOffline.remove(l1TriggerOnline)
196 
197 
198 # l1tMonitorOnline sequence, defined in DQM/L1TMonitor/python/L1TMonitor_cff.py
199 #
200 #l1TriggerOnline.remove(l1tMonitorOnline)
201 #
202 l1tMonitorStage1Online.remove(bxTiming)
203 #l1tMonitorOnline.remove(l1tDttf)
204 #l1tMonitorOnline.remove(l1tCsctf)
205 #l1tMonitorOnline.remove(l1tRpctf)
206 #l1tMonitorOnline.remove(l1tGmt)
207 #l1tMonitorOnline.remove(l1tGt)
208 #
209 #l1ExtraDqmSeq.remove(dqmGctDigis)
210 #l1ExtraDqmSeq.remove(dqmGtDigis)
211 #l1ExtraDqmSeq.remove(dqmL1ExtraParticles)
212 #l1ExtraDqmSeq.remove(l1ExtraDQM)
213 #l1tMonitorOnline.remove(l1ExtraDqmSeq)
214 #
215 #l1tMonitorOnline.remove(l1tRate)
216 #l1tMonitorOnline.remove(l1tBPTX)
217 #l1tMonitorOnline.remove(l1tRctSeq)
218 #l1tMonitorOnline.remove(l1tGctSeq)
219 
220 #
221 
222 #l1TriggerEmulatorOffline.remove(l1TriggerEmulatorOnline)
223 
224 # l1HwValEmulatorMonitor sequence, defined in DQM/L1TMonitor/python/L1TEmulatorMonitor_cff.py
225 #
226 #l1TriggerEmulatorOnline.remove(l1HwValEmulatorMonitor)
227 
228 # L1HardwareValidation producers
229 #l1HwValEmulatorMonitor.remove(L1HardwareValidation)
230 #
231 #l1HwValEmulatorMonitor.remove(l1EmulatorMonitor)
232 
233 #l1TriggerDqmOfflineClient.remove(l1tMonitorClient)
234 #l1TriggerDqmOfflineClient.remove(l1EmulatorMonitorClient)
235 
236 # l1tMonitorClient sequence, defined in DQM/L1TMonitorClient/python/L1TMonitorClient_cff.py
237 #
238 #l1tMonitorClient.remove(l1TriggerQualityTests)
239 #l1tMonitorClient.remove(l1TriggerClients)
240 
241 # l1TriggerClients sequence, part of l1tMonitorClient sequence
242 
243 #l1TriggerClients.remove(l1tGctClient)
244 #l1TriggerClients.remove(l1tDttfClient)
245 #l1TriggerClients.remove(l1tCsctfClient)
246 #l1TriggerClients.remove(l1tRpctfClient)
247 #l1TriggerClients.remove(l1tGmtClient)
248 #l1TriggerClients.remove(l1tOccupancyClient)
249 l1TriggerStage1Clients.remove(l1tTestsSummary)
250 #l1TriggerClients.remove(l1tEventInfoClient)
251 
252 # l1EmulatorMonitorClient sequence, defined in DQM/L1TMonitorClient/python/L1TEMUMonitorClient_cff.py
253 #
254 #l1EmulatorMonitorClient.remove(l1EmulatorQualityTests)
255 l1EmulatorMonitorClient.remove(l1EmulatorErrorFlagClient)
256 #l1EmulatorMonitorClient.remove(l1EmulatorEventInfoClient)
257 
258 #stage2
259 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
260 
261 #from L1Trigger.L1TGlobal.hackConditions_cff import *
262 #from L1Trigger.L1TMuon.hackConditions_cff import *
263 #from L1Trigger.L1TCalorimeter.hackConditions_cff import *
265 
266 # 2017 EMTF emulator uses payloads and forests from DB, but not yet in GT
268 
270 l1tStage2CaloLayer2OfflineDQMEmu.stage2CaloLayer2JetSource=cms.InputTag("valCaloStage2Layer2Digis")
271 l1tStage2CaloLayer2OfflineDQMEmu.stage2CaloLayer2EtSumSource=cms.InputTag("valCaloStage2Layer2Digis")
273 l1tEGammaOfflineDQMEmu.stage2CaloLayer2EGammaSource=cms.InputTag("valCaloStage2Layer2Digis")
274 
276 l1tTauOfflineDQMEmu.stage2CaloLayer2TaySource=cms.InputTag("valCaloStage2Layer2Digis")
278 
279 from DQM.L1TMonitor.L1TStage2_cff import *
281 
282 stage2UnpackPath = cms.Sequence(
283  l1tCaloLayer1Digis +
284  caloStage2Digis +
285  bmtfDigis +
286 # BMTFStage2Digis +
287  emtfStage2Digis +
288  gmtStage2Digis +
289  gtStage2Digis
290 )
291 
292 ##Stage 2 Emulator
293 
297 # L1T monitor client sequence (system clients and quality tests)
298 l1TStage2EmulatorClients = cms.Sequence(
299  l1tStage2CaloLayer2DEClient
300  # l1tStage2EmulatorEventInfoClient
301  )
302 
303 l1tStage2EmulatorMonitorClient = cms.Sequence(
304  # l1TStage2EmulatorQualityTests +
305  l1TStage2EmulatorClients
306  )
307 
308 #
309 # define sequences
310 #
311 
312 Stage2l1TriggerOnline = cms.Sequence(
313  stage2UnpackPath
314  * l1tStage2OnlineDQM
315  * dqmEnvL1T
316  )
317 # Do not include the uGT online DQM module in the offline sequence
318 # since the large 2D histograms cause crashes at the T0.
319 l1tStage2OnlineDQM.remove(l1tStage2uGt)
320 
321 
322 
323 Stage2l1TriggerOffline = cms.Sequence(
324  Stage2l1TriggerOnline *
325  dqmEnvL1TriggerReco *
326  l1tStage2CaloLayer2OfflineDQM *
327  l1tEGammaOfflineDQM *
328  l1tTauOfflineDQM
329 
330  )
331 
332 #
334 
335 Stage2l1TriggerEmulatorOnline = cms.Sequence(
336  valHcalTriggerPrimitiveDigis +
337  Stage2L1HardwareValidation +
338  l1tStage2EmulatorOnlineDQM +
339  dqmEnvL1TEMU
340  )
341 
342 Stage2l1TriggerEmulatorOffline = cms.Sequence(
343  Stage2l1TriggerEmulatorOnline +
344  l1tStage2CaloLayer2OfflineDQMEmu +
345  l1tEGammaOfflineDQMEmu +
346  l1tTauOfflineDQMEmu
347  )
348 
349 #
350 
351 # DQM Offline Step 1 sequence
352 Stage2l1TriggerDqmOffline = cms.Sequence(
353  Stage2l1TriggerOffline
354  # * l1tRate_Offline
355  # * l1tSync_Offline
356  * Stage2l1TriggerEmulatorOffline
357  * l1tMuonDQMOffline
358  )
359 
360 # DQM Offline Step 2 sequence
361 Stage2l1TriggerDqmOfflineClient = cms.Sequence(
362  l1tStage2EmulatorMonitorClient *
363  l1tStage2MonitorClient *
364  DQMHarvestL1Trigger
365  )
366 
367 
368 #replacements for stage2
369 stage2L1Trigger.toReplaceWith(l1TriggerOnline, Stage2l1TriggerOnline)
370 stage2L1Trigger.toReplaceWith(l1TriggerOffline, Stage2l1TriggerOffline)
371 stage2L1Trigger.toReplaceWith(l1TriggerEmulatorOnline, Stage2l1TriggerEmulatorOnline)
372 stage2L1Trigger.toReplaceWith(l1TriggerEmulatorOffline, Stage2l1TriggerEmulatorOffline)
373 stage2L1Trigger.toReplaceWith(l1TriggerDqmOffline, Stage2l1TriggerDqmOffline)
374 stage2L1Trigger.toReplaceWith(l1TriggerDqmOfflineClient, Stage2l1TriggerDqmOfflineClient)
375 stage2L1Trigger.toReplaceWith(l1EmulatorMonitorClient,l1tStage2EmulatorMonitorClient)
Stage 2 Emulator.