CMS 3D CMS Logo

LepHTMonitor_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
3 from copy import deepcopy
4 
5 
6 
7 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
8 DQMOffline_Ele15_HT600 = DQMEDAnalyzer('LepHTMonitor',
9  electronCollection = cms.InputTag('gedGsfElectrons'),
10  electronVID = cms.InputTag("egmGsfElectronIDsForDQM:cutBasedElectronID-Summer16-80X-V1-medium"),
11  muonCollection = cms.InputTag(''),
12  muonIDlevel = cms.untracked.int32(2),
13  pfMetCollection = cms.InputTag('pfMet'),
14  pfJetCollection = cms.InputTag('ak4PFJets'),
15  jetTagCollection = cms.InputTag(''),
16 
17  vertexCollection = cms.InputTag('offlinePrimaryVertices'),
18  conversionCollection = cms.InputTag('conversions'),
19  beamSpot = cms.InputTag('offlineBeamSpot'),
20 
21  folderName = cms.string('HLT_Ele15_IsoVVVL_PFHT600'),
22  requireValidHLTPaths = cms.bool(True),
23 
24  jetPtCut = cms.untracked.double(30.0),
25  jetEtaCut = cms.untracked.double(2.5),
26  metCut = cms.untracked.double(-1.0),
27  htCut = cms.untracked.double(-1.0),
28  nels = cms.untracked.double(1),
29  nmus = cms.untracked.double(0),
30  leptonPtPlateau = cms.untracked.double(30.0), #defines plateau region for eta, phi distributions
31  leptonCountingThreshold = cms.untracked.double(10.0), # min lepton pT for lepton counting
32  lepIsoCut = cms.untracked.double(0.1), # max lepton reliso
33  lepEtaCut = cms.untracked.double(2.5), # max abs(eta)
34  lep_d0_cut_b = cms.untracked.double(0.0118), #barrel
35  lep_dz_cut_b = cms.untracked.double(0.373),
36  lep_d0_cut_e = cms.untracked.double(0.0739), #endcap
37  lep_dz_cut_e = cms.untracked.double(0.602),
38 
39  ptbins = cms.vdouble(0,5,10,20,30,40,50,75,100,125,160,200,250),
40  htbins = cms.vdouble(0,50,100,150,200,250,300,350,400,450,500,600,750,1000,1500,2000),
41  nbins_eta = cms.untracked.int32(10),
42  nbins_phi = cms.untracked.int32(10),
43  nbins_npv = cms.untracked.int32(35),
44  etabins_min = cms.untracked.double(-2.5),
45  etabins_max = cms.untracked.double(2.5),
46  phibins_min = cms.untracked.double(-3.142),
47  phibins_max = cms.untracked.double(3.142),
48  npvbins_min = cms.untracked.double(0),
49  npvbins_max = cms.untracked.double(70),
50 
51  numGenericTriggerEventPSet = cms.PSet(
52  andOr = cms.bool( False ),
53  andOrHlt = cms.bool(True),# True:=OR; False:=AND
54  hltInputTag = cms.InputTag( "TriggerResults::HLT" ),
55  hltPaths = cms.vstring("HLT_Ele15_IsoVVVL_PFHT600_v*"),
56  errorReplyHlt = cms.bool( False ),
57  verbosityLevel = cms.uint32(0)
58  ),
59  den_lep_GenericTriggerEventPSet = cms.PSet(
60  andOr = cms.bool( False ),
61  andOrHlt = cms.bool(True),# True:=OR; False:=AND
62  hltInputTag = cms.InputTag( "TriggerResults::HLT" ),
63  hltPaths = cms.vstring("HLT_PFHT1050_v*"),
64  errorReplyHlt = cms.bool( False ),
65  dcsInputTag = cms.InputTag( "scalersRawToDigi" ),
66  dcsRecordInputTag = cms.InputTag("onlineMetaDataDigis"),
67  dcsPartitions = cms.vint32 ( 24, 25, 26, 27, 28, 29 ), # 24-27: strip, 28-29: pixel, we should add all other detectors !
68  andOrDcs = cms.bool( False ),
69  errorReplyDcs = cms.bool( True ),
70  verbosityLevel = cms.uint32(0)
71  ),
72  den_HT_GenericTriggerEventPSet = cms.PSet(
73  andOr = cms.bool( False ),
74  andOrHlt = cms.bool(True),# True:=OR; False:=AND
75  hltInputTag = cms.InputTag( "TriggerResults::HLT" ),
76  hltPaths = cms.vstring("HLT_Ele38_WPTight_Gsf_v*","HLT_Ele27_WPTight_Gsf_v*","HLT_Ele35_WPTight_Gsf_v*","HLT_Ele40_WPTight_Gsf_v*"),
77  errorReplyHlt = cms.bool( False ),
78  dcsInputTag = cms.InputTag( "scalersRawToDigi" ),
79  dcsRecordInputTag = cms.InputTag("onlineMetaDataDigis"),
80  dcsPartitions = cms.vint32 ( 24, 25, 26, 27, 28, 29 ), # 24-27: strip, 28-29: pixel, we should add all other detectors !
81  andOrDcs = cms.bool( False ),
82  errorReplyDcs = cms.bool( True ),
83  verbosityLevel = cms.uint32(0)
84  ),
85  )
86 
87 DQMOffline_Ele15_HT450 = DQMOffline_Ele15_HT600.clone(
88  folderName = 'HLT_Ele15_IsoVVVL_PFHT450',
89  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_Ele15_IsoVVVL_PFHT450_v*"])
90 )
91 
92 DQMOffline_Ele50_HT450 = DQMOffline_Ele15_HT600.clone(
93  folderName = 'HLT_Ele50_IsoVVVL_PFH450',
94  leptonPtPlateau = 60.0,
95  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_Ele50_IsoVVVL_PFHT450_v*"])
96 )
97 
98 
99 DQMOffline_Mu15_HT600 = DQMOffline_Ele15_HT600.clone(
100  electronCollection = '',
101  conversionCollection = '',
102  muonCollection = 'muons',
103  muonIDlevel = 2,
104  nels = 0,
105  nmus = 1,
106  lepIsoCut = 0.2,
107  lepEtaCut = 2.4,
108  lep_d0_cut_b = 0.2, #endcap parameter not used for muons
109  lep_dz_cut_b = 0.5,
110  folderName = 'HLT_Mu15_IsoVVVL_PFH600',
111  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu15_IsoVVVL_PFHT600_v*"]),
112  den_HT_GenericTriggerEventPSet = dict(hltPaths = ["HLT_IsoMu27_v*","HLT_IsoMu24_v*"])
113 )
114 
115 DQMOffline_Mu15_HT450 = DQMOffline_Mu15_HT600.clone(
116  folderName = 'HLT_Mu15_IsoVVVL_PFHT450',
117  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu15_IsoVVVL_PFHT450_v*"])
118 )
119 
120 DQMOffline_Mu50_HT450 = DQMOffline_Mu15_HT600.clone(
121  folderName = 'HLT_Mu50_IsoVVVL_PFH450',
122  leptonPtPlateau = 60.0,
123  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu50_IsoVVVL_PFHT450_v*"])
124 )
125 
126 
127 DQMOffline_DoubleMu4_Mass8_DZ_PFHT350 = DQMOffline_Mu15_HT600.clone(
128  nmus = 2,
129  folderName = 'HLT_DoubleMu4_Mass8_DZ_PFHT350',
130  leptonPtPlateau = 6.0,
131  leptonCountingThreshold = 4.0,
132  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_DoubleMu4_Mass8_DZ_PFHT350_v*"]),
133  den_lep_GenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu15_IsoVVVL_PFHT450_v*"]),
134  den_HT_GenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v*"])
135 )
136 
137 
138 DQMOffline_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350 = DQMOffline_Ele15_HT600.clone(
139  nels = 2,
140  folderName = 'HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350',
141  leptonPtPlateau = 10.0,
142  leptonCountingThreshold = 8.0,
143  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v*"]),
144  den_lep_GenericTriggerEventPSet = dict(hltPaths = ["HLT_Ele15_IsoVVVL_PFHT450_v*"]),
145  den_HT_GenericTriggerEventPSet = dict(hltPaths = ["HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ*"])
146 )
147 
148 
149 DQMOffline_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ = DQMOffline_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350.clone(
150  muonCollection = 'muons',
151  nels = 1,
152  nmus = 1,
153  folderName = 'HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ',
154  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v*"]),
155  den_lep_GenericTriggerEventPSet = dict(hltPaths = ["HLT_Ele15_IsoVVVL_PFHT450_v*","HLT_Mu15_IsoVVVL_PFHT450_v*"]),
156  den_HT_GenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v*", "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v*","HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v*"])
157 )
158 
159 
160 DQMOffline_DoubleMu4_Mass8_PFHT350 = DQMOffline_DoubleMu4_Mass8_DZ_PFHT350.clone(
161  folderName = 'HLT_DoubleMu4_Mass8_PFHT350',
162  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_DoubleMu4_Mass8_PFHT350_v*"])
163 )
164 
165 DQMOffline_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350 = DQMOffline_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350.clone(
166  folderName = 'HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350',
167  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v*"])
168 )
169 
170 DQMOffline_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350 = DQMOffline_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ.clone(
171  folderName = 'HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350',
172  numGenericTriggerEventPSet = dict(hltPaths = ["HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v*"])
173 )
174 
175 # fastsim has no conversion collection
176 from Configuration.Eras.Modifier_fastSim_cff import fastSim
177 fastSim.toModify(DQMOffline_Ele15_HT600,conversionCollection=cms.InputTag(''))
178 fastSim.toModify(DQMOffline_Ele15_HT450,conversionCollection=cms.InputTag(''))
179 fastSim.toModify(DQMOffline_Ele50_HT450,conversionCollection=cms.InputTag(''))
180 fastSim.toModify(DQMOffline_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350,conversionCollection=cms.InputTag(''))
181 fastSim.toModify(DQMOffline_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ,conversionCollection=cms.InputTag(''))
182 
183 DQMOffline_LepHT_POSTPROCESSING = DQMEDHarvester("DQMGenericClient",
184  subDirs = cms.untracked.vstring('HLT/SUSY/LepHT/*'),
185  efficiency = cms.vstring(
186  "lepPtTurnOn_eff ';Offline lepton p_{T} [GeV];#epsilon' lepPtTurnOn_num lepPtTurnOn_den",
187  "lepEtaTurnOn_eff ';Offline lepton #eta;#epsilon' lepEtaTurnOn_num lepEtaTurnOn_den",
188  "lepPhiTurnOn_eff ';Offline lepton #phi;#epsilon' lepPhiTurnOn_num lepPhiTurnOn_den",
189  "lepEtaPhiTurnOn_eff ';Offline lepton #eta;Offline lepton #phi;#epsilon' lepEtaPhiTurnOn_num lepEtaPhiTurnOn_den",
190  "pfHTTurnOn_eff ';Offline PF H_{T} [GeV];#epsilon' pfHTTurnOn_num pfHTTurnOn_den",
191  "NPVTurnOn_eff ';Offline N_{PV} ;#epsilon' NPVTurnOn_num NPVTurnOn_den"
192  ),
193  resolution = cms.vstring('')
194  )
195 
196 
197 
198 from DQMOffline.Trigger.HLTEGTnPMonitor_cfi import egmGsfElectronIDsForDQM
199 
200 LepHTMonitor = cms.Sequence(
201  DQMOffline_Ele15_HT600
202  + DQMOffline_Ele15_HT450
203  + DQMOffline_Ele50_HT450
204  + DQMOffline_Mu15_HT600
205  + DQMOffline_Mu15_HT450
206  + DQMOffline_Mu50_HT450
207  + DQMOffline_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350
208  + DQMOffline_DoubleMu4_Mass8_DZ_PFHT350
209  + DQMOffline_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ
210  + DQMOffline_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350
211  + DQMOffline_DoubleMu4_Mass8_PFHT350
212  + DQMOffline_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350
213  , cms.Task(egmGsfElectronIDsForDQM) # Use of electron VID requires this module being executed first
214 )
215 
216 LepHTClient = cms.Sequence( DQMOffline_LepHT_POSTPROCESSING )