Line Code
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
)