CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
topSingleLeptonDQM_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 looseMuonCut = "muonRef.isNonnull && (muonRef.isGlobalMuon || muonRef.isTrackerMuon) && muonRef.isPFMuon"
4 looseIsoCut = "(muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.2"
5 
6 tightMuonCut = "muonRef.isNonnull && muonRef.isGlobalMuon && muonRef.isPFMuon && muonRef.globalTrack.normalizedChi2 < 10. && muonRef.globalTrack.hitPattern.numberOfValidMuonHits > 0 && " + \
7  "muonRef.numberOfMatchedStations > 1 && muonRef.innerTrack.hitPattern.numberOfValidPixelHits > 0 && muonRef.innerTrack.hitPattern.trackerLayersWithMeasurement > 8"
8  # CB PV cut!
9 tightIsoCut = "(muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.12"
10 
11 EletightIsoCut = "(gsfElectronRef.pfIsolationVariables.sumChargedHadronPt + max(0., gsfElectronRef.pfIsolationVariables.sumNeutralHadronEt + gsfElectronRef.pfIsolationVariables.sumPhotonEt - 0.5 * gsfElectronRef.pfIsolationVariables.sumPUPt) ) / gsfElectronRef.pt < 0.1"
12 ElelooseIsoCut = "(gsfElectronRef.pfIsolationVariables.sumChargedHadronPt + max(0., gsfElectronRef.pfIsolationVariables.sumNeutralHadronEt + gsfElectronRef.pfIsolationVariables.sumPhotonEt - 0.5 * gsfElectronRef.pfIsolationVariables.sumPUPt) ) / gsfElectronRef.pt < 0.15"
13 
14 topSingleLeptonDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
15  ## ------------------------------------------------------
16  ## SETUP
17  ##
18  ## configuration of the MonitoringEnsemble(s)
19  ## [mandatory] : optional PSets may be omitted
20  ##
21  setup = cms.PSet(
22  ## sub-directory to write the monitor histograms to
23  ## [mandatory] : should not be changed w/o explicit
24  ## communication to TopCom!
25  directory = cms.string("Physics/Top/TopSingleLeptonDQM/"),
26  ## [mandatory]
27  sources = cms.PSet(
28  muons = cms.InputTag("pfIsolatedMuonsEI"),
29  elecs = cms.InputTag("pfIsolatedElectronsEI"),
30  jets = cms.InputTag("ak4PFJetsCHS"),
31  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
32  pvs = cms.InputTag("offlinePrimaryVertices")
33  ),
34  ## [optional] : when omitted the verbosity level is set to STANDARD
35  monitoring = cms.PSet(
36  verbosity = cms.string("DEBUG")
37  ),
38  ## [optional] : when omitted all monitoring plots for primary vertices
39  ## will be filled w/o extras
40  pvExtras = cms.PSet(
41  ## when omitted electron plots will be filled w/o additional pre-
42  ## selection of the primary vertex candidates
43  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
44  ),
45  ## [optional] : when omitted all monitoring plots for electrons
46  ## will be filled w/o extras
47  elecExtras = cms.PSet(
48  ## when omitted electron plots will be filled w/o cut on electronId
49  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),
50  ## when omitted electron plots will be filled w/o additional pre-
51  ## selection of the electron candidates
52  select = cms.string("pt>15 & abs(eta)<2.5 & abs(gsfTrack.d0)<1 & abs(gsfTrack.dz)<20"),
53  ## when omitted isolated electron multiplicity plot will be equi-
54  ## valent to inclusive electron multiplicity plot
55  isolation = cms.string(ElelooseIsoCut),
56  ),
57  ## [optional] : when omitted all monitoring plots for muons
58  ## will be filled w/o extras
59  muonExtras = cms.PSet(
60  ## when omitted muon plots will be filled w/o additional pre-
61  ## selection of the muon candidates
62  select = cms.string(looseMuonCut + " && pt>10 & abs(eta)<2.4"),
63  ## when omitted isolated muon multiplicity plot will be equi-
64  ## valent to inclusive muon multiplicity plot
65  isolation = cms.string(looseIsoCut),
66  ),
67  ## [optional] : when omitted all monitoring plots for jets will
68  ## be filled from uncorrected jets
69  jetExtras = cms.PSet(
70  ## when omitted monitor plots for pt will be filled from uncorrected
71  ## jets
72  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
73  ## when omitted monitor plots will be filled w/o additional cut on
74  ## jetID
75  #jetID = cms.PSet(
76  #label = cms.InputTag("ak5JetID"),
77  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
78 # ),
79  ## when omitted no extra selection will be applied on jets before
80  ## filling the monitor histograms; if jetCorrector is present the
81  ## selection will be applied to corrected jets
82  select = cms.string("pt>30 & abs(eta)<2.5 "),
83  ),
84  ## [optional] : when omitted no mass window will be applied
85  ## for the W mass befor filling the event monitoring plots
86  massExtras = cms.PSet(
87  lowerEdge = cms.double( 70.),
88  upperEdge = cms.double(110.)
89  ),
90  ## [optional] : when omitted the monitoring plots for triggering
91  ## will be empty
92  triggerExtras = cms.PSet(
93  src = cms.InputTag("TriggerResults","","HLT"),
94  paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
95  'HLT_Mu5:HLT_QuadJet15U',
96  'HLT_Mu7:HLT_QuadJet15U',
97  'HLT_Mu9:HLT_QuadJet15U'])
98  )
99  ),
100  ## ------------------------------------------------------
101  ## PRESELECTION
102  ##
103  ## setup of the event preselection, which will not
104  ## be monitored
105  ## [mandatory] : but may be empty
106  ##
107  preselection = cms.PSet(
108  ## [optional] : when omitted no preselection is applied
109  #trigger = cms.PSet(
110  # src = cms.InputTag("TriggerResults","","HLT"),
111  # select = cms.vstring(['HLT_Mu11', 'HLT_Ele15_LW_L1R', 'HLT_QuadJet30'])
112  #),
113  ## [optional] : when omitted no preselection is applied
114  vertex = cms.PSet(
115  src = cms.InputTag("offlinePrimaryVertices"),
116  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
117  )
118  ),
119  ## ------------------------------------------------------
120  ## SELECTION
121  ##
122  ## monitor histrograms are filled after each selection
123  ## step, the selection is applied in the order defined
124  ## by this vector
125  ## [mandatory] : may be empty or contain an arbitrary
126  ## number of PSets
127  ##
128  selection = cms.VPSet(
129  cms.PSet(
130  label = cms.string("jets/pf:step0"),
131  src = cms.InputTag("ak4PFJetsCHS"),
132  select = cms.string("pt>30 & abs(eta)<2.5 "),
133  #jetID = cms.PSet(
134  #label = cms.InputTag("ak5JetID"),
135  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
136  # ),
137  min = cms.int32(2),
138  ),
139  )
140 )
141 
142 topSingleMuonLooseDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
143  ## ------------------------------------------------------
144  ## SETUP
145  ##
146  ## configuration of the MonitoringEnsemble(s)
147  ## [mandatory] : optional PSets may be omitted
148  ##
149  setup = cms.PSet(
150  ## sub-directory to write the monitor histograms to
151  ## [mandatory] : should not be changed w/o explicit
152  ## communication to TopCom!
153  directory = cms.string("Physics/Top/TopSingleMuonLooseDQM/"),
154  ## [mandatory]
155  sources = cms.PSet(
156  muons = cms.InputTag("pfIsolatedMuonsEI"),
157  elecs = cms.InputTag("pfIsolatedElectronsEI"),
158  jets = cms.InputTag("ak4PFJetsCHS"),
159  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
160  pvs = cms.InputTag("offlinePrimaryVertices")
161  ),
162  ## [optional] : when omitted the verbosity level is set to STANDARD
163  monitoring = cms.PSet(
164  verbosity = cms.string("DEBUG")
165  ),
166  pvExtras = cms.PSet(
167  ## when omitted electron plots will be filled w/o additional pre-
168  ## selection of the primary vertex candidates
169  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
170  ),
171  ## [optional] : when omitted all monitoring plots for muons
172  ## will be filled w/o extras
173  muonExtras = cms.PSet(
174  ## when omitted muon plots will be filled w/o additional pre-
175  ## selection of the muon candidates
176  select = cms.string(looseMuonCut + " && pt > 10 & abs(eta)<2.4"),
177  ## when omitted isolated muon multiplicity plot will be equi-
178  ## valent to inclusive muon multiplicity plot
179  isolation = cms.string(looseIsoCut)
180  ),
181  ## [optional] : when omitted all monitoring plots for jets
182  ## will be filled w/o extras
183  jetExtras = cms.PSet(
184  ## when omitted monitor plots for pt will be filled from uncorrected
185  ## jets
186  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
187  ## when omitted monitor plots will be filled w/o additional cut on
188  ## jetID
189  #jetID = cms.PSet(
190  #label = cms.InputTag("ak5JetID"),
191  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
192  # ),
193  ## when omitted no extra selection will be applied on jets before
194  ## filling the monitor histograms; if jetCorrector is present the
195  ## selection will be applied to corrected jets
196  select = cms.string("pt>30 & abs(eta)<2.5"),
197  ## when omitted monitor histograms for b-tagging will not be filled
198  jetBTaggers = cms.PSet(
199  trackCountingEff = cms.PSet(
200  label = cms.InputTag("pfTrackCountingHighEffBJetTags" ),
201  workingPoint = cms.double(1.25)
202  ),
203  trackCountingPur = cms.PSet(
204  label = cms.InputTag("pfTrackCountingHighPurBJetTags" ),
205  workingPoint = cms.double(3.00)
206  ),
207  secondaryVertex = cms.PSet(
208  label = cms.InputTag("pfSimpleSecondaryVertexHighEffBJetTags"),
209  workingPoint = cms.double(2.05)
210  ),
211  cvsVertex = cms.PSet(
212  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
213  workingPoint = cms.double(0.970)
214  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
215  )
216  ),
217  ),
218  ## [optional] : when omitted no mass window will be applied
219  ## for the W mass befor filling the event monitoring plots
220  massExtras = cms.PSet(
221  lowerEdge = cms.double( 70.),
222  upperEdge = cms.double(110.)
223  ),
224  ## [optional] : when omitted the monitoring plots for triggering
225  ## will be empty
226  triggerExtras = cms.PSet(
227  src = cms.InputTag("TriggerResults","","HLT"),
228  paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
229  'HLT_Mu5:HLT_QuadJet15U',
230  'HLT_Mu7:HLT_QuadJet15U',
231  'HLT_Mu9:HLT_QuadJet15U',
232  'HLT_Mu11:HLT_QuadJet15U'])
233  )
234  ),
235  ## ------------------------------------------------------
236  ## PRESELECTION
237  ##
238  ## setup of the event preselection, which will not
239  ## be monitored
240  ## [mandatory] : but may be empty
241  ##
242  preselection = cms.PSet(
243  ## [optional] : when omitted no preselection is applied
244  #trigger = cms.PSet(
245  # src = cms.InputTag("TriggerResults","","HLT"),
246  # select = cms.vstring(['HLT_Mu11'])
247  #),
248  ## [optional] : when omitted no preselection is applied
249  vertex = cms.PSet(
250  src = cms.InputTag("offlinePrimaryVertices"),
251  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
252  )
253  ),
254  ## ------------------------------------------------------
255  ## SELECTION
256  ##
257  ## monitor histrograms are filled after each selection
258  ## step, the selection is applied in the order defined
259  ## by this vector
260  ## [mandatory] : may be empty or contain an arbitrary
261  ## number of PSets
262  selection = cms.VPSet(
263  cms.PSet(
264  label = cms.string("muons:step0"),
265  src = cms.InputTag("pfIsolatedMuonsEI"),
266  select = cms.string(looseMuonCut + looseIsoCut + " && pt>10 & abs(eta)<2.4"), # CB what about iso? CD Added looseIso
267  min = cms.int32(1),
268  ),
269  cms.PSet(
270  label = cms.string("jets/pf:step1"),
271  src = cms.InputTag("ak4PFJetsCHS"),
272  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
273  #select = cms.string("pt>30 & abs(eta)<2.5 & emEnergyFraction>0.01"),
274  select = cms.string("pt>30 & abs(eta)<2.5 "),
275  #jetID = cms.PSet(
276  #label = cms.InputTag("ak5JetID"),
277  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
278  # ),
279  min = cms.int32(1),
280  ),
281  cms.PSet(
282  label = cms.string("jets/pf:step2"),
283  src = cms.InputTag("ak4PFJetsCHS"),
284  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
285  select = cms.string("pt>30 & abs(eta)<2.5 "),
286  #jetID = cms.PSet(
287  #label = cms.InputTag("ak5JetID"),
288  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
289  # ),
290  min = cms.int32(2),
291  ),
292  cms.PSet(
293  label = cms.string("jets/pf:step3"),
294  src = cms.InputTag("ak4PFJetsCHS"),
295  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
296  select = cms.string("pt>30 & abs(eta)<2.5 "),
297  #jetID = cms.PSet(
298  #label = cms.InputTag("ak5JetID"),
299  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
300  # ),
301  min = cms.int32(3),
302  ),
303  cms.PSet(
304  label = cms.string("jets/pf:step4"),
305  src = cms.InputTag("ak4PFJetsCHS"),
306  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
307  select = cms.string("pt>30 & abs(eta)<2.5 "),
308  #jetID = cms.PSet(
309  #label = cms.InputTag("ak5JetID"),
310  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
311 # ),
312  min = cms.int32(4),
313  ),
314  )
315 )
316 topSingleMuonMediumDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
317  ## ------------------------------------------------------
318  ## SETUP
319  ##
320  ## configuration of the MonitoringEnsemble(s)
321  ## [mandatory] : optional PSets may be omitted
322  ##
323  setup = cms.PSet(
324  ## sub-directory to write the monitor histograms to
325  ## [mandatory] : should not be changed w/o explicit
326  ## communication to TopCom!
327  directory = cms.string("Physics/Top/TopSingleMuonMediumDQM/"),
328  ## [mandatory]
329  sources = cms.PSet(
330  muons = cms.InputTag("pfIsolatedMuonsEI"),
331  elecs = cms.InputTag("pfIsolatedElectronsEI"),
332  jets = cms.InputTag("ak4PFJetsCHS"),
333  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
334  pvs = cms.InputTag("offlinePrimaryVertices")
335 
336  ),
337  ## [optional] : when omitted the verbosity level is set to STANDARD
338  monitoring = cms.PSet(
339  verbosity = cms.string("DEBUG")
340  ),
341  ## [optional] : when omitted all monitoring plots for primary vertices
342  ## will be filled w/o extras
343  pvExtras = cms.PSet(
344  ## when omitted electron plots will be filled w/o additional pre-
345  ## selection of the primary vertex candidates
346  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
347  ),
348  ## [optional] : when omitted all monitoring plots for muons
349  ## will be filled w/o extras
350  muonExtras = cms.PSet(
351  ## when omitted muon plots will be filled w/o additional pre-
352  ## selection of the muon candidates
353  select = cms.string(looseMuonCut + " && pt>20 & abs(eta)<2.1"),
354  ## when omitted isolated muon multiplicity plot will be equi-
355  ## valent to inclusive muon multiplicity plot
356  isolation = cms.string(looseIsoCut)
357  ),
358  ## [optional] : when omitted all monitoring plots for jets
359  ## will be filled w/o extras
360  jetExtras = cms.PSet(
361  ## when omitted monitor plots for pt will be filled from uncorrected
362  ## jets
363  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
364  ## when omitted monitor plots will be filled w/o additional cut on
365  ## jetID
366  #jetID = cms.PSet(
367  #label = cms.InputTag("ak5JetID"),
368  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
369  # ),
370  ## when omitted no extra selection will be applied on jets before
371  ## filling the monitor histograms; if jetCorrector is present the
372  ## selection will be applied to corrected jets
373  select = cms.string("pt>30 & abs(eta)<2.5 "),
374  ## when omitted monitor histograms for b-tagging will not be filled
375  jetBTaggers = cms.PSet(
376  trackCountingEff = cms.PSet(
377  label = cms.InputTag("pfTrackCountingHighEffBJetTags" ),
378  workingPoint = cms.double(1.25)
379  ),
380  trackCountingPur = cms.PSet(
381  label = cms.InputTag("pfTrackCountingHighPurBJetTags" ),
382  workingPoint = cms.double(3.00)
383  ),
384  secondaryVertex = cms.PSet(
385  label = cms.InputTag("pfSimpleSecondaryVertexHighEffBJetTags"),
386  workingPoint = cms.double(2.05)
387  ),
388  cvsVertex = cms.PSet(
389  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
390  workingPoint = cms.double(0.970)
391  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
392  )
393  ),
394  ),
395  ## [optional] : when omitted no mass window will be applied
396  ## for the W mass before filling the event monitoring plots
397  massExtras = cms.PSet(
398  lowerEdge = cms.double( 70.),
399  upperEdge = cms.double(110.)
400  ),
401  ## [optional] : when omitted the monitoring plots for triggering
402  ## will be empty
403 # triggerExtras = cms.PSet(
404 # src = cms.InputTag("TriggerResults","","HLT"),
405 # paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
406 # 'HLT_Mu5:HLT_QuadJet15U',
407 # 'HLT_Mu7:HLT_QuadJet15U',
408 # 'HLT_Mu9:HLT_QuadJet15U',
409 # 'HLT_Mu11:HLT_QuadJet15U'])
410 # )
411  ),
412  ## ------------------------------------------------------
413  ## PRESELECTION
414  ##
415  ## setup of the event preselection, which will not
416  ## be monitored
417  ## [mandatory] : but may be empty
418  ##
419  preselection = cms.PSet(
420  ## [optional] : when omitted no preselection is applied
421  #trigger = cms.PSet(
422  # src = cms.InputTag("TriggerResults","","HLT"),
423  # select = cms.vstring(['HLT_Mu15_v2'])
424  #),
425  ## [optional] : when omitted no preselection is applied
426  vertex = cms.PSet(
427  src = cms.InputTag("offlinePrimaryVertices"),
428  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
429  )
430  ),
431  ## ------------------------------------------------------
432  ## SELECTION
433  ##
434  ## monitor histrograms are filled after each selection
435  ## step, the selection is applied in the order defined
436  ## by this vector
437  ## [mandatory] : may be empty or contain an arbitrary
438  ## number of PSets
439  selection = cms.VPSet(
440  cms.PSet(
441  label = cms.string("muons:step0"),
442  src = cms.InputTag("pfIsolatedMuonsEI"),
443  select = cms.string(tightMuonCut +"&&"+ tightIsoCut + " && pt>20 & abs(eta)<2.1"), # CB what about iso? CD Added tightIso
444  min = cms.int32(1),
445  max = cms.int32(1),
446  ),
447  cms.PSet(
448  label = cms.string("jets/pf:step1"),
449  #src = cms.InputTag("ak4PFJetsCHS"),
450  src = cms.InputTag("ak4PFJetsCHS"),
451 # jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
452  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
453  #select = cms.string("pt>30 & abs(eta)<2.5 & emEnergyFraction>0.01"),
454  select = cms.string("pt>30 & abs(eta)<2.5 "),
455  #jetID = cms.PSet(
456  #label = cms.InputTag("ak5JetID"),
457  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
458  # ),
459  min = cms.int32(1),
460  ),
461  cms.PSet(
462  label = cms.string("jets/pf:step2"),
463  src = cms.InputTag("ak4PFJetsCHS"),
464  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
465  select = cms.string("pt>30 & abs(eta)<2.5 "),
466  #jetID = cms.PSet(
467  #label = cms.InputTag("ak5JetID"),
468  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
469  # ),
470  min = cms.int32(2),
471  ),
472  cms.PSet(
473  label = cms.string("jets/pf:step3"),
474  src = cms.InputTag("ak4PFJetsCHS"),
475  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
476  select = cms.string("pt>30 & abs(eta)<2.5 "),
477  #jetID = cms.PSet(
478  #label = cms.InputTag("ak5JetID"),
479  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
480  # ),
481  min = cms.int32(3),
482  ),
483  cms.PSet(
484  label = cms.string("jets/pf:step4"),
485  src = cms.InputTag("ak4PFJetsCHS"),
486  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
487  select = cms.string("pt>30 & abs(eta)<2.5 "),
488  #jetID = cms.PSet(
489  #label = cms.InputTag("ak5JetID"),
490  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
491 # ),
492  min = cms.int32(4),
493  ),
494  )
495 )
496 
497 topSingleElectronLooseDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
498  ## ------------------------------------------------------
499  ## SETUP
500  ##
501  ## configuration of the MonitoringEnsemble(s)
502  ## [mandatory] : optional PSets may be omitted
503  ##
504  setup = cms.PSet(
505  ## sub-directory to write the monitor histograms to
506  ## [mandatory] : should not be changed w/o explicit
507  ## communication to TopCom!
508  directory = cms.string("Physics/Top/TopSingleElectronLooseDQM/"),
509  ## [mandatory]
510  sources = cms.PSet(
511  muons = cms.InputTag("pfIsolatedMuonsEI"),
512  elecs = cms.InputTag("pfIsolatedElectronsEI"),
513  jets = cms.InputTag("ak4PFJetsCHS"),
514  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
515  pvs = cms.InputTag("offlinePrimaryVertices")
516 
517  ),
518  ## [optional] : when omitted the verbosity level is set to STANDARD
519  monitoring = cms.PSet(
520  verbosity = cms.string("DEBUG")
521  ),
522  ## [optional] : when omitted all monitoring plots for primary vertices
523  ## will be filled w/o extras
524  pvExtras = cms.PSet(
525  ## when omitted electron plots will be filled w/o additional pre-
526  ## selection of the primary vertex candidates
527  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
528  ),
529  ## [optional] : when omitted all monitoring plots for electrons
530  ## will be filled w/o extras
531  elecExtras = cms.PSet(
532  ## when omitted electron plots will be filled w/o cut on electronId
533  #electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),
534  ## when omitted electron plots will be filled w/o additional pre-
535  ## selection of the electron candidates
536  select = cms.string("pt>20 & abs(eta)<2.5"),
537  ## when omitted isolated electron multiplicity plot will be equi-
538  ## valent to inclusive electron multiplicity plot
539  isolation = cms.string(ElelooseIsoCut),
540  ),
541  ## [optional] : when omitted all monitoring plots for jets
542  ## will be filled w/o extras
543  jetExtras = cms.PSet(
544  ## when omitted monitor plots for pt will be filled from uncorrected
545  ## jets
546  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
547  ## when omitted monitor plots will be filled w/o additional cut on
548  ## jetID
549  #jetID = cms.PSet(
550  #label = cms.InputTag("ak5JetID"),
551  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
552  # ),
553  ## when omitted no extra selection will be applied on jets before
554  ## filling the monitor histograms; if jetCorrector is present the
555  ## selection will be applied to corrected jets
556  #select = cms.string("pt>30 & abs(eta)<2.5 & emEnergyFraction>0.01"),
557  select = cms.string("pt>30 & abs(eta)<2.5 "),
558  ## when omitted monitor histograms for b-tagging will not be filled
559  jetBTaggers = cms.PSet(
560  trackCountingEff = cms.PSet(
561  label = cms.InputTag("pfTrackCountingHighEffBJetTags" ),
562  workingPoint = cms.double(1.25)
563  ),
564  trackCountingPur = cms.PSet(
565  label = cms.InputTag("pfTrackCountingHighPurBJetTags" ),
566  workingPoint = cms.double(3.00)
567  ),
568  secondaryVertex = cms.PSet(
569  label = cms.InputTag("pfSimpleSecondaryVertexHighEffBJetTags"),
570  workingPoint = cms.double(2.05)
571  ),
572  cvsVertex = cms.PSet(
573  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
574  workingPoint = cms.double(0.970)
575  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
576  )
577  ),
578  ),
579  ## [optional] : when omitted no mass window will be applied
580  ## for the W mass before filling the event monitoring plots
581  massExtras = cms.PSet(
582  lowerEdge = cms.double( 70.),
583  upperEdge = cms.double(110.)
584  ),
585  ## [optional] : when omitted the monitoring plots for triggering
586  ## will be empty
587  triggerExtras = cms.PSet(
588  src = cms.InputTag("TriggerResults","","HLT"),
589  paths = cms.vstring(['HLT_Ele15_LW_L1R:HLT_QuadJetU15'])
590  )
591  ),
592  ## ------------------------------------------------------
593  ## PRESELECTION
594  ##
595  ## setup of the event preselection, which will not
596  ## be monitored
597  ## [mandatory] : but may be empty
598  ##
599  preselection = cms.PSet(
600  ## [optional] : when omitted no preselection is applied
601  #trigger = cms.PSet(
602  # src = cms.InputTag("TriggerResults","","HLT"),
603  # select = cms.vstring(['HLT_Ele15_SW_CaloEleId_L1R'])
604  #),
605  ## [optional] : when omitted no preselection is applied
606  vertex = cms.PSet(
607  src = cms.InputTag("offlinePrimaryVertices"),
608  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
609  )
610  ),
611  ## ------------------------------------------------------
612  ## SELECTION
613  ##
614  ## monitor histrograms are filled after each selection
615  ## step, the selection is applied in the order defined
616  ## by this vector
617  ## [mandatory] : may be empty or contain an arbitrary
618  ## number of PSets
619  selection = cms.VPSet(
620  cms.PSet(
621  label = cms.string("elecs:step0"),
622  src = cms.InputTag("pfIsolatedElectronsEI"),
623  select = cms.string("pt>20 & abs(eta)<2.5 && "+ElelooseIsoCut),
624  min = cms.int32(1),
625  ),
626  cms.PSet(
627  label = cms.string("jets/pf:step1"),
628  src = cms.InputTag("ak4PFJetsCHS"),
629  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
630  select = cms.string("pt>30 & abs(eta)<2.5 "),
631  #jetID = cms.PSet(
632  #label = cms.InputTag("ak5JetID"),
633  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
634  # ),
635  min = cms.int32(1),
636  ),
637  cms.PSet(
638  label = cms.string("jets/pf:step2"),
639  src = cms.InputTag("ak4PFJetsCHS"),
640  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
641  select = cms.string("pt>30 & abs(eta)<2.5 "),
642  #jetID = cms.PSet(
643  #label = cms.InputTag("ak5JetID"),
644  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
645 # ),
646  min = cms.int32(2),
647  ),
648  cms.PSet(
649  label = cms.string("jets/pf:step3"),
650  src = cms.InputTag("ak4PFJetsCHS"),
651  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
652  select = cms.string("pt>30 & abs(eta)<2.5 "),
653  #jetID = cms.PSet(
654  #label = cms.InputTag("ak5JetID"),
655  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
656  # ),
657  min = cms.int32(3),
658  ),
659  cms.PSet(
660  label = cms.string("jets/pf:step4"),
661  src = cms.InputTag("ak4PFJetsCHS"),
662  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
663  select = cms.string("pt>30 & abs(eta)<2.5 "),
664  #jetID = cms.PSet(
665  #label = cms.InputTag("ak5JetID"),
666  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
667  # ),
668  min = cms.int32(4),
669  ),
670  )
671 )
672 
673 topSingleElectronMediumDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
674  ## ------------------------------------------------------
675  ## SETUP
676  ##
677  ## configuration of the MonitoringEnsemble(s)
678  ## [mandatory] : optional PSets may be omitted
679  ##
680  setup = cms.PSet(
681  ## sub-directory to write the monitor histograms to
682  ## [mandatory] : should not be changed w/o explicit
683  ## communication to TopCom!
684  directory = cms.string("Physics/Top/TopSingleElectronMediumDQM/"),
685  ## [mandatory]
686  sources = cms.PSet(
687  muons = cms.InputTag("pfIsolatedMuonsEI"),
688  elecs = cms.InputTag("pfIsolatedElectronsEI"),
689  jets = cms.InputTag("ak4PFJetsCHS"),
690  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
691  pvs = cms.InputTag("offlinePrimaryVertices")
692 
693  ),
694  ## [optional] : when omitted the verbosity level is set to STANDARD
695  monitoring = cms.PSet(
696  verbosity = cms.string("DEBUG")
697  ),
698  ## [optional] : when omitted all monitoring plots for primary vertices
699  ## will be filled w/o extras
700  pvExtras = cms.PSet(
701  ## when omitted electron plots will be filled w/o additional pre-
702  ## selection of the primary vertex candidates
703  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
704  ),
705  ## [optional] : when omitted all monitoring plots for electrons
706  ## will be filled w/o extras
707  elecExtras = cms.PSet(
708  ## when omitted electron plots will be filled w/o cut on electronId
709  #electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),
710  ## when omitted electron plots will be filled w/o additional pre-
711  ## selection of the electron candidates
712  select = cms.string("pt>20 & abs(eta)<2.5"),
713  ## when omitted isolated electron multiplicity plot will be equi-
714  ## valent to inclusive electron multiplicity plot
715  isolation = cms.string(ElelooseIsoCut),
716  ),
717  ## [optional] : when omitted all monitoring plots for jets
718  ## will be filled w/o extras
719  jetExtras = cms.PSet(
720  ## when omitted monitor plots for pt will be filled from uncorrected
721  ## jets
722  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
723  ## when omitted monitor plots will be filled w/o additional cut on
724  ## jetID
725  #jetID = cms.PSet(
726  #label = cms.InputTag("ak5JetID"),
727  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
728  # ),
729  ## when omitted no extra selection will be applied on jets before
730  ## filling the monitor histograms; if jetCorrector is present the
731  ## selection will be applied to corrected jets
732  select = cms.string("pt>30 & abs(eta)<2.5 "),
733  ## when omitted monitor histograms for b-tagging will not be filled
734  jetBTaggers = cms.PSet(
735  trackCountingEff = cms.PSet(
736  label = cms.InputTag("pfTrackCountingHighEffBJetTags" ),
737  workingPoint = cms.double(1.25)
738  ),
739  trackCountingPur = cms.PSet(
740  label = cms.InputTag("pfTrackCountingHighPurBJetTags" ),
741  workingPoint = cms.double(3.00)
742  ),
743  secondaryVertex = cms.PSet(
744  label = cms.InputTag("pfSimpleSecondaryVertexHighEffBJetTags"),
745  workingPoint = cms.double(2.05)
746  ),
747  cvsVertex = cms.PSet(
748  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
749  workingPoint = cms.double(0.970)
750  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
751  )
752  ),
753  ),
754  ## [optional] : when omitted no mass window will be applied
755  ## for the W mass before filling the event monitoring plots
756  massExtras = cms.PSet(
757  lowerEdge = cms.double( 70.),
758  upperEdge = cms.double(110.)
759  ),
760  ## [optional] : when omitted the monitoring plots for triggering
761  ## will be empty
762  #triggerExtras = cms.PSet(
763  # src = cms.InputTag("TriggerResults","","HLT"),
764  # paths = cms.vstring([ 'HLT_Ele15_LW_L1R:HLT_QuadJetU15'])
765  #)
766  ),
767  ## ------------------------------------------------------
768  ## PRESELECTION
769  ##
770  ## setup of the event preselection, which will not
771  ## be monitored
772  ## [mandatory] : but may be empty
773  ##
774  preselection = cms.PSet(
775  ## [optional] : when omitted no preselection is applied
776  #trigger = cms.PSet(
777  # src = cms.InputTag("TriggerResults","","HLT"),
778  # select = cms.vstring(['HLT_Ele15_SW_CaloEleId_L1R'])
779  #),
780  ## [optional] : when omitted no preselection is applied
781  vertex = cms.PSet(
782  src = cms.InputTag("offlinePrimaryVertices"),
783  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
784  )
785  ),
786  ## ------------------------------------------------------
787  ## SELECTION
788  ##
789  ## monitor histrograms are filled after each selection
790  ## step, the selection is applied in the order defined
791  ## by this vector
792  ## [mandatory] : may be empty or contain an arbitrary
793  ## number of PSets
794  selection = cms.VPSet(
795  cms.PSet(
796  label = cms.string("elecs:step0"),
797  src = cms.InputTag("pfIsolatedElectronsEI"),
798  select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfElectronRef.gsfTrack.d0)<0.02 & gsfElectronRef.gsfTrack.hitPattern().numberOfHits('MISSING_INNER_HITS') <= 0 & (abs(gsfElectronRef.superCluster.eta) <= 1.4442 || abs(gsfElectronRef.superCluster.eta) >= 1.5660) & " + EletightIsoCut),
799  min = cms.int32(1),
800  max = cms.int32(1),
801  ),
802  cms.PSet(
803  label = cms.string("jets/pf:step1"),
804  src = cms.InputTag("ak4PFJetsCHS"),
805  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
806  select = cms.string("pt>30 & abs(eta)<2.5 "),
807  #jetID = cms.PSet(
808  #label = cms.InputTag("ak5JetID"),
809  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
810 # ),
811  min = cms.int32(1),
812  ),
813  cms.PSet(
814  label = cms.string("jets/pf:step2"),
815  src = cms.InputTag("ak4PFJetsCHS"),
816  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
817  select = cms.string("pt>30 & abs(eta)<2.5 "),
818  #jetID = cms.PSet(
819  #label = cms.InputTag("ak5JetID"),
820  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
821  # ),
822  min = cms.int32(2),
823  ),
824  cms.PSet(
825  label = cms.string("jets/pf:step3"),
826  src = cms.InputTag("ak4PFJetsCHS"),
827  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
828  select = cms.string("pt>30 & abs(eta)<2.5 "),
829  #jetID = cms.PSet(
830  #label = cms.InputTag("ak5JetID"),
831  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
832  # ),
833  min = cms.int32(3),
834  ),
835  cms.PSet(
836  label = cms.string("jets/pf:step4"),
837  src = cms.InputTag("ak4PFJetsCHS"),
838  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
839  select = cms.string("pt>30 & abs(eta)<2.5 "),
840  #jetID = cms.PSet(
841  #label = cms.InputTag("ak5JetID"),
842  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
843  # ),
844  min = cms.int32(4),
845  ),
846  )
847 )