CMS 3D CMS Logo

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 
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 
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 
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 
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  cvsVertex = cms.PSet(
200  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
201  workingPoint = cms.double(0.970)
202  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
203  )
204  ),
205  ),
206  ## [optional] : when omitted no mass window will be applied
207  ## for the W mass befor filling the event monitoring plots
208  massExtras = cms.PSet(
209  lowerEdge = cms.double( 70.),
210  upperEdge = cms.double(110.)
211  ),
212  ## [optional] : when omitted the monitoring plots for triggering
213  ## will be empty
214  triggerExtras = cms.PSet(
215  src = cms.InputTag("TriggerResults","","HLT"),
216  paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
217  'HLT_Mu5:HLT_QuadJet15U',
218  'HLT_Mu7:HLT_QuadJet15U',
219  'HLT_Mu9:HLT_QuadJet15U',
220  'HLT_Mu11:HLT_QuadJet15U'])
221  )
222  ),
223  ## ------------------------------------------------------
224  ## PRESELECTION
225 
230  preselection = cms.PSet(
231  ## [optional] : when omitted no preselection is applied
232  #trigger = cms.PSet(
233  # src = cms.InputTag("TriggerResults","","HLT"),
234  # select = cms.vstring(['HLT_Mu11'])
235  #),
236  ## [optional] : when omitted no preselection is applied
237  vertex = cms.PSet(
238  src = cms.InputTag("offlinePrimaryVertices"),
239  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
240  )
241  ),
242  ## ------------------------------------------------------
243  ## SELECTION
244 
250  selection = cms.VPSet(
251  cms.PSet(
252  label = cms.string("muons:step0"),
253  src = cms.InputTag("pfIsolatedMuonsEI"),
254  select = cms.string(looseMuonCut + looseIsoCut + " && pt>10 & abs(eta)<2.4"), # CB what about iso? CD Added looseIso
255  min = cms.int32(1),
256  ),
257  cms.PSet(
258  label = cms.string("jets/pf:step1"),
259  src = cms.InputTag("ak4PFJetsCHS"),
260  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
261  #select = cms.string("pt>30 & abs(eta)<2.5 & emEnergyFraction>0.01"),
262  select = cms.string("pt>30 & abs(eta)<2.5 "),
263  #jetID = cms.PSet(
264  #label = cms.InputTag("ak5JetID"),
265  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
266  # ),
267  min = cms.int32(1),
268  ),
269  cms.PSet(
270  label = cms.string("jets/pf:step2"),
271  src = cms.InputTag("ak4PFJetsCHS"),
272  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
273  select = cms.string("pt>30 & abs(eta)<2.5 "),
274  #jetID = cms.PSet(
275  #label = cms.InputTag("ak5JetID"),
276  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
277  # ),
278  min = cms.int32(2),
279  ),
280  cms.PSet(
281  label = cms.string("jets/pf:step3"),
282  src = cms.InputTag("ak4PFJetsCHS"),
283  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
284  select = cms.string("pt>30 & abs(eta)<2.5 "),
285  #jetID = cms.PSet(
286  #label = cms.InputTag("ak5JetID"),
287  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
288  # ),
289  min = cms.int32(3),
290  ),
291  cms.PSet(
292  label = cms.string("jets/pf:step4"),
293  src = cms.InputTag("ak4PFJetsCHS"),
294  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
295  select = cms.string("pt>30 & abs(eta)<2.5 "),
296  #jetID = cms.PSet(
297  #label = cms.InputTag("ak5JetID"),
298  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
299 # ),
300  min = cms.int32(4),
301  ),
302  )
303 )
304 topSingleMuonMediumDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
305  ## ------------------------------------------------------
306  ## SETUP
307 
311  setup = cms.PSet(
312  ## sub-directory to write the monitor histograms to
313  ## [mandatory] : should not be changed w/o explicit
314  ## communication to TopCom!
315  directory = cms.string("Physics/Top/TopSingleMuonMediumDQM/"),
316  ## [mandatory]
317  sources = cms.PSet(
318  muons = cms.InputTag("pfIsolatedMuonsEI"),
319  elecs = cms.InputTag("pfIsolatedElectronsEI"),
320  jets = cms.InputTag("ak4PFJetsCHS"),
321  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
322  pvs = cms.InputTag("offlinePrimaryVertices")
323 
324  ),
325  ## [optional] : when omitted the verbosity level is set to STANDARD
326  monitoring = cms.PSet(
327  verbosity = cms.string("DEBUG")
328  ),
329  ## [optional] : when omitted all monitoring plots for primary vertices
330  ## will be filled w/o extras
331  pvExtras = cms.PSet(
332  ## when omitted electron plots will be filled w/o additional pre-
333  ## selection of the primary vertex candidates
334  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
335  ),
336  ## [optional] : when omitted all monitoring plots for muons
337  ## will be filled w/o extras
338  muonExtras = cms.PSet(
339  ## when omitted muon plots will be filled w/o additional pre-
340  ## selection of the muon candidates
341  select = cms.string(looseMuonCut + " && pt>20 & abs(eta)<2.1"),
342  ## when omitted isolated muon multiplicity plot will be equi-
343  ## valent to inclusive muon multiplicity plot
344  isolation = cms.string(looseIsoCut)
345  ),
346  ## [optional] : when omitted all monitoring plots for jets
347  ## will be filled w/o extras
348  jetExtras = cms.PSet(
349  ## when omitted monitor plots for pt will be filled from uncorrected
350  ## jets
351  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
352  ## when omitted monitor plots will be filled w/o additional cut on
353  ## jetID
354  #jetID = cms.PSet(
355  #label = cms.InputTag("ak5JetID"),
356  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
357  # ),
358  ## when omitted no extra selection will be applied on jets before
359  ## filling the monitor histograms; if jetCorrector is present the
360  ## selection will be applied to corrected jets
361  select = cms.string("pt>30 & abs(eta)<2.5 "),
362  ## when omitted monitor histograms for b-tagging will not be filled
363  jetBTaggers = cms.PSet(
364  cvsVertex = cms.PSet(
365  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
366  workingPoint = cms.double(0.970)
367  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
368  )
369  ),
370  ),
371  ## [optional] : when omitted no mass window will be applied
372  ## for the W mass before filling the event monitoring plots
373  massExtras = cms.PSet(
374  lowerEdge = cms.double( 70.),
375  upperEdge = cms.double(110.)
376  ),
377  ## [optional] : when omitted the monitoring plots for triggering
378  ## will be empty
379 # triggerExtras = cms.PSet(
380 # src = cms.InputTag("TriggerResults","","HLT"),
381 # paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
382 # 'HLT_Mu5:HLT_QuadJet15U',
383 # 'HLT_Mu7:HLT_QuadJet15U',
384 # 'HLT_Mu9:HLT_QuadJet15U',
385 # 'HLT_Mu11:HLT_QuadJet15U'])
386 # )
387  ),
388  ## ------------------------------------------------------
389  ## PRESELECTION
390 
395  preselection = cms.PSet(
396  ## [optional] : when omitted no preselection is applied
397  #trigger = cms.PSet(
398  # src = cms.InputTag("TriggerResults","","HLT"),
399  # select = cms.vstring(['HLT_Mu15_v2'])
400  #),
401  ## [optional] : when omitted no preselection is applied
402  vertex = cms.PSet(
403  src = cms.InputTag("offlinePrimaryVertices"),
404  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
405  )
406  ),
407  ## ------------------------------------------------------
408  ## SELECTION
409 
415  selection = cms.VPSet(
416  cms.PSet(
417  label = cms.string("muons:step0"),
418  src = cms.InputTag("pfIsolatedMuonsEI"),
419  select = cms.string(tightMuonCut +"&&"+ tightIsoCut + " && pt>20 & abs(eta)<2.1"), # CB what about iso? CD Added tightIso
420  min = cms.int32(1),
421  max = cms.int32(1),
422  ),
423  cms.PSet(
424  label = cms.string("jets/pf:step1"),
425  #src = cms.InputTag("ak4PFJetsCHS"),
426  src = cms.InputTag("ak4PFJetsCHS"),
427 # jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
428  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
429  #select = cms.string("pt>30 & abs(eta)<2.5 & emEnergyFraction>0.01"),
430  select = cms.string("pt>30 & abs(eta)<2.5 "),
431  #jetID = cms.PSet(
432  #label = cms.InputTag("ak5JetID"),
433  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
434  # ),
435  min = cms.int32(1),
436  ),
437  cms.PSet(
438  label = cms.string("jets/pf:step2"),
439  src = cms.InputTag("ak4PFJetsCHS"),
440  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
441  select = cms.string("pt>30 & abs(eta)<2.5 "),
442  #jetID = cms.PSet(
443  #label = cms.InputTag("ak5JetID"),
444  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
445  # ),
446  min = cms.int32(2),
447  ),
448  cms.PSet(
449  label = cms.string("jets/pf:step3"),
450  src = cms.InputTag("ak4PFJetsCHS"),
451  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
452  select = cms.string("pt>30 & abs(eta)<2.5 "),
453  #jetID = cms.PSet(
454  #label = cms.InputTag("ak5JetID"),
455  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
456  # ),
457  min = cms.int32(3),
458  ),
459  cms.PSet(
460  label = cms.string("jets/pf:step4"),
461  src = cms.InputTag("ak4PFJetsCHS"),
462  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
463  select = cms.string("pt>30 & abs(eta)<2.5 "),
464  #jetID = cms.PSet(
465  #label = cms.InputTag("ak5JetID"),
466  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
467 # ),
468  min = cms.int32(4),
469  ),
470  )
471 )
472 
473 topSingleElectronLooseDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
474  ## ------------------------------------------------------
475  ## SETUP
476 
480  setup = cms.PSet(
481  ## sub-directory to write the monitor histograms to
482  ## [mandatory] : should not be changed w/o explicit
483  ## communication to TopCom!
484  directory = cms.string("Physics/Top/TopSingleElectronLooseDQM/"),
485  ## [mandatory]
486  sources = cms.PSet(
487  muons = cms.InputTag("pfIsolatedMuonsEI"),
488  elecs = cms.InputTag("pfIsolatedElectronsEI"),
489  jets = cms.InputTag("ak4PFJetsCHS"),
490  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
491  pvs = cms.InputTag("offlinePrimaryVertices")
492 
493  ),
494  ## [optional] : when omitted the verbosity level is set to STANDARD
495  monitoring = cms.PSet(
496  verbosity = cms.string("DEBUG")
497  ),
498  ## [optional] : when omitted all monitoring plots for primary vertices
499  ## will be filled w/o extras
500  pvExtras = cms.PSet(
501  ## when omitted electron plots will be filled w/o additional pre-
502  ## selection of the primary vertex candidates
503  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
504  ),
505  ## [optional] : when omitted all monitoring plots for electrons
506  ## will be filled w/o extras
507  elecExtras = cms.PSet(
508  ## when omitted electron plots will be filled w/o cut on electronId
509  #electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),
510  ## when omitted electron plots will be filled w/o additional pre-
511  ## selection of the electron candidates
512  select = cms.string("pt>20 & abs(eta)<2.5"),
513  ## when omitted isolated electron multiplicity plot will be equi-
514  ## valent to inclusive electron multiplicity plot
515  isolation = cms.string(ElelooseIsoCut),
516  ),
517  ## [optional] : when omitted all monitoring plots for jets
518  ## will be filled w/o extras
519  jetExtras = cms.PSet(
520  ## when omitted monitor plots for pt will be filled from uncorrected
521  ## jets
522  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
523  ## when omitted monitor plots will be filled w/o additional cut on
524  ## jetID
525  #jetID = cms.PSet(
526  #label = cms.InputTag("ak5JetID"),
527  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
528  # ),
529  ## when omitted no extra selection will be applied on jets before
530  ## filling the monitor histograms; if jetCorrector is present the
531  ## selection will be applied to corrected jets
532  #select = cms.string("pt>30 & abs(eta)<2.5 & emEnergyFraction>0.01"),
533  select = cms.string("pt>30 & abs(eta)<2.5 "),
534  ## when omitted monitor histograms for b-tagging will not be filled
535  jetBTaggers = cms.PSet(
536  cvsVertex = cms.PSet(
537  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
538  workingPoint = cms.double(0.970)
539  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
540  )
541  ),
542  ),
543  ## [optional] : when omitted no mass window will be applied
544  ## for the W mass before filling the event monitoring plots
545  massExtras = cms.PSet(
546  lowerEdge = cms.double( 70.),
547  upperEdge = cms.double(110.)
548  ),
549  ## [optional] : when omitted the monitoring plots for triggering
550  ## will be empty
551  triggerExtras = cms.PSet(
552  src = cms.InputTag("TriggerResults","","HLT"),
553  paths = cms.vstring(['HLT_Ele15_LW_L1R:HLT_QuadJetU15'])
554  )
555  ),
556  ## ------------------------------------------------------
557  ## PRESELECTION
558 
563  preselection = cms.PSet(
564  ## [optional] : when omitted no preselection is applied
565  #trigger = cms.PSet(
566  # src = cms.InputTag("TriggerResults","","HLT"),
567  # select = cms.vstring(['HLT_Ele15_SW_CaloEleId_L1R'])
568  #),
569  ## [optional] : when omitted no preselection is applied
570  vertex = cms.PSet(
571  src = cms.InputTag("offlinePrimaryVertices"),
572  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
573  )
574  ),
575  ## ------------------------------------------------------
576  ## SELECTION
577 
583  selection = cms.VPSet(
584  cms.PSet(
585  label = cms.string("elecs:step0"),
586  src = cms.InputTag("pfIsolatedElectronsEI"),
587  select = cms.string("pt>20 & abs(eta)<2.5 && "+ElelooseIsoCut),
588  min = cms.int32(1),
589  ),
590  cms.PSet(
591  label = cms.string("jets/pf:step1"),
592  src = cms.InputTag("ak4PFJetsCHS"),
593  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
594  select = cms.string("pt>30 & abs(eta)<2.5 "),
595  #jetID = cms.PSet(
596  #label = cms.InputTag("ak5JetID"),
597  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
598  # ),
599  min = cms.int32(1),
600  ),
601  cms.PSet(
602  label = cms.string("jets/pf:step2"),
603  src = cms.InputTag("ak4PFJetsCHS"),
604  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
605  select = cms.string("pt>30 & abs(eta)<2.5 "),
606  #jetID = cms.PSet(
607  #label = cms.InputTag("ak5JetID"),
608  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
609 # ),
610  min = cms.int32(2),
611  ),
612  cms.PSet(
613  label = cms.string("jets/pf:step3"),
614  src = cms.InputTag("ak4PFJetsCHS"),
615  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
616  select = cms.string("pt>30 & abs(eta)<2.5 "),
617  #jetID = cms.PSet(
618  #label = cms.InputTag("ak5JetID"),
619  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
620  # ),
621  min = cms.int32(3),
622  ),
623  cms.PSet(
624  label = cms.string("jets/pf:step4"),
625  src = cms.InputTag("ak4PFJetsCHS"),
626  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
627  select = cms.string("pt>30 & abs(eta)<2.5 "),
628  #jetID = cms.PSet(
629  #label = cms.InputTag("ak5JetID"),
630  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
631  # ),
632  min = cms.int32(4),
633  ),
634  )
635 )
636 
637 topSingleElectronMediumDQM = cms.EDAnalyzer("TopSingleLeptonDQM",
638  ## ------------------------------------------------------
639  ## SETUP
640 
644  setup = cms.PSet(
645  ## sub-directory to write the monitor histograms to
646  ## [mandatory] : should not be changed w/o explicit
647  ## communication to TopCom!
648  directory = cms.string("Physics/Top/TopSingleElectronMediumDQM/"),
649  ## [mandatory]
650  sources = cms.PSet(
651  muons = cms.InputTag("pfIsolatedMuonsEI"),
652  elecs = cms.InputTag("pfIsolatedElectronsEI"),
653  jets = cms.InputTag("ak4PFJetsCHS"),
654  mets = cms.VInputTag("caloMet", "tcMet", "pfMet"),
655  pvs = cms.InputTag("offlinePrimaryVertices")
656 
657  ),
658  ## [optional] : when omitted the verbosity level is set to STANDARD
659  monitoring = cms.PSet(
660  verbosity = cms.string("DEBUG")
661  ),
662  ## [optional] : when omitted all monitoring plots for primary vertices
663  ## will be filled w/o extras
664  pvExtras = cms.PSet(
665  ## when omitted electron plots will be filled w/o additional pre-
666  ## selection of the primary vertex candidates
667  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
668  ),
669  ## [optional] : when omitted all monitoring plots for electrons
670  ## will be filled w/o extras
671  elecExtras = cms.PSet(
672  ## when omitted electron plots will be filled w/o cut on electronId
673  #electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),
674  ## when omitted electron plots will be filled w/o additional pre-
675  ## selection of the electron candidates
676  select = cms.string("pt>20 & abs(eta)<2.5"),
677  ## when omitted isolated electron multiplicity plot will be equi-
678  ## valent to inclusive electron multiplicity plot
679  isolation = cms.string(ElelooseIsoCut),
680  ),
681  ## [optional] : when omitted all monitoring plots for jets
682  ## will be filled w/o extras
683  jetExtras = cms.PSet(
684  ## when omitted monitor plots for pt will be filled from uncorrected
685  ## jets
686  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
687  ## when omitted monitor plots will be filled w/o additional cut on
688  ## jetID
689  #jetID = cms.PSet(
690  #label = cms.InputTag("ak5JetID"),
691  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
692  # ),
693  ## when omitted no extra selection will be applied on jets before
694  ## filling the monitor histograms; if jetCorrector is present the
695  ## selection will be applied to corrected jets
696  select = cms.string("pt>30 & abs(eta)<2.5 "),
697  ## when omitted monitor histograms for b-tagging will not be filled
698  jetBTaggers = cms.PSet(
699  cvsVertex = cms.PSet(
700  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
701  workingPoint = cms.double(0.970)
702  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
703  )
704  ),
705  ),
706  ## [optional] : when omitted no mass window will be applied
707  ## for the W mass before filling the event monitoring plots
708  massExtras = cms.PSet(
709  lowerEdge = cms.double( 70.),
710  upperEdge = cms.double(110.)
711  ),
712  ## [optional] : when omitted the monitoring plots for triggering
713  ## will be empty
714  #triggerExtras = cms.PSet(
715  # src = cms.InputTag("TriggerResults","","HLT"),
716  # paths = cms.vstring([ 'HLT_Ele15_LW_L1R:HLT_QuadJetU15'])
717  #)
718  ),
719  ## ------------------------------------------------------
720  ## PRESELECTION
721 
726  preselection = cms.PSet(
727  ## [optional] : when omitted no preselection is applied
728  #trigger = cms.PSet(
729  # src = cms.InputTag("TriggerResults","","HLT"),
730  # select = cms.vstring(['HLT_Ele15_SW_CaloEleId_L1R'])
731  #),
732  ## [optional] : when omitted no preselection is applied
733  vertex = cms.PSet(
734  src = cms.InputTag("offlinePrimaryVertices"),
735  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
736  )
737  ),
738  ## ------------------------------------------------------
739  ## SELECTION
740 
746  selection = cms.VPSet(
747  cms.PSet(
748  label = cms.string("elecs:step0"),
749  src = cms.InputTag("pfIsolatedElectronsEI"),
750  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),
751  min = cms.int32(1),
752  max = cms.int32(1),
753  ),
754  cms.PSet(
755  label = cms.string("jets/pf:step1"),
756  src = cms.InputTag("ak4PFJetsCHS"),
757  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
758  select = cms.string("pt>30 & abs(eta)<2.5 "),
759  #jetID = cms.PSet(
760  #label = cms.InputTag("ak5JetID"),
761  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
762 # ),
763  min = cms.int32(1),
764  ),
765  cms.PSet(
766  label = cms.string("jets/pf:step2"),
767  src = cms.InputTag("ak4PFJetsCHS"),
768  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
769  select = cms.string("pt>30 & abs(eta)<2.5 "),
770  #jetID = cms.PSet(
771  #label = cms.InputTag("ak5JetID"),
772  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
773  # ),
774  min = cms.int32(2),
775  ),
776  cms.PSet(
777  label = cms.string("jets/pf:step3"),
778  src = cms.InputTag("ak4PFJetsCHS"),
779  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
780  select = cms.string("pt>30 & abs(eta)<2.5 "),
781  #jetID = cms.PSet(
782  #label = cms.InputTag("ak5JetID"),
783  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
784  # ),
785  min = cms.int32(3),
786  ),
787  cms.PSet(
788  label = cms.string("jets/pf:step4"),
789  src = cms.InputTag("ak4PFJetsCHS"),
790  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
791  select = cms.string("pt>30 & abs(eta)<2.5 "),
792  #jetID = cms.PSet(
793  #label = cms.InputTag("ak5JetID"),
794  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
795  # ),
796  min = cms.int32(4),
797  ),
798  )
799 )