CMS 3D CMS Logo

topSingleLeptonDQM_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 #Primary vertex selection
4 PVCut = "abs(z) < 24. & position.rho < 2. & ndof > 4 & !isFake"
5 
6 #Jet selection
7 looseJetCut = "(chargedHadronEnergyFraction()>0 && chargedMultiplicity()>0 && chargedEmEnergyFraction()<0.99 && neutralHadronEnergyFraction()<0.99 && neutralEmEnergyFraction()<0.99 && (chargedMultiplicity()+neutralMultiplicity())>1) && abs(eta)<=2.4 "
8 
9 tightJetCut = "(chargedHadronEnergyFraction()>0 && chargedMultiplicity()>0 && chargedEmEnergyFraction()<0.99 && neutralHadronEnergyFraction()<0.90 && neutralEmEnergyFraction()<0.90 && (chargedMultiplicity()+neutralMultiplicity())>1) && abs(eta)<=2.4 "
10 
11 #Loose muon selection
12 looseMuonCut = "(muonRef.isNonnull && (muonRef.isGlobalMuon || muonRef.isTrackerMuon) && muonRef.isPFMuon)"
13 looseIsoCut = "((muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.25)"
14 
15 #Medium muon selection. Also requires either good global muon or tight segment compatibility
16 mediumMuonCut = looseMuonCut + " muonRef.innerTrack.validFraction > 0.8"
17 
18 #Tight muon selection. Lacks distance to primary vertex variables, dz<0.5, dxy < 0.2. Now done at .cc
19 tightMuonCut = "muonRef.isNonnull && muonRef.isGlobalMuon && muonRef.isPFMuon && muonRef.globalTrack.normalizedChi2 < 10. && muonRef.globalTrack.hitPattern.numberOfValidMuonHits > 0 && " + \
20  "muonRef.numberOfMatchedStations > 1 && muonRef.innerTrack.hitPattern.numberOfValidPixelHits > 0 && muonRef.innerTrack.hitPattern.trackerLayersWithMeasurement > 5 "
21 tightIsoCut = "(muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.15"
22 
23 #Electron selections
24 looseEleCut = "(( gsfElectronRef.full5x5_sigmaIetaIeta() < 0.011 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00477 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.222 && gsfElectronRef.hadronicOverEm() < 0.298 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.241 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) < 1.479) || (gsfElectronRef.full5x5_sigmaIetaIeta() < 0.0314 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00868 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.213 && gsfElectronRef.hadronicOverEm() < 0.101 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.14 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) > 1.479))"
25 
26 tightEleCut = "((gsfElectronRef.full5x5_sigmaIetaIeta() < 0.00998 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00308 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.0816 && gsfElectronRef.hadronicOverEm() < 0.0414 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.0129 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) < 1.479) || (gsfElectronRef.full5x5_sigmaIetaIeta() < 0.0292 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00605 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.0394 && gsfElectronRef.hadronicOverEm() < 0.0641 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.0129 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) > 1.479))"
27 
28 
29 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
30 topSingleLeptonDQM = DQMEDAnalyzer('TopSingleLeptonDQM',
31  ## ------------------------------------------------------
32  ## SETUP
33 
37  setup = cms.PSet(
38  ## sub-directory to write the monitor histograms to
39  ## [mandatory] : should not be changed w/o explicit
40  ## communication to TopCom!
41  directory = cms.string("Physics/Top/TopSingleLeptonDQM/"),
42  ## [mandatory]
43  sources = cms.PSet(
44  muons = cms.InputTag("pfIsolatedMuonsEI"),
45  elecs = cms.InputTag("pfIsolatedElectronsEI"),
46  jets = cms.InputTag("ak4PFJetsCHS"),
47  mets = cms.VInputTag("pfMet"),
48  pvs = cms.InputTag("offlinePrimaryVertices")
49  ),
50  ## [optional] : when omitted the verbosity level is set to STANDARD
51  monitoring = cms.PSet(
52  verbosity = cms.string("DEBUG")
53  ),
54  ## [optional] : when omitted all monitoring plots for primary vertices
55  ## will be filled w/o extras
56  pvExtras = cms.PSet(
57  ## when omitted electron plots will be filled w/o additional pre-
58  ## selection of the primary vertex candidates
59  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
60  ),
61  ## [optional] : when omitted all monitoring plots for electrons
62  ## will be filled w/o extras
63  elecExtras = cms.PSet(
64  ## when omitted electron plots will be filled w/o cut on electronId
65  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),
66  ## when omitted electron plots will be filled w/o additional pre-
67  ## selection of the electron candidates
68  select = cms.string("pt>15 & abs(eta)<2.5 & abs(gsfTrack.d0)<1 & abs(gsfTrack.dz)<20"),
69  ## when omitted isolated electron multiplicity plot will be equi-
70  ## valent to inclusive electron multiplicity plot
71  #isolation = cms.string(ElelooseIsoCut),
72  rho = cms.InputTag("fixedGridRhoFastjetAll"),
73  ),
74  ## [optional] : when omitted all monitoring plots for muons
75  ## will be filled w/o extras
76  muonExtras = cms.PSet(
77  ## when omitted muon plots will be filled w/o additional pre-
78  ## selection of the muon candidates
79  select = cms.string(looseMuonCut + " && pt>10 & abs(eta)<2.4"),
80  ## when omitted isolated muon multiplicity plot will be equi-
81  ## valent to inclusive muon multiplicity plot
82  isolation = cms.string(looseIsoCut),
83  ),
84  ## [optional] : when omitted all monitoring plots for jets will
85  ## be filled from uncorrected jets
86  jetExtras = cms.PSet(
87  ## when omitted monitor plots for pt will be filled from uncorrected
88  ## jets
89  ## jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
90  ## when omitted monitor plots will be filled w/o additional cut on
91  ## jetID
92  #jetID = cms.PSet(
93  #label = cms.InputTag("ak5JetID"),
94  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
95 # ),
96  ## when omitted no extra selection will be applied on jets before
97  ## filling the monitor histograms; if jetCorrector is present the
98  ## selection will be applied to corrected jets
99  select = cms.string("pt>30 & abs(eta)<2.4 "),
100  ),
101  ## [optional] : when omitted no mass window will be applied
102  ## for the W mass befor filling the event monitoring plots
103  massExtras = cms.PSet(
104  lowerEdge = cms.double( 70.),
105  upperEdge = cms.double(110.)
106  ),
107  ## [optional] : when omitted the monitoring plots for triggering
108  ## will be empty
109  triggerExtras = cms.PSet(
110  src = cms.InputTag("TriggerResults","","HLT"),
111  paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
112  'HLT_Mu5:HLT_QuadJet15U',
113  'HLT_Mu7:HLT_QuadJet15U',
114  'HLT_Mu9:HLT_QuadJet15U'])
115  )
116  ),
117  ## ------------------------------------------------------
118  ## PRESELECTION
119 
124  preselection = cms.PSet(
125  ## [optional] : when omitted no preselection is applied
126  #trigger = cms.PSet(
127  # src = cms.InputTag("TriggerResults","","HLT"),
128  # select = cms.vstring(['HLT_Mu11', 'HLT_Ele15_LW_L1R', 'HLT_QuadJet30'])
129  #),
130  ## [optional] : when omitted no preselection is applied
131  vertex = cms.PSet(
132  src = cms.InputTag("offlinePrimaryVertices"),
133  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
134  )
135  ),
136  ## ------------------------------------------------------
137  ## SELECTION
138 
145  selection = cms.VPSet(
146  cms.PSet(
147  label = cms.string("jets/pf:step0"),
148  src = cms.InputTag("ak4PFJetsCHS"),
149  select = cms.string("pt>30 & abs(eta)<2.4 "),
150  #jetID = cms.PSet(
151  #label = cms.InputTag("ak5JetID"),
152  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
153  # ),
154  min = cms.int32(2),
155  ),
156  )
157 )
158 
159 topSingleMuonLooseDQM = DQMEDAnalyzer('TopSingleLeptonDQM',
160  ## ------------------------------------------------------
161  ## SETUP
162 
166  setup = cms.PSet(
167  ## sub-directory to write the monitor histograms to
168  ## [mandatory] : should not be changed w/o explicit
169  ## communication to TopCom!
170  directory = cms.string("Physics/Top/TopSingleMuonLooseDQM/"),
171  ## [mandatory]
172  sources = cms.PSet(
173  muons = cms.InputTag("pfIsolatedMuonsEI"),
174  elecs = cms.InputTag("pfIsolatedElectronsEI"),
175  jets = cms.InputTag("ak4PFJetsCHS"),
176  mets = cms.VInputTag("pfMet"),
177  pvs = cms.InputTag("offlinePrimaryVertices")
178  ),
179  ## [optional] : when omitted the verbosity level is set to STANDARD
180  monitoring = cms.PSet(
181  verbosity = cms.string("DEBUG")
182  ),
183  pvExtras = cms.PSet(
184  ## when omitted electron plots will be filled w/o additional pre-
185  ## selection of the primary vertex candidates
186  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
187  ),
188  ## [optional] : when omitted all monitoring plots for muons
189  ## will be filled w/o extras
190  muonExtras = cms.PSet(
191  ## when omitted muon plots will be filled w/o additional pre-
192  ## selection of the muon candidates
193  select = cms.string(looseMuonCut + " && pt > 10 & abs(eta)<2.4"),
194  ## when omitted isolated muon multiplicity plot will be equi-
195  ## valent to inclusive muon multiplicity plot
196  isolation = cms.string(looseIsoCut)
197  ),
198  ## [optional] : when omitted all monitoring plots for jets
199  ## will be filled w/o extras
200  jetExtras = cms.PSet(
201  ## when omitted monitor plots for pt will be filled from uncorrected
202  ## jets
203  ## jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
204  ## when omitted monitor plots will be filled w/o additional cut on
205  ## jetID
206  #jetID = cms.PSet(
207  #label = cms.InputTag("ak5JetID"),
208  #select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
209  # ),
210  ## when omitted no extra selection will be applied on jets before
211  ## filling the monitor histograms; if jetCorrector is present the
212  ## selection will be applied to corrected jets
213  select = cms.string("pt>30 & abs(eta)<2.4"),
214  ## when omitted monitor histograms for b-tagging will not be filled
215  jetBTaggers = cms.PSet(
216  cvsVertex = cms.PSet(
217  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
218  workingPoint = cms.double(0.890)
219  # CSV Medium from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
220  )
221  ),
222  ),
223  ## [optional] : when omitted no mass window will be applied
224  ## for the W mass befor filling the event monitoring plots
225  massExtras = cms.PSet(
226  lowerEdge = cms.double( 70.),
227  upperEdge = cms.double(110.)
228  ),
229  ## [optional] : when omitted the monitoring plots for triggering
230  ## will be empty
231  triggerExtras = cms.PSet(
232  src = cms.InputTag("TriggerResults","","HLT"),
233  paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
234  'HLT_Mu5:HLT_QuadJet15U',
235  'HLT_Mu7:HLT_QuadJet15U',
236  'HLT_Mu9:HLT_QuadJet15U',
237  'HLT_Mu11:HLT_QuadJet15U'])
238  )
239  ),
240  ## ------------------------------------------------------
241  ## PRESELECTION
242 
247  preselection = cms.PSet(
248  vertex = cms.PSet(
249  src = cms.InputTag("offlinePrimaryVertices"),
250  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
251  )
252  ),
253  ## ------------------------------------------------------
254  ## SELECTION
255 
261  selection = cms.VPSet(
262  cms.PSet(
263  label = cms.string("muons:step0"),
264  src = cms.InputTag("pfIsolatedMuonsEI"),
265  select = cms.string(looseMuonCut + looseIsoCut + " && pt>10 & abs(eta)<2.4"), # CB what about iso? CD Added looseIso
266  min = cms.int32(1),
267  ),
268  cms.PSet(
269  label = cms.string("jets/pf:step1"),
270  src = cms.InputTag("ak4PFJetsCHS"),
271  select = cms.string("pt>30 & abs(eta)<2.4 "),
272  min = cms.int32(1),
273  ),
274  cms.PSet(
275  label = cms.string("jets/pf:step2"),
276  src = cms.InputTag("ak4PFJetsCHS"),
277  select = cms.string("pt>30 & abs(eta)<2.4 "),
278  min = cms.int32(2),
279  ),
280  cms.PSet(
281  label = cms.string("jets/pf:step3"),
282  src = cms.InputTag("ak4PFJetsCHS"),
283  select = cms.string("pt>30 & abs(eta)<2.4 "),
284  min = cms.int32(3),
285  ),
286  cms.PSet(
287  label = cms.string("jets/pf:step4"),
288  src = cms.InputTag("pfMet"),
289  select = cms.string("pt>30"),
290  ),
291  )
292 )
293 topSingleMuonMediumDQM = DQMEDAnalyzer('TopSingleLeptonDQM',
294  ## ------------------------------------------------------
295  ## SETUP
296 
300  setup = cms.PSet(
301  directory = cms.string("Physics/Top/TopSingleMuonMediumDQM/"),
302  sources = cms.PSet(
303  muons = cms.InputTag("pfIsolatedMuonsEI"),
304  elecs = cms.InputTag("pfIsolatedElectronsEI"),
305  jets = cms.InputTag("ak4PFJetsCHS"),
306  mets = cms.VInputTag("pfMet"),
307  pvs = cms.InputTag("offlinePrimaryVertices")
308 
309  ),
310  monitoring = cms.PSet(
311  verbosity = cms.string("DEBUG")
312  ),
313  pvExtras = cms.PSet(
314  select = cms.string(PVCut)
315  ),
316  elecExtras = cms.PSet(
317  select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660)"),
318  rho = cms.InputTag("fixedGridRhoFastjetAll"),
319  ),
320  muonExtras = cms.PSet(
321  select = cms.string(looseMuonCut + " && pt>20 & abs(eta)<2.1"),
322  isolation = cms.string(looseIsoCut)
323  ),
324  jetExtras = cms.PSet(
325  jetCorrector = cms.InputTag("ak4PFCHSL1FastL2L3Corrector"), #Use pak4PFCHSL1FastL2L3Residual for data!!!
326  select = cms.string("pt>30 & abs(eta)< 2.4"),
327  jetBTaggers = cms.PSet(
328  cvsVertex = cms.PSet(
329  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
330  workingPoint = cms.double(0.890)
331  # CSV Medium from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
332  )
333  ),
334  ),
335  massExtras = cms.PSet(
336  lowerEdge = cms.double( 70.),
337  upperEdge = cms.double(110.)
338  ),
339  ),
340 
341  preselection = cms.PSet(
342  vertex = cms.PSet(
343  src = cms.InputTag("offlinePrimaryVertices"),
344  select = cms.string(PVCut)
345  )
346  ),
347 
348  selection = cms.VPSet(
349  cms.PSet(
350  label = cms.string("muons:step0"),
351  src = cms.InputTag("pfIsolatedMuonsEI"),
352  select = cms.string(looseMuonCut + " && pt>20 & abs(eta)<2.1"),
353  min = cms.int32(1),
354  ),
355  cms.PSet(
356  label = cms.string("jets/pf:step1"),
357  src = cms.InputTag("ak4PFJetsCHS"),
358  select = cms.string("pt>30 & abs(eta)<2.4"),
359  min = cms.int32(4),
360  ),
361  cms.PSet(
362  label = cms.string("met:step2"),
363  src = cms.InputTag("pfMet"),
364  select = cms.string("pt>30"),
365  ),
366  )
367 )
368 
369 topSingleElectronLooseDQM = DQMEDAnalyzer('TopSingleLeptonDQM',
370  ## ------------------------------------------------------
371  ## SETUP
372 
376  setup = cms.PSet(
377  ## sub-directory to write the monitor histograms to
378  ## [mandatory] : should not be changed w/o explicit
379  ## communication to TopCom!
380  directory = cms.string("Physics/Top/TopSingleElectronLooseDQM/"),
381  ## [mandatory]
382  sources = cms.PSet(
383  muons = cms.InputTag("pfIsolatedMuonsEI"),
384  elecs = cms.InputTag("pfIsolatedElectronsEI"),
385  jets = cms.InputTag("ak4PFJetsCHS"),
386  mets = cms.VInputTag("pfMet"),
387  pvs = cms.InputTag("offlinePrimaryVertices")
388 
389  ),
390  ## [optional] : when omitted the verbosity level is set to STANDARD
391  monitoring = cms.PSet(
392  verbosity = cms.string("DEBUG")
393  ),
394  ## [optional] : when omitted all monitoring plots for primary vertices
395  ## will be filled w/o extras
396  pvExtras = cms.PSet(
397  ## when omitted electron plots will be filled w/o additional pre-
398  ## selection of the primary vertex candidates
399  select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
400  ),
401  ## [optional] : when omitted all monitoring plots for electrons
402  ## will be filled w/o extras
403  elecExtras = cms.PSet(
404  ## when omitted electron plots will be filled w/o additional pre-
405  ## selection of the electron candidates
406  select = cms.string("pt>20 & abs(eta)<2.5"),
407  ),
408  ## [optional] : when omitted all monitoring plots for jets
409  ## will be filled w/o extras
410  jetExtras = cms.PSet(
411  select = cms.string("pt>30 & abs(eta)<2.4 "),
412  ## when omitted monitor histograms for b-tagging will not be filled
413  jetBTaggers = cms.PSet(
414  cvsVertex = cms.PSet(
415  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
416  workingPoint = cms.double(0.970)
417  # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
418  )
419  ),
420  ),
421  ## [optional] : when omitted no mass window will be applied
422  ## for the W mass before filling the event monitoring plots
423  massExtras = cms.PSet(
424  lowerEdge = cms.double( 70.),
425  upperEdge = cms.double(110.)
426  ),
427  ## [optional] : when omitted the monitoring plots for triggering
428  ## will be empty
429  triggerExtras = cms.PSet(
430  src = cms.InputTag("TriggerResults","","HLT"),
431  paths = cms.vstring(['HLT_Ele15_LW_L1R:HLT_QuadJetU15'])
432  )
433  ),
434  ## ------------------------------------------------------
435  ## PRESELECTION
436 
441  preselection = cms.PSet(
442  vertex = cms.PSet(
443  src = cms.InputTag("offlinePrimaryVertices"),
444  select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
445  )
446  ),
447  ## ------------------------------------------------------
448  ## SELECTION
449 
453  selection = cms.VPSet(
454  cms.PSet(
455  label = cms.string("elecs:step0"),
456  src = cms.InputTag("pfIsolatedElectronsEI"),
457  select = cms.string("pt>20 & abs(eta)<2.5 "),
458  min = cms.int32(1),
459  ),
460  cms.PSet(
461  label = cms.string("jets/pf:step1"),
462  src = cms.InputTag("ak4PFJetsCHS"),
463  select = cms.string("pt>30 & abs(eta)<2.4 "),
464  min = cms.int32(1),
465  ),
466  cms.PSet(
467  label = cms.string("jets/pf:step2"),
468  src = cms.InputTag("ak4PFJetsCHS"),
469  select = cms.string("pt>30 & abs(eta)<2.4 "),
470  min = cms.int32(2),
471  ),
472  cms.PSet(
473  label = cms.string("jets/pf:step3"),
474  src = cms.InputTag("ak4PFJetsCHS"),
475  select = cms.string("pt>30 & abs(eta)<2.4 "),
476  min = cms.int32(3),
477  ),
478  cms.PSet(
479  label = cms.string("jets/pf:step4"),
480  src = cms.InputTag("ak4PFJetsCHS"),
481  select = cms.string("pt>30 & abs(eta)<2.4 "),
482  min = cms.int32(4),
483  ),
484  )
485 )
486 
487 topSingleElectronMediumDQM = DQMEDAnalyzer('TopSingleLeptonDQM',
488  ## ------------------------------------------------------
489  ## SETUP
490 
494  setup = cms.PSet(
495  directory = cms.string("Physics/Top/TopSingleElectronMediumDQM/"),
496  sources = cms.PSet(
497  muons = cms.InputTag("pfIsolatedMuonsEI"),
498  elecs = cms.InputTag("pfIsolatedElectronsEI"),
499  jets = cms.InputTag("ak4PFJetsCHS"),
500  mets = cms.VInputTag("pfMet"),
501  pvs = cms.InputTag("offlinePrimaryVertices")
502 
503  ),
504  monitoring = cms.PSet(
505  verbosity = cms.string("DEBUG")
506  ),
507  pvExtras = cms.PSet(
508  select = cms.string(PVCut)
509  ),
510  elecExtras = cms.PSet(
511  select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660)"),
512  rho = cms.InputTag("fixedGridRhoFastjetAll"),
513  ),
514  muonExtras = cms.PSet(
515  select = cms.string(looseMuonCut + " & pt>20 & abs(eta)<2.1"),
516  isolation = cms.string(looseIsoCut),
517  ),
518  jetExtras = cms.PSet(
519  jetCorrector = cms.InputTag("ak4PFCHSL1FastL2L3Corrector"), #Use pak4PFCHSL1FastL2L3Residual for data!!!
520  select = cms.string("pt>30 & abs(eta)<2.4"),
521  jetBTaggers = cms.PSet(
522  cvsVertex = cms.PSet(
523  label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
524  workingPoint = cms.double(0.890)
525  # CSV Medium from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
526  )
527  ),
528  ),
529  massExtras = cms.PSet(
530  lowerEdge = cms.double( 70.),
531  upperEdge = cms.double(110.)
532  ),
533  ),
534  preselection = cms.PSet(
535  vertex = cms.PSet(
536  src = cms.InputTag("offlinePrimaryVertices"),
537  select = cms.string(PVCut)
538  )
539  ),
540  selection = cms.VPSet(
541  cms.PSet(
542  label = cms.string("elecs:step0"),
543  src = cms.InputTag("pfIsolatedElectronsEI"),
544  select = cms.string("pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660) &&" + tightEleCut),
545  # select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfElectronRef.gsfTrack.d0)<0.02 & gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 & (abs(gsfElectronRef.superCluster.eta) <= 1.4442 || abs(gsfElectronRef.superCluster.eta) >= 1.5660) & " + EletightIsoCut),
546  min = cms.int32(1),
547  ),
548  cms.PSet(
549  label = cms.string("jets/pf:step1"),
550  src = cms.InputTag("ak4PFJetsCHS"),
551  select = cms.string("pt>30 & abs(eta)<2.4"),
552  min = cms.int32(4),
553  ),
554  cms.PSet(
555  label = cms.string("met:step2"),
556  src = cms.InputTag("pfMet"),
557  select = cms.string("pt>30"),
558  ),
559  )
560 )
561