CMS 3D CMS Logo

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