CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
topDiLeptonOfflineDQM_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 ElelooseIsoCut = "(gsfElectronRef.pfIsolationVariables.sumChargedHadronPt + max(0., gsfElectronRef.pfIsolationVariables.sumNeutralHadronEt + gsfElectronRef.pfIsolationVariables.sumPhotonEt - 0.5 * gsfElectronRef.pfIsolationVariables.sumPUPt) ) / gsfElectronRef.pt < 0.15"
6 EletightIsoCut = "(gsfElectronRef.pfIsolationVariables.sumChargedHadronPt + max(0., gsfElectronRef.pfIsolationVariables.sumNeutralHadronEt + gsfElectronRef.pfIsolationVariables.sumPhotonEt - 0.5 * gsfElectronRef.pfIsolationVariables.sumPUPt) ) / gsfElectronRef.pt < 0.1"
7 
8 
9 topDiLeptonOfflineDQM = cms.EDAnalyzer("TopDiLeptonOfflineDQM",
10  ## ------------------------------------------------------
11  ## SETUP
12  ##
13  ## configuration of the MonitoringEnsemble(s)
14  ## [mandatory] : optional PSets may be omitted
15  ##
16  setup = cms.PSet(
17  ## sub-directory to write the monitor histograms to
18  ## [mandatory] : should not be changed w/o explicit
19  ## communication to TopCom!
20  directory = cms.string("Physics/Top/TopDiLeptonDQM/"),
21 
22  ## [mandatory]
23  sources = cms.PSet(
24  muons = cms.InputTag("pfIsolatedMuonsEI"),
25  elecs = cms.InputTag("pfIsolatedElectronsEI"),
26  jets = cms.InputTag("ak4PFJetsCHS"),
27  mets = cms.VInputTag("caloMet", "tcMet", "pfMet")
28  ),
29  ## [optional] : when omitted the verbosity level is set to STANDARD
30  monitoring = cms.PSet(
31  verbosity = cms.string("DEBUG")
32  ),
33  ## [optional] : when omitted all monitoring plots for electrons
34  ## will be filled w/o extras
35  elecExtras = cms.PSet(
36  ## when omitted electron plots will be filled w/o cut on electronId
37  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),
38  ## when omitted electron plots will be filled w/o additional pre-
39  ## selection of the electron candidates
40  select = cms.string("pt>20. && abs(eta)<2.5"),
41  ## when omitted isolated electron multiplicity plot will be equi-
42  ## valent to inclusive electron multiplicity plot
43  isolation = cms.string(ElelooseIsoCut),
44  ),
45  ## [optional] : when omitted all monitoring plots for muons
46  ## will be filled w/o extras
47  muonExtras = cms.PSet(
48  ## when omitted muon plots will be filled w/o additional pre-
49  ## selection of the muon candidates
50  select = cms.string(looseMuonCut + " && muonRef.pt > 10. && abs(muonRef.eta)<2.4"),
51  ## when omitted isolated muon multiplicity plot will be equi-
52  ## valent to inclusive muon multiplicity plot
53  isolation = cms.string(looseIsoCut),
54  ),
55  ## [optional] : when omitted all monitoring plots for jets will
56  ## be filled from uncorrected jets
57  jetExtras = cms.PSet(
58  ## when omitted monitor plots for pt will be filled from uncorrected
59  ## jets
60  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
61  ## when omitted monitor plots will be filled w/o additional cut on
62  ## jetID
63 # jetID = cms.PSet(
64 # label = cms.InputTag("ak5JetID"),
65 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
66 # ),
67  ## when omitted no extra selection will be applied on jets before
68  ## filling the monitor histograms; if jetCorrector is present the
69  ## selection will be applied to corrected jets
70  select = cms.string("pt>30. & abs(eta)<2.4 "),
71  ),
72  ## [optional] : when omitted no mass window will be applied
73  ## for the same flavor lepton monitoring plots
74  massExtras = cms.PSet(
75  lowerEdge = cms.double( 76.0),
76  upperEdge = cms.double(106.0)
77  ),
78  ## [optional] : when omitted all monitoring plots for triggering
79  ## will be empty
80  #triggerExtras = cms.PSet(
81  #src = cms.InputTag("TriggerResults","","HLT"),
82  #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
83  #'HLT_Mu15:HLT_Ele15_SW_L1R',
84  #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
85  #'HLT_Ele15_SW_L1R:HLT_Mu9',
86  #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
87  #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
88  #'HLT_DoubleMu3:HLT_Mu9',
89  #'HLT_Mu9:HLT_DoubleMu3',
90  #'HLT_Mu15:HLT_DoubleMu3'])
91  #)
92  ),
93 
94  ## ------------------------------------------------------
95  ## PRESELECTION
96  ##
97  ## setup of the event preselection, which will not
98  ## be monitored
99  ## [mandatory] : but may be empty
100  ##
101  preselection = cms.PSet(
102  ## [optional] : when omitted no preselection is applied
103  #trigger = cms.PSet(
104  #src = cms.InputTag("TriggerResults","","HLT"),
105  #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
106  #),
107  ## [optional] : when omitted no preselection is applied
108  vertex = cms.PSet(
109  src = cms.InputTag("offlinePrimaryVertices"),
110  select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
111  )
112  ),
113 
114  ## ------------------------------------------------------
115  ## SELECTION
116  ##
117  ## monitor histrograms are filled after each selection
118  ## step, the selection is applied in the order defined
119  ## by this vector
120  ## [mandatory] : may be empty or contain an arbitrary
121  ## number of PSets as given below:
122  ##
123  selection = cms.VPSet(
124  #cms.PSet(
125  ### [mandatory] : 'jets' defines the objects to
126  ### select on, 'step0' labels the histograms;
127  ### instead of 'step0' you can choose any label
128  #label = cms.string("empty:step0")
129  #),
130  cms.PSet(
131  label = cms.string("muons:step0"),
132  src = cms.InputTag("pfIsolatedMuonsEI"),
133  select = cms.string(looseMuonCut +" && "+ looseIsoCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"), # CB what to do with iso? CD Added looseIso
134  min = cms.int32(2),
135  max = cms.int32(2),
136  ),
137  cms.PSet(
138  label = cms.string("jets/pf:step1"),
139  src = cms.InputTag("ak4PFJetsCHS"),
140  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
141 # select = cms.string("pt>30. & abs(eta)<2.4 & emEnergyFraction>0.01"),
142 # jetID = cms.PSet(
143 # label = cms.InputTag("ak5JetID"),
144 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
145 # ),
146  min = cms.int32(2),
147  #max = cms.int32(2),
148  )
149  )
150 )
151 
152 
153 
154 DiMuonDQM = cms.EDAnalyzer("TopDiLeptonOfflineDQM",
155  ## ------------------------------------------------------
156  ## SETUP
157  ##
158  ## configuration of the MonitoringEnsemble(s)
159  ## [mandatory] : optional PSets may be omitted
160  ##
161  setup = cms.PSet(
162  ## sub-directory to write the monitor histograms to
163  ## [mandatory] : should not be changed w/o explicit
164  ## communication to TopCom!
165  directory = cms.string("Physics/Top/TopDiMuonDQM/"),
166 
167  ## [mandatory]
168  sources = cms.PSet(
169  muons = cms.InputTag("pfIsolatedMuonsEI"),
170  elecs = cms.InputTag("pfIsolatedElectronsEI"),
171  jets = cms.InputTag("ak4PFJetsCHS"),
172  mets = cms.VInputTag("caloMet", "tcMet", "pfMet")
173  ),
174  ## [optional] : when omitted the verbosity level is set to STANDARD
175  monitoring = cms.PSet(
176  verbosity = cms.string("DEBUG")
177  ),
178  ## [optional] : when omitted all monitoring plots for electrons
179  ## will be filled w/o extras
180  elecExtras = cms.PSet(
181  ## when omitted electron plots will be filled w/o cut on electronId
182  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),
183  ## when omitted electron plots will be filled w/o additional pre-
184  ## selection of the electron candidates
185  select = cms.string("pt>20. && abs(eta)<2.5"),
186  ## when omitted isolated electron multiplicity plot will be equi-
187  ## valent to inclusive electron multiplicity plot
188  isolation = cms.string(ElelooseIsoCut),
189  ),
190  ## [optional] : when omitted all monitoring plots for muons
191  ## will be filled w/o extras
192  muonExtras = cms.PSet(
193  ## when omitted muon plots will be filled w/o additional pre-
194  ## selection of the muon candidates
195  select = cms.string(looseMuonCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"),
196  ## when omitted isolated muon multiplicity plot will be equi-
197  ## valent to inclusive muon multiplicity plot
198  isolation = cms.string(looseIsoCut),
199  ),
200  ## [optional] : when omitted all monitoring plots for jets will
201  ## be filled from uncorrected jets
202  jetExtras = cms.PSet(
203  ## when omitted monitor plots for pt will be filled from uncorrected
204  ## jets
205  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
206  ## when omitted monitor plots will be filled w/o additional cut on
207  ## jetID
208 # jetID = cms.PSet(
209 # label = cms.InputTag("ak5JetID"),
210 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
211 # ),
212  ## when omitted no extra selection will be applied on jets before
213  ## filling the monitor histograms; if jetCorrector is present the
214  ## selection will be applied to corrected jets
215  select = cms.string("pt>30. & abs(eta)<2.4 "),
216  ),
217  ## [optional] : when omitted no mass window will be applied
218  ## for the same flavor lepton monitoring plots
219  massExtras = cms.PSet(
220  lowerEdge = cms.double( 76.0),
221  upperEdge = cms.double(106.0)
222  ),
223  ## [optional] : when omitted all monitoring plots for triggering
224  ## will be empty
225  #triggerExtras = cms.PSet(
226  #src = cms.InputTag("TriggerResults","","HLT"),
227  #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
228  #'HLT_Mu15:HLT_Ele15_SW_L1R',
229  #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
230  #'HLT_Ele15_SW_L1R:HLT_Mu9',
231  #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
232  #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
233  #'HLT_DoubleMu3:HLT_Mu9',
234  #'HLT_Mu9:HLT_DoubleMu3',
235  #'HLT_Mu15:HLT_DoubleMu3'])
236  #)
237  ),
238 
239  ## ------------------------------------------------------
240  ## PRESELECTION
241  ##
242  ## setup of the event preselection, which will not
243  ## be monitored
244  ## [mandatory] : but may be empty
245  ##
246  preselection = cms.PSet(
247  ## [optional] : when omitted no preselection is applied
248  #trigger = cms.PSet(
249  #src = cms.InputTag("TriggerResults","","HLT"),
250  #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
251  #),
252  ## [optional] : when omitted no preselection is applied
253  vertex = cms.PSet(
254  src = cms.InputTag("offlinePrimaryVertices"),
255  select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
256  )
257  ),
258 
259  ## ------------------------------------------------------
260  ## SELECTION
261  ##
262  ## monitor histrograms are filled after each selection
263  ## step, the selection is applied in the order defined
264  ## by this vector
265  ## [mandatory] : may be empty or contain an arbitrary
266  ## number of PSets as given below:
267  ##
268  selection = cms.VPSet(
269  #cms.PSet(
270  ### [mandatory] : 'jets' defines the objects to
271  ### select on, 'step0' labels the histograms;
272  ### instead of 'step0' you can choose any label
273  #label = cms.string("empty:step0")
274  #),
275  cms.PSet(
276  label = cms.string("muons:step0"),
277  src = cms.InputTag("pfIsolatedMuonsEI"),
278  select = cms.string(looseMuonCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"), # CB what to do with iso?
279  min = cms.int32(2),
280  max = cms.int32(2),
281  ),
282  cms.PSet(
283  label = cms.string("jets/pf:step1"),
284  src = cms.InputTag("ak4PFJetsCHS"),
285  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
286  select = cms.string("pt>30. & abs(eta)<2.4 "),
287 # jetID = cms.PSet(
288 # label = cms.InputTag("ak5JetID"),
289 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
290 # ),
291  min = cms.int32(2),
292  #max = cms.int32(2),
293  ),
294  ),
295 )
296 
297 DiElectronDQM = cms.EDAnalyzer("TopDiLeptonOfflineDQM",
298  ## ------------------------------------------------------
299  ## SETUP
300  ##
301  ## configuration of the MonitoringEnsemble(s)
302  ## [mandatory] : optional PSets may be omitted
303  ##
304  setup = cms.PSet(
305  ## sub-directory to write the monitor histograms to
306  ## [mandatory] : should not be changed w/o explicit
307  ## communication to TopCom!
308  directory = cms.string("Physics/Top/TopDiElectronDQM/"),
309 
310  ## [mandatory]
311  sources = cms.PSet(
312  muons = cms.InputTag("pfIsolatedMuonsEI"),
313  elecs = cms.InputTag("pfIsolatedElectronsEI"),
314  jets = cms.InputTag("ak4PFJetsCHS"),
315  mets = cms.VInputTag("caloMet", "tcMet", "pfMet")
316  ),
317  ## [optional] : when omitted the verbosity level is set to STANDARD
318  monitoring = cms.PSet(
319  verbosity = cms.string("DEBUG")
320  ),
321  ## [optional] : when omitted all monitoring plots for electrons
322  ## will be filled w/o extras
323  elecExtras = cms.PSet(
324  ## when omitted electron plots will be filled w/o cut on electronId
325  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),
326  ## when omitted electron plots will be filled w/o additional pre-
327  ## selection of the electron candidates
328  select = cms.string("pt>20. && abs(eta)<2.5"),
329  ## when omitted isolated electron multiplicity plot will be equi-
330  ## valent to inclusive electron multiplicity plot
331  isolation = cms.string(ElelooseIsoCut),
332  ),
333  ## [optional] : when omitted all monitoring plots for muons
334  ## will be filled w/o extras
335  muonExtras = cms.PSet(
336  ## when omitted muon plots will be filled w/o additional pre-
337  ## selection of the muon candidates
338  select = cms.string(looseMuonCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"),
339  ## when omitted isolated muon multiplicity plot will be equi-
340  ## valent to inclusive muon multiplicity plot
341  isolation = cms.string(looseIsoCut),
342  ),
343  ## [optional] : when omitted all monitoring plots for jets will
344  ## be filled from uncorrected jets
345  jetExtras = cms.PSet(
346  ## when omitted monitor plots for pt will be filled from uncorrected
347  ## jets
348  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
349  ## when omitted monitor plots will be filled w/o additional cut on
350  ## jetID
351 # jetID = cms.PSet(
352 # label = cms.InputTag("ak5JetID"),
353 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
354 # ),
355  ## when omitted no extra selection will be applied on jets before
356  ## filling the monitor histograms; if jetCorrector is present the
357  ## selection will be applied to corrected jets
358  select = cms.string("pt>30. & abs(eta)<2.4 "),
359  ),
360  ## [optional] : when omitted no mass window will be applied
361  ## for the same flavor lepton monitoring plots
362  massExtras = cms.PSet(
363  lowerEdge = cms.double( 76.0),
364  upperEdge = cms.double(106.0)
365  ),
366  ## [optional] : when omitted all monitoring plots for triggering
367  ## will be empty
368  #triggerExtras = cms.PSet(
369  #src = cms.InputTag("TriggerResults","","HLT"),
370  #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
371  #'HLT_Mu15:HLT_Ele15_SW_L1R',
372  #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
373  #'HLT_Ele15_SW_L1R:HLT_Mu9',
374  #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
375  #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
376  #'HLT_DoubleMu3:HLT_Mu9',
377  #'HLT_Mu9:HLT_DoubleMu3',
378  #'HLT_Mu15:HLT_DoubleMu3'])
379  #)
380  ),
381 
382  ## ------------------------------------------------------
383  ## PRESELECTION
384  ##
385  ## setup of the event preselection, which will not
386  ## be monitored
387  ## [mandatory] : but may be empty
388  ##
389  preselection = cms.PSet(
390  ## [optional] : when omitted no preselection is applied
391  #trigger = cms.PSet(
392  #src = cms.InputTag("TriggerResults","","HLT"),
393  #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
394  #),
395  ## [optional] : when omitted no preselection is applied
396  vertex = cms.PSet(
397  src = cms.InputTag("offlinePrimaryVertices"),
398  select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
399  )
400  ),
401 
402  ## ------------------------------------------------------
403  ## SELECTION
404  ##
405  ## monitor histrograms are filled after each selection
406  ## step, the selection is applied in the order defined
407  ## by this vector
408  ## [mandatory] : may be empty or contain an arbitrary
409  ## number of PSets as given below:
410  ##
411  selection = cms.VPSet(
412  #cms.PSet(
413  ### [mandatory] : 'jets' defines the objects to
414  ### select on, 'step0' labels the histograms;
415  ### instead of 'step0' you can choose any label
416  #label = cms.string("empty:step0")
417  #),
418  cms.PSet(
419  label = cms.string("elecs:step0"),
420  src = cms.InputTag("pfIsolatedElectronsEI"),
421  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),
422  select = cms.string("pt>20 & abs(eta)<2.5 && gsfElectronRef.gsfTrack.hitPattern().numberOfHits('MISSING_INNER_HITS') <= 0 && " + ElelooseIsoCut),
423  #abs(gsfElectronRef.gsfTrack.d0)<0.04
424  min = cms.int32(2),
425  max = cms.int32(2),
426  ),
427  cms.PSet(
428  label = cms.string("jets/pf:step1"),
429  src = cms.InputTag("ak4PFJetsCHS"),
430  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
431  select = cms.string("pt>30. & abs(eta)<2.4"),
432 # jetID = cms.PSet(
433 # label = cms.InputTag("ak5JetID"),
434 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
435 # ),
436  min = cms.int32(2),
437  #max = cms.int32(2),
438  ),
439  ),
440 )
441 
442 ElecMuonDQM = cms.EDAnalyzer("TopDiLeptonOfflineDQM",
443  ## ------------------------------------------------------
444  ## SETUP
445  ##
446  ## configuration of the MonitoringEnsemble(s)
447  ## [mandatory] : optional PSets may be omitted
448  ##
449  setup = cms.PSet(
450  ## sub-directory to write the monitor histograms to
451  ## [mandatory] : should not be changed w/o explicit
452  ## communication to TopCom!
453  directory = cms.string("Physics/Top/TopElecMuonDQM/"),
454 
455  ## [mandatory]
456  sources = cms.PSet(
457  muons = cms.InputTag("pfIsolatedMuonsEI"),
458  elecs = cms.InputTag("pfIsolatedElectronsEI"),
459  jets = cms.InputTag("ak4PFJetsCHS"),
460  mets = cms.VInputTag("caloMet", "tcMet", "pfMet")
461  ),
462  ## [optional] : when omitted the verbosity level is set to STANDARD
463  monitoring = cms.PSet(
464  verbosity = cms.string("DEBUG")
465  ),
466  ## [optional] : when omitted all monitoring plots for electrons
467  ## will be filled w/o extras
468  elecExtras = cms.PSet(
469  ## when omitted electron plots will be filled w/o cut on electronId
470  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),
471  ## when omitted electron plots will be filled w/o additional pre-
472  ## selection of the electron candidates
473  select = cms.string("pt>10. && abs(eta)<2.4 && abs(gsfElectronRef.gsfTrack.d0)<1. && abs(gsfElectronRef.gsfTrack.dz)<20."),
474  ## when omitted isolated electron multiplicity plot will be equi-
475  ## valent to inclusive electron multiplicity plot
476  isolation = cms.string(ElelooseIsoCut),
477  ),
478  ## [optional] : when omitted all monitoring plots for muons
479  ## will be filled w/o extras
480  muonExtras = cms.PSet(
481  ## when omitted muon plots will be filled w/o additional pre-
482  ## selection of the muon candidates
483  select = cms.string(looseMuonCut + " && muonRef.pt > 10. && abs(muonRef.eta)<2.4"),
484  ## when omitted isolated muon multiplicity plot will be equi-
485  ## valent to inclusive muon multiplicity plot
486  isolation = cms.string(looseIsoCut),
487  ),
488  ## [optional] : when omitted all monitoring plots for jets will
489  ## be filled from uncorrected jets
490  jetExtras = cms.PSet(
491  ## when omitted monitor plots for pt will be filled from uncorrected
492  ## jets
493  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
494  ## when omitted monitor plots will be filled w/o additional cut on
495  ## jetID
496 # jetID = cms.PSet(
497 # label = cms.InputTag("ak5JetID"),
498 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
499 # ),
500  ## when omitted no extra selection will be applied on jets before
501  ## filling the monitor histograms; if jetCorrector is present the
502  ## selection will be applied to corrected jets
503  select = cms.string("pt>30. & abs(eta)<2.4 "),
504  ),
505  ## [optional] : when omitted no mass window will be applied
506  ## for the same flavor lepton monitoring plots
507  massExtras = cms.PSet(
508  lowerEdge = cms.double( 76.0),
509  upperEdge = cms.double(106.0)
510  ),
511  ## [optional] : when omitted all monitoring plots for triggering
512  ## will be empty
513  #triggerExtras = cms.PSet(
514  #src = cms.InputTag("TriggerResults","","HLT"),
515  #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
516  #'HLT_Mu15:HLT_Ele15_SW_L1R',
517  #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
518  #'HLT_Ele15_SW_L1R:HLT_Mu9',
519  #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
520  #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
521  #'HLT_DoubleMu3:HLT_Mu9',
522  #'HLT_Mu9:HLT_DoubleMu3',
523  #'HLT_Mu15:HLT_DoubleMu3'])
524  #)
525  ),
526 
527  ## ------------------------------------------------------
528  ## PRESELECTION
529  ##
530  ## setup of the event preselection, which will not
531  ## be monitored
532  ## [mandatory] : but may be empty
533  ##
534  preselection = cms.PSet(
535  ## [optional] : when omitted no preselection is applied
536  #trigger = cms.PSet(
537  #src = cms.InputTag("TriggerResults","","HLT"),
538  #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
539  #),
540  ## [optional] : when omitted no preselection is applied
541  vertex = cms.PSet(
542  src = cms.InputTag("offlinePrimaryVertices"),
543  select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
544  )
545  ),
546 
547  ## ------------------------------------------------------
548  ## SELECTION
549  ##
550  ## monitor histrograms are filled after each selection
551  ## step, the selection is applied in the order defined
552  ## by this vector
553  ## [mandatory] : may be empty or contain an arbitrary
554  ## number of PSets as given below:
555  ##
556  selection = cms.VPSet(
557  #cms.PSet(
558  ### [mandatory] : 'jets' defines the objects to
559  ### select on, 'step0' labels the histograms;
560  ### instead of 'step0' you can choose any label
561  #label = cms.string("empty:step0")
562  #),
563  cms.PSet(
564  label = cms.string("muons:step0"),
565  src = cms.InputTag("pfIsolatedMuonsEI"),
566  select = cms.string(looseMuonCut + " && " + looseIsoCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"), # CB what to do with iso? CD Added looseIsoCut
567  min = cms.int32(1),
568  max = cms.int32(1),
569  ),
570  cms.PSet(
571  label = cms.string("elecs:step1"),
572  src = cms.InputTag("pfIsolatedElectronsEI"),
573  ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),
574  select = cms.string("pt>20 & abs(eta)<2.5 && "+ElelooseIsoCut),
575  min = cms.int32(1),
576  max = cms.int32(1),
577  ),
578  cms.PSet(
579  label = cms.string("jets/pf:step2"),
580  src = cms.InputTag("ak4PFJetsCHS"),
581  jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
582  select = cms.string("pt>30. & abs(eta)<2.4 "),
583 # jetID = cms.PSet(
584 # label = cms.InputTag("ak5JetID"),
585 # select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
586 # ),
587  min = cms.int32(2),
588  #max = cms.int32(2),
589  ),
590  ),
591 )
592