1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
|
import FWCore.ParameterSet.Config as cms
# online trigger objects monitoring
from DQM.HLTEvF.HLTObjectsMonitor_cfi import *
# monitoring of efficiencies of HLT paths and filters
from DQMOffline.Trigger.dqmHLTFiltersDQMonitor_cfi import dqmHLTFiltersDQMonitor as _dqmHLTFiltersDQMonitor
dqmHLTFiltersDQMonitor = _dqmHLTFiltersDQMonitor.clone(
folderName = 'HLT/Filters',
efficPlotNamePrefix = 'effic_',
triggerResults = 'TriggerResults::HLT',
triggerEvent = 'hltTriggerSummaryAOD::HLT',
triggerEventWithRefs = 'hltTriggerSummaryRAW::HLT'
)
# Lumi
from DQMOffline.Trigger.DQMOffline_LumiMonitoring_cff import *
# Egamma
from DQMOffline.Trigger.EgHLTOfflineSource_cff import *
from DQMOffline.Trigger.EgammaMonitoring_cff import * # tag-n-probe (egammaMonitorHLT + egmHLTDQMSourceExtra)
# Muon
from DQMOffline.Trigger.MuonOffline_Trigger_cff import *
# Tau
from DQMOffline.Trigger.HLTTauDQMOffline_cff import *
# JetMET
from DQMOffline.Trigger.JetMETHLTOfflineAnalyzer_cff import *
from DQMOffline.Trigger.JetMETPromptMonitor_cff import *
# BTV
from DQMOffline.Trigger.BTVHLTOfflineSource_cfi import *
from DQMOffline.Trigger.BTaggingMonitoring_cff import *
#BTag and Probe monitoring
from DQMOffline.Trigger.BTagAndProbeMonitor_cfi import *
from DQMOffline.Trigger.BTagAndProbeMonitoring_cff import *
# ParticleNet jet flavor tagging monitoring
from DQMOffline.Trigger.ParticleNetJetTagMonitoring_cff import *
# vertexing
from DQMOffline.Trigger.PrimaryVertexMonitoring_cff import *
# tracking
from DQMOffline.Trigger.TrackingMonitoring_cff import *
from DQMOffline.Trigger.TrackingMonitoringPA_cff import*
from DQMOffline.Trigger.TrackToTrackMonitoring_cff import *
# hcal
from DQMOffline.Trigger.HCALMonitoring_cff import *
# strip
from DQMOffline.Trigger.SiStrip_OfflineMonitoring_cff import *
# pixel
from DQMOffline.Trigger.SiPixel_OfflineMonitoring_cff import *
# phase2 tracker
from DQMOffline.Trigger.SiTrackerPhase2_OfflineMonitoring_cff import *
# B2G
from DQMOffline.Trigger.B2GMonitoring_cff import *
# BPH
from DQMOffline.Trigger.BPHMonitor_cff import *
# EXO
from DQMOffline.Trigger.ExoticaMonitoring_cff import *
# FSQ
from DQMOffline.Trigger.FSQHLTOfflineSource_cff import *
# HI
from DQMOffline.Trigger.HILowLumiHLTOfflineSource_cfi import *
# HIG
from DQMOffline.Trigger.HiggsMonitoring_cff import *
# photon jet
from DQMOffline.Trigger.HigPhotonJetHLTOfflineSource_cfi import * # ?!?!?!
#Check if perLSsaving is enabled to mask MEs vs LS
from Configuration.ProcessModifiers.dqmPerLSsaving_cff import dqmPerLSsaving
dqmPerLSsaving.toModify(higPhotonJetHLTOfflineSource, perLSsaving=True)
# SMP
from DQMOffline.Trigger.StandardModelMonitoring_cff import *
# SUS
from DQMOffline.Trigger.SusyMonitoring_cff import *
# TOP
from DQMOffline.Trigger.TopMonitoring_cff import *
# Inclusive VBF
from DQMOffline.Trigger.HLTInclusiveVBFSource_cfi import *
##hotline
#from DQMOffline.Trigger.hotlineDQM_cfi import * # ORPHAN
##eventshape
#from DQMOffline.Trigger.eventshapeDQM_cfi import * # OBSOLETE
##UCC
#from DQMOffline.Trigger.heavyionUCCDQM_cfi import * # OBSOLETE
import DQMServices.Components.DQMEnvironment_cfi
dqmEnvHLT = DQMServices.Components.DQMEnvironment_cfi.dqmEnv.clone(
subSystemFolder = 'HLT',
showHLTGlobalTag = True)
from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
dqmInfoHLTMon = DQMEDAnalyzer('DQMEventInfo',
subSystemFolder = cms.untracked.string('HLT'),
showHLTGlobalTag = cms.untracked.bool(True))
###################################################################################################
#### SEQUENCES TO BE RUN depending on the input DATAFORMAT
## on MiniAOD
## ADD here sequences/modules which rely ONLY on collections stored in the MiniAOD format
offlineHLTSourceOnMiniAOD = cms.Sequence(
)
## on AOD (w/o the need of the RECO step on-the-fly)
## ADD here sequences/modules which rely ONLY on collections stored in the AOD format
offlineHLTSourceOnAOD = cms.Sequence(
dqmEnvHLT
* dqmHLTFiltersDQMonitor
* lumiMonitorHLTsequence
* muonFullOfflineDQM
* HLTTauDQMOffline
* hltInclusiveVBFSource
* higPhotonJetHLTOfflineSource # plots are filled, but I'm not sure who is really looking at them and what you can get from them ... good candidates to be moved in offlineHLTSourceOnAODextra
# eventshapeDQMSequence * ## OBSOLETE !!!! (looks for HLT_HIQ2Top005_Centrality1030_v, HLT_HIQ2Bottom005_Centrality1030_v, etc)
# HeavyIonUCCDQMSequence * ## OBSOLETE !!!! (looks for HLT_HIUCC100_v and HLT_HIUCC020_v)
# hotlineDQMSequence * ## ORPHAN !!!!
* egammaMonitorHLT
* exoticaMonitorHLT
* susyMonitorHLT
* b2gMonitorHLT
* higgsMonitorHLT
* smpMonitorHLT
* topMonitorHLT
* btagMonitorHLT
* bphMonitorHLT
* hltObjectsMonitor # as online DQM, requested/suggested by TSG coordinators
* jetmetMonitorHLT
)
## w/ the RECO step on-the-fly (to be added to offlineHLTSourceOnAOD which should run anyhow)
offlineHLTSourceWithRECO = cms.Sequence(
dqmHLTFiltersDQMonitor
* egHLTOffDQMSource ## NEEDED in VALIDATION, not really in MONITORING
* egHLTOffDQMSource_HEP17 ## NEEDED in VALIDATION, not really in MONITORING
* jetMETHLTOfflineAnalyzer
* b2gHLTDQMSourceWithRECO ## ak8PFJetsPuppiSoftDrop collection is not available in AOD, actually it is produced by the miniAOD step
)
####################################################################################################
# offline DQM to be run on AOD (w/o the need of the RECO step on-the-fly) only in the VALIDATION of the HLT menu based on data
# it is needed in order to have the DQM code in the release, w/o the issue of crashing the tier0
# as the new modules in the sequence offlineHLTSourceOnAODextra are tested,
# these have to be migrated in the main offlineHLTSourceOnAOD sequence
offlineHLTSourceOnAODextra = cms.Sequence(
### POG
btvHLTDQMSourceExtra
* egmHLTDQMSourceExtra # empty in 10_2_0
* jmeHLTDQMSourceExtra
* muoHLTDQMSourceExtra # empty in 10_2_0
* tauHLTDQMSourceExtra # empty in 10_2_0
* trkHLTDQMSourceExtra # empty in 10_2_0
### PAG
* b2gHLTDQMSourceExtra
* bphHLTDQMSourceExtra # empty in 10_2_0
* exoHLTDQMSourceExtra
* higHLTDQMSourceExtra
* smpHLTDQMSourceExtra # empty in 10_2_0
* susHLTDQMSourceExtra
* topHLTDQMSourceExtra
* fsqHLTDQMSourceExtra # empty in 10_2_0
# * hinHLTDQMSourceExtra
)
####################################################################################################
#### SEQUENCES TO BE RUN @Tier0 ####
### Express : not really needed
### HLTMonitor : special collections allow to monitor tracks, strip and pixel clusters, b-tagging discriminator, etc --> OfflineHLTMonitoring
### Physics PDs : monitoring vs offline collection (typically, turnON)
## DQM step on Express
offlineHLTSource4ExpressPD = cms.Sequence(
)
## DQM step on HLTMonitor
## ADD here only sequences/modules which rely on HLT collections which are stored in the HLTMonitoring stream
## and are not available in the standard RAW format
offlineHLTSource4HLTMonitorPD = cms.Sequence(
dqmInfoHLTMon *
lumiMonitorHLTsequence * # lumi
sistripMonitorHLTsequence * # strip
sipixelMonitorHLTsequence * # pixel
BTVHLTOfflineSource * # BTV
bTagHLTTrackMonitoringSequence * # BTV relative track efficiencies
trackingMonitorHLT * # tracking
BTagAndProbeHLT * # BTag and Probe
trackingMonitorHLTDisplacedJet* # EXO : DisplacedJet Tracking
egmTrackingMonitorHLT * # EGM tracking
hltToOfflineTrackValidatorSequence * # Relative Online to Offline performace
vertexingMonitorHLT * # vertexing
particleNetMonitoringHLT # HIG: monitoring of HLT PNET taggers (incl. comparisons to Offline PNET)
)
_offlineHLTSource4HLTMonitorPDPh2 = cms.Sequence(
dqmInfoHLTMon *
HLTtrackerphase2DQMSource * # phase-2 IT and OT clusters
trackingMonitorHLT * # tracking
egmTrackingMonitorHLT * # EGM tracking
hltToOfflineTrackValidatorSequence * # Relative Online to Offline performace
vertexingMonitorHLT # vertexing
)
# remove Strip HLT monitoring in the phase-2 sequence
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase2_tracker.toReplaceWith(offlineHLTSource4HLTMonitorPD,_offlineHLTSource4HLTMonitorPDPh2)
# sequences run @tier0 on HLTMonitor PD
OfflineHLTMonitoring = cms.Sequence(
offlineHLTSource4HLTMonitorPD
)
# sequences run @tier0 on HLTMonitor PD w/ HI (PbPb, XeXe), pPb, ppRef
OfflineHLTMonitoringPA = cms.Sequence(
dqmInfoHLTMon *
trackingMonitorHLT *
PAtrackingMonitorHLT
)
## DQM step on physics PDs
## transient collections produced by the RECO step are allowed ;)
offlineHLTSource4physicsPD = cms.Sequence(
offlineHLTSourceOnAOD
* offlineHLTSourceWithRECO
)
## DQM step on special physics PDs (HI, FSQ and LowLumi, etc)
## transient collections produced by the RECO step are allowed ;)
offlineHLTSource4specialPhysicsPD = cms.Sequence(
offlineHLTSourceOnAOD
* offlineHLTSourceWithRECO
* fsqHLTOfflineSourceSequence
* HILowLumiHLTOfflineSourceSequence
)
## DQM step on relval
offlineHLTSource4relval = cms.Sequence(
offlineHLTSourceOnAOD
* offlineHLTSourceWithRECO
* offlineHLTSource4HLTMonitorPD ## special collections (tracking, strip, pixel, etc)
* fsqHLTOfflineSourceSequence ## FSQ
* HILowLumiHLTOfflineSourceSequence ## HI
* offlineHLTSourceOnAODextra ## EXTRA
)
####################################################################################################
# offline DQM to be run on AOD (w/o the need of the RECO step on-the-fly) in the VALIDATION of the HLT menu based on data
# it is needed in order to have the DQM code in the release, w/o the issue of crashing the tier0
# as the new modules in the sequence offlineHLTSourceOnAODextra are tested
# these have to be migrated in the main offlineHLTSourceOnAOD sequence
offlineValidationHLTSourceOnAOD = cms.Sequence(
offlineHLTSourceOnAOD
+ offlineHLTSourceOnAODextra
)
####################################################################################################
## old sequence, it should be dropped asa we are confident it is no longer used
offlineHLTSource = cms.Sequence(
offlineHLTSource4physicsPD
)
### sequence run @tier0 (called by main DQM sequences in DQMOffline/Configuration/python/DQMOffline_cff.py) on all PDs, but HLTMonitor one
triggerOfflineDQMSource = cms.Sequence(
offlineHLTSource
)
# this sequence can be used by AlCa for the validation of conditions,
# because it is like offlineHLTSource (run @tier0) + offlineHLTSourceOnAODextra (meant to validate new features)
offlineValidationHLTSource = cms.Sequence(
offlineHLTSource
+ offlineHLTSourceOnAODextra
)
|