Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:55:39

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 looseMuonCut = "muonRef.isNonnull && (muonRef.isGlobalMuon || muonRef.isTrackerMuon) && muonRef.isPFMuon"
0004 looseIsoCut  = "(muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.2"
0005 ElelooseIsoCut  = "(gsfElectronRef.pfIsolationVariables.sumChargedHadronPt + max(0., gsfElectronRef.pfIsolationVariables.sumNeutralHadronEt + gsfElectronRef.pfIsolationVariables.sumPhotonEt - 0.5 * gsfElectronRef.pfIsolationVariables.sumPUPt) ) / gsfElectronRef.pt < 0.15"
0006 EletightIsoCut  = "(gsfElectronRef.pfIsolationVariables.sumChargedHadronPt + max(0., gsfElectronRef.pfIsolationVariables.sumNeutralHadronEt + gsfElectronRef.pfIsolationVariables.sumPhotonEt - 0.5 * gsfElectronRef.pfIsolationVariables.sumPUPt) ) / gsfElectronRef.pt < 0.1"
0007 
0008 
0009 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
0010 topDiLeptonOfflineDQM = DQMEDAnalyzer('TopDiLeptonOfflineDQM',
0011   ## ------------------------------------------------------
0012   ## SETUP
0013   ##
0014   ## configuration of the MonitoringEnsemble(s)
0015   ## [mandatory] : optional PSets may be omitted
0016   ##
0017   setup = cms.PSet(
0018     ## sub-directory to write the monitor histograms to
0019     ## [mandatory] : should not be changed w/o explicit 
0020     ## communication to TopCom!
0021     directory = cms.string("Physics/Top/TopDiLeptonDQM/"),
0022 
0023     ## [mandatory]
0024     sources = cms.PSet(
0025       muons = cms.InputTag("pfIsolatedMuonsEI"),
0026       elecs = cms.InputTag("pfIsolatedElectronsEI"),
0027       jets  = cms.InputTag("ak4PFJetsCHS"),
0028       mets  = cms.VInputTag("caloMet", "tcMet", "pfMet")
0029     ),
0030     ## [optional] : when omitted the verbosity level is set to STANDARD
0031     monitoring = cms.PSet(
0032       verbosity = cms.string("DEBUG")
0033     ),
0034     ## [optional] : when omitted all monitoring plots for electrons
0035     ## will be filled w/o extras
0036     elecExtras = cms.PSet(
0037       ## when omitted electron plots will be filled w/o cut on electronId
0038       ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),      
0039       ## when omitted electron plots will be filled w/o additional pre-
0040       ## selection of the electron candidates                                                 
0041       select = cms.string("pt>20. && abs(eta)<2.5"),
0042       ## when omitted isolated electron multiplicity plot will be equi-
0043       ## valent to inclusive electron multiplicity plot                                                
0044       isolation = cms.string(ElelooseIsoCut),
0045     ),
0046     ## [optional] : when omitted all monitoring plots for muons
0047     ## will be filled w/o extras
0048     muonExtras = cms.PSet(
0049       ## when omitted muon plots will be filled w/o additional pre-
0050       ## selection of the muon candidates   
0051       select = cms.string(looseMuonCut + " && muonRef.pt > 10. && abs(muonRef.eta)<2.4"),
0052       ## when omitted isolated muon multiplicity plot will be equi-
0053       ## valent to inclusive muon multiplicity plot                                                  
0054       isolation = cms.string(looseIsoCut),
0055     ),
0056     ## [optional] : when omitted all monitoring plots for jets will
0057     ## be filled from uncorrected jets
0058     jetExtras = cms.PSet(
0059       ## when omitted monitor plots for pt will be filled from uncorrected
0060       ## jets    
0061       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0062       ## when omitted monitor plots will be filled w/o additional cut on
0063       ## jetID                                                   
0064 #      jetID  = cms.PSet(
0065 #        label  = cms.InputTag("ak5JetID"),
0066 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0067 #      ),
0068       ## when omitted no extra selection will be applied on jets before
0069       ## filling the monitor histograms; if jetCorrector is present the
0070       ## selection will be applied to corrected jets
0071       select = cms.string("pt>30. & abs(eta)<2.4 "), 
0072     ),
0073     ## [optional] : when omitted no mass window will be applied
0074     ## for the same flavor lepton monitoring plots 
0075     massExtras = cms.PSet(
0076       lowerEdge = cms.double( 76.0),
0077       upperEdge = cms.double(106.0)
0078     ),
0079     ## [optional] : when omitted all monitoring plots for triggering
0080     ## will be empty
0081     #triggerExtras = cms.PSet(
0082         #src = cms.InputTag("TriggerResults","","HLT"),
0083         #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
0084                                     #'HLT_Mu15:HLT_Ele15_SW_L1R',
0085                                     #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
0086                                     #'HLT_Ele15_SW_L1R:HLT_Mu9',
0087                                     #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
0088         #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
0089                                     #'HLT_DoubleMu3:HLT_Mu9',
0090                                     #'HLT_Mu9:HLT_DoubleMu3',
0091                                     #'HLT_Mu15:HLT_DoubleMu3'])
0092     #)    
0093   ),
0094                                   
0095   ## ------------------------------------------------------
0096   ## PRESELECTION
0097   ##
0098   ## setup of the event preselection, which will not
0099   ## be monitored
0100   ## [mandatory] : but may be empty
0101   ##
0102   preselection = cms.PSet(
0103     ## [optional] : when omitted no preselection is applied
0104     #trigger = cms.PSet(
0105         #src    = cms.InputTag("TriggerResults","","HLT"),
0106         #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
0107     #),
0108     ## [optional] : when omitted no preselection is applied
0109     vertex = cms.PSet(
0110       src    = cms.InputTag("offlinePrimaryVertices"),
0111       select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
0112     )
0113   ),
0114   
0115   ## ------------------------------------------------------    
0116   ## SELECTION
0117   ##
0118   ## monitor histrograms are filled after each selection
0119   ## step, the selection is applied in the order defined
0120   ## by this vector
0121   ## [mandatory] : may be empty or contain an arbitrary
0122   ## number of PSets as given below:
0123   ##
0124   selection = cms.VPSet(
0125     #cms.PSet(
0126       ### [mandatory] : 'jets' defines the objects to
0127       ### select on, 'step0' labels the histograms;
0128       ### instead of 'step0' you can choose any label
0129       #label  = cms.string("empty:step0")
0130     #),
0131     cms.PSet(
0132       label  = cms.string("muons:step0"),
0133       src    = cms.InputTag("pfIsolatedMuonsEI"),
0134       select = cms.string(looseMuonCut +" && "+ looseIsoCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"), # CB what to do with iso? CD Added looseIso
0135       min    = cms.int32(2),
0136       max    = cms.int32(2),
0137     ),
0138     cms.PSet(
0139       label  = cms.string("jets/pf:step1"),
0140       src    = cms.InputTag("ak4PFJetsCHS"),
0141       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0142 #      select = cms.string("pt>30. & abs(eta)<2.4 & emEnergyFraction>0.01"),
0143 #      jetID  = cms.PSet(
0144 #        label  = cms.InputTag("ak5JetID"),
0145 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0146 #     ),
0147       min = cms.int32(2),
0148       #max = cms.int32(2),
0149     )
0150   )
0151 )
0152 
0153 
0154 
0155 DiMuonDQM = DQMEDAnalyzer('TopDiLeptonOfflineDQM',
0156   ## ------------------------------------------------------
0157   ## SETUP
0158   ##
0159   ## configuration of the MonitoringEnsemble(s)
0160   ## [mandatory] : optional PSets may be omitted
0161   ##
0162   setup = cms.PSet(
0163     ## sub-directory to write the monitor histograms to
0164     ## [mandatory] : should not be changed w/o explicit 
0165     ## communication to TopCom!
0166     directory = cms.string("Physics/Top/TopDiMuonDQM/"),
0167 
0168     ## [mandatory]
0169     sources = cms.PSet(
0170       muons = cms.InputTag("pfIsolatedMuonsEI"),
0171       elecs = cms.InputTag("pfIsolatedElectronsEI"),
0172       jets  = cms.InputTag("ak4PFJetsCHS"),
0173       mets  = cms.VInputTag("caloMet", "tcMet", "pfMet")
0174     ),
0175     ## [optional] : when omitted the verbosity level is set to STANDARD
0176     monitoring = cms.PSet(
0177       verbosity = cms.string("DEBUG")
0178     ),
0179     ## [optional] : when omitted all monitoring plots for electrons
0180     ## will be filled w/o extras
0181     elecExtras = cms.PSet(
0182       ## when omitted electron plots will be filled w/o cut on electronId
0183       ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),      
0184       ## when omitted electron plots will be filled w/o additional pre-
0185       ## selection of the electron candidates                                                 
0186       select = cms.string("pt>20. && abs(eta)<2.5"),
0187       ## when omitted isolated electron multiplicity plot will be equi-
0188       ## valent to inclusive electron multiplicity plot                                                
0189       isolation = cms.string(ElelooseIsoCut),
0190     ),
0191     ## [optional] : when omitted all monitoring plots for muons
0192     ## will be filled w/o extras
0193     muonExtras = cms.PSet(
0194       ## when omitted muon plots will be filled w/o additional pre-
0195       ## selection of the muon candidates   
0196       select = cms.string(looseMuonCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"),
0197       ## when omitted isolated muon multiplicity plot will be equi-
0198       ## valent to inclusive muon multiplicity plot                                                  
0199       isolation = cms.string(looseIsoCut),
0200     ),
0201     ## [optional] : when omitted all monitoring plots for jets will
0202     ## be filled from uncorrected jets
0203     jetExtras = cms.PSet(
0204       ## when omitted monitor plots for pt will be filled from uncorrected
0205       ## jets    
0206       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0207       ## when omitted monitor plots will be filled w/o additional cut on
0208       ## jetID                                                   
0209 #      jetID  = cms.PSet(
0210 #        label  = cms.InputTag("ak5JetID"),
0211 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0212 #      ),
0213       ## when omitted no extra selection will be applied on jets before
0214       ## filling the monitor histograms; if jetCorrector is present the
0215       ## selection will be applied to corrected jets
0216       select = cms.string("pt>30. & abs(eta)<2.4 "), 
0217     ),
0218     ## [optional] : when omitted no mass window will be applied
0219     ## for the same flavor lepton monitoring plots 
0220     massExtras = cms.PSet(
0221       lowerEdge = cms.double( 76.0),
0222       upperEdge = cms.double(106.0)
0223     ),
0224     ## [optional] : when omitted all monitoring plots for triggering
0225     ## will be empty
0226     #triggerExtras = cms.PSet(
0227         #src = cms.InputTag("TriggerResults","","HLT"),
0228         #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
0229                                     #'HLT_Mu15:HLT_Ele15_SW_L1R',
0230                                     #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
0231                                     #'HLT_Ele15_SW_L1R:HLT_Mu9',
0232                                     #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
0233         #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
0234                                     #'HLT_DoubleMu3:HLT_Mu9',
0235                                     #'HLT_Mu9:HLT_DoubleMu3',
0236                                     #'HLT_Mu15:HLT_DoubleMu3'])
0237     #)    
0238   ),
0239                                   
0240   ## ------------------------------------------------------
0241   ## PRESELECTION
0242   ##
0243   ## setup of the event preselection, which will not
0244   ## be monitored
0245   ## [mandatory] : but may be empty
0246   ##
0247   preselection = cms.PSet(
0248     ## [optional] : when omitted no preselection is applied
0249     #trigger = cms.PSet(
0250         #src    = cms.InputTag("TriggerResults","","HLT"),
0251         #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
0252     #),
0253     ## [optional] : when omitted no preselection is applied
0254     vertex = cms.PSet(
0255       src    = cms.InputTag("offlinePrimaryVertices"),
0256       select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
0257     )
0258   ),
0259   
0260   ## ------------------------------------------------------    
0261   ## SELECTION
0262   ##
0263   ## monitor histrograms are filled after each selection
0264   ## step, the selection is applied in the order defined
0265   ## by this vector
0266   ## [mandatory] : may be empty or contain an arbitrary
0267   ## number of PSets as given below:
0268   ##
0269   selection = cms.VPSet(
0270     #cms.PSet(
0271       ### [mandatory] : 'jets' defines the objects to
0272       ### select on, 'step0' labels the histograms;
0273       ### instead of 'step0' you can choose any label
0274       #label  = cms.string("empty:step0")
0275     #),
0276     cms.PSet(
0277       label  = cms.string("muons:step0"),
0278       src    = cms.InputTag("pfIsolatedMuonsEI"),
0279       select = cms.string(looseMuonCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"), # CB what to do with iso?
0280       min    = cms.int32(2),
0281       max    = cms.int32(2),
0282     ),
0283     cms.PSet(
0284       label  = cms.string("jets/pf:step1"),
0285       src    = cms.InputTag("ak4PFJetsCHS"),
0286       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0287       select = cms.string("pt>30. & abs(eta)<2.4 "), 
0288 #      jetID  = cms.PSet(
0289 #        label  = cms.InputTag("ak5JetID"),
0290 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0291 #      ),
0292       min = cms.int32(2),
0293       #max = cms.int32(2),
0294     ),
0295   ),
0296 )
0297 
0298 DiElectronDQM = DQMEDAnalyzer('TopDiLeptonOfflineDQM',
0299   ## ------------------------------------------------------
0300   ## SETUP
0301   ##
0302   ## configuration of the MonitoringEnsemble(s)
0303   ## [mandatory] : optional PSets may be omitted
0304   ##
0305   setup = cms.PSet(
0306     ## sub-directory to write the monitor histograms to
0307     ## [mandatory] : should not be changed w/o explicit 
0308     ## communication to TopCom!
0309     directory = cms.string("Physics/Top/TopDiElectronDQM/"),
0310 
0311     ## [mandatory]
0312     sources = cms.PSet(
0313       muons = cms.InputTag("pfIsolatedMuonsEI"),
0314       elecs = cms.InputTag("pfIsolatedElectronsEI"),
0315       jets  = cms.InputTag("ak4PFJetsCHS"),
0316       mets  = cms.VInputTag("caloMet", "tcMet", "pfMet")
0317     ),
0318     ## [optional] : when omitted the verbosity level is set to STANDARD
0319     monitoring = cms.PSet(
0320       verbosity = cms.string("DEBUG")
0321     ),
0322     ## [optional] : when omitted all monitoring plots for electrons
0323     ## will be filled w/o extras
0324     elecExtras = cms.PSet(
0325       ## when omitted electron plots will be filled w/o cut on electronId
0326       ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.0) ),      
0327       ## when omitted electron plots will be filled w/o additional pre-
0328       ## selection of the electron candidates                                                 
0329       select = cms.string("pt>20. && abs(eta)<2.5"),
0330       ## when omitted isolated electron multiplicity plot will be equi-
0331       ## valent to inclusive electron multiplicity plot                                                
0332       isolation = cms.string(ElelooseIsoCut),
0333     ),
0334     ## [optional] : when omitted all monitoring plots for muons
0335     ## will be filled w/o extras
0336     muonExtras = cms.PSet(
0337       ## when omitted muon plots will be filled w/o additional pre-
0338       ## selection of the muon candidates   
0339       select = cms.string(looseMuonCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"),
0340       ## when omitted isolated muon multiplicity plot will be equi-
0341       ## valent to inclusive muon multiplicity plot                                                  
0342       isolation = cms.string(looseIsoCut),
0343     ),
0344     ## [optional] : when omitted all monitoring plots for jets will
0345     ## be filled from uncorrected jets
0346     jetExtras = cms.PSet(
0347       ## when omitted monitor plots for pt will be filled from uncorrected
0348       ## jets    
0349       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0350       ## when omitted monitor plots will be filled w/o additional cut on
0351       ## jetID                                                   
0352 #      jetID  = cms.PSet(
0353 #        label  = cms.InputTag("ak5JetID"),
0354 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0355 #      ),
0356       ## when omitted no extra selection will be applied on jets before
0357       ## filling the monitor histograms; if jetCorrector is present the
0358       ## selection will be applied to corrected jets
0359       select = cms.string("pt>30. & abs(eta)<2.4 "), 
0360     ),
0361     ## [optional] : when omitted no mass window will be applied
0362     ## for the same flavor lepton monitoring plots 
0363     massExtras = cms.PSet(
0364       lowerEdge = cms.double( 76.0),
0365       upperEdge = cms.double(106.0)
0366     ),
0367     ## [optional] : when omitted all monitoring plots for triggering
0368     ## will be empty
0369     #triggerExtras = cms.PSet(
0370         #src = cms.InputTag("TriggerResults","","HLT"),
0371         #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
0372                                     #'HLT_Mu15:HLT_Ele15_SW_L1R',
0373                                     #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
0374                                     #'HLT_Ele15_SW_L1R:HLT_Mu9',
0375                                     #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
0376         #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
0377                                     #'HLT_DoubleMu3:HLT_Mu9',
0378                                     #'HLT_Mu9:HLT_DoubleMu3',
0379                                     #'HLT_Mu15:HLT_DoubleMu3'])
0380     #)    
0381   ),
0382                                   
0383   ## ------------------------------------------------------
0384   ## PRESELECTION
0385   ##
0386   ## setup of the event preselection, which will not
0387   ## be monitored
0388   ## [mandatory] : but may be empty
0389   ##
0390   preselection = cms.PSet(
0391     ## [optional] : when omitted no preselection is applied
0392     #trigger = cms.PSet(
0393         #src    = cms.InputTag("TriggerResults","","HLT"),
0394         #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
0395     #),
0396     ## [optional] : when omitted no preselection is applied
0397     vertex = cms.PSet(
0398       src    = cms.InputTag("offlinePrimaryVertices"),
0399       select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
0400     )
0401   ),
0402   
0403   ## ------------------------------------------------------    
0404   ## SELECTION
0405   ##
0406   ## monitor histrograms are filled after each selection
0407   ## step, the selection is applied in the order defined
0408   ## by this vector
0409   ## [mandatory] : may be empty or contain an arbitrary
0410   ## number of PSets as given below:
0411   ##
0412   selection = cms.VPSet(
0413     #cms.PSet(
0414       ### [mandatory] : 'jets' defines the objects to
0415       ### select on, 'step0' labels the histograms;
0416       ### instead of 'step0' you can choose any label
0417       #label  = cms.string("empty:step0")
0418     #),
0419     cms.PSet(
0420       label = cms.string("elecs:step0"),
0421       src   = cms.InputTag("pfIsolatedElectronsEI"),
0422       ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),      
0423       select = cms.string("pt>20 & abs(eta)<2.5 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 && " + ElelooseIsoCut),
0424       #abs(gsfElectronRef.gsfTrack.d0)<0.04
0425       min = cms.int32(2),
0426       max = cms.int32(2),
0427     ),
0428     cms.PSet(
0429       label  = cms.string("jets/pf:step1"),
0430       src    = cms.InputTag("ak4PFJetsCHS"),
0431       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0432       select = cms.string("pt>30. & abs(eta)<2.4"), 
0433 #      jetID  = cms.PSet(
0434 #        label  = cms.InputTag("ak5JetID"),
0435 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0436 #      ),
0437       min = cms.int32(2),
0438       #max = cms.int32(2),
0439     ),
0440   ),
0441 )
0442 
0443 ElecMuonDQM = DQMEDAnalyzer('TopDiLeptonOfflineDQM',
0444   ## ------------------------------------------------------
0445   ## SETUP
0446   ##
0447   ## configuration of the MonitoringEnsemble(s)
0448   ## [mandatory] : optional PSets may be omitted
0449   ##
0450   setup = cms.PSet(
0451     ## sub-directory to write the monitor histograms to
0452     ## [mandatory] : should not be changed w/o explicit 
0453     ## communication to TopCom!
0454     directory = cms.string("Physics/Top/TopElecMuonDQM/"),
0455 
0456     ## [mandatory]
0457     sources = cms.PSet(
0458       muons = cms.InputTag("pfIsolatedMuonsEI"),
0459       elecs = cms.InputTag("pfIsolatedElectronsEI"),
0460       jets  = cms.InputTag("ak4PFJetsCHS"),
0461       mets  = cms.VInputTag("caloMet", "tcMet", "pfMet")
0462     ),
0463     ## [optional] : when omitted the verbosity level is set to STANDARD
0464     monitoring = cms.PSet(
0465       verbosity = cms.string("DEBUG")
0466     ),
0467     ## [optional] : when omitted all monitoring plots for electrons
0468     ## will be filled w/o extras
0469     elecExtras = cms.PSet(
0470       ## when omitted electron plots will be filled w/o cut on electronId
0471       ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),      
0472       ## when omitted electron plots will be filled w/o additional pre-
0473       ## selection of the electron candidates                                                 
0474       select = cms.string("pt>10. && abs(eta)<2.4 && abs(gsfElectronRef.gsfTrack.d0)<1. && abs(gsfElectronRef.gsfTrack.dz)<20."),
0475       ## when omitted isolated electron multiplicity plot will be equi-
0476       ## valent to inclusive electron multiplicity plot                                                
0477       isolation = cms.string(ElelooseIsoCut),
0478     ),
0479     ## [optional] : when omitted all monitoring plots for muons
0480     ## will be filled w/o extras
0481     muonExtras = cms.PSet(
0482       ## when omitted muon plots will be filled w/o additional pre-
0483       ## selection of the muon candidates
0484       select = cms.string(looseMuonCut + " && muonRef.pt > 10. && abs(muonRef.eta)<2.4"),
0485       ## when omitted isolated muon multiplicity plot will be equi-
0486       ## valent to inclusive muon multiplicity plot                                                  
0487       isolation = cms.string(looseIsoCut),
0488     ),
0489     ## [optional] : when omitted all monitoring plots for jets will
0490     ## be filled from uncorrected jets
0491     jetExtras = cms.PSet(
0492       ## when omitted monitor plots for pt will be filled from uncorrected
0493       ## jets    
0494       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0495       ## when omitted monitor plots will be filled w/o additional cut on
0496       ## jetID                                                   
0497 #      jetID  = cms.PSet(
0498 #        label  = cms.InputTag("ak5JetID"),
0499 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0500 #      ),
0501       ## when omitted no extra selection will be applied on jets before
0502       ## filling the monitor histograms; if jetCorrector is present the
0503       ## selection will be applied to corrected jets
0504       select = cms.string("pt>30. & abs(eta)<2.4 "), 
0505     ),
0506     ## [optional] : when omitted no mass window will be applied
0507     ## for the same flavor lepton monitoring plots 
0508     massExtras = cms.PSet(
0509       lowerEdge = cms.double( 76.0),
0510       upperEdge = cms.double(106.0)
0511     ),
0512     ## [optional] : when omitted all monitoring plots for triggering
0513     ## will be empty
0514     #triggerExtras = cms.PSet(
0515         #src = cms.InputTag("TriggerResults","","HLT"),
0516         #pathsELECMU = cms.vstring([ 'HLT_Mu9:HLT_Ele15_SW_L1R',
0517                                     #'HLT_Mu15:HLT_Ele15_SW_L1R',
0518                                     #'HLT_DoubleMu3:HLT_Ele15_SW_L1R',
0519                                     #'HLT_Ele15_SW_L1R:HLT_Mu9',
0520                                     #'HLT_Ele15_SW_L1R:HLT_DoubleMu3']),
0521         #pathsDIMUON = cms.vstring([ 'HLT_Mu15:HLT_Mu9',
0522                                     #'HLT_DoubleMu3:HLT_Mu9',
0523                                     #'HLT_Mu9:HLT_DoubleMu3',
0524                                     #'HLT_Mu15:HLT_DoubleMu3'])
0525     #)    
0526   ),
0527                                   
0528   ## ------------------------------------------------------
0529   ## PRESELECTION
0530   ##
0531   ## setup of the event preselection, which will not
0532   ## be monitored
0533   ## [mandatory] : but may be empty
0534   ##
0535   preselection = cms.PSet(
0536     ## [optional] : when omitted no preselection is applied
0537     #trigger = cms.PSet(
0538         #src    = cms.InputTag("TriggerResults","","HLT"),
0539         #select = cms.vstring(['HLT_Mu9','HLT_Ele15_SW_L1R','HLT_DoubleMu3'])
0540     #),
0541     ## [optional] : when omitted no preselection is applied
0542     vertex = cms.PSet(
0543       src    = cms.InputTag("offlinePrimaryVertices"),
0544       select = cms.string('abs(x)<1. && abs(y)<1. && abs(z)<20. && tracksSize>3 && !isFake')
0545     )
0546   ),
0547   
0548   ## ------------------------------------------------------    
0549   ## SELECTION
0550   ##
0551   ## monitor histrograms are filled after each selection
0552   ## step, the selection is applied in the order defined
0553   ## by this vector
0554   ## [mandatory] : may be empty or contain an arbitrary
0555   ## number of PSets as given below:
0556   ##
0557   selection = cms.VPSet(
0558     #cms.PSet(
0559       ### [mandatory] : 'jets' defines the objects to
0560       ### select on, 'step0' labels the histograms;
0561       ### instead of 'step0' you can choose any label
0562       #label  = cms.string("empty:step0")
0563     #),
0564     cms.PSet(
0565       label  = cms.string("muons:step0"),
0566       src    = cms.InputTag("pfIsolatedMuonsEI"),
0567       select = cms.string(looseMuonCut + " && " + looseIsoCut + " && muonRef.pt > 20. && abs(muonRef.eta)<2.4"), # CB what to do with iso? CD Added looseIsoCut
0568       min    = cms.int32(1),
0569       max    = cms.int32(1),
0570     ),
0571     cms.PSet(
0572       label = cms.string("elecs:step1"),
0573       src   = cms.InputTag("pfIsolatedElectronsEI"),
0574       ##electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ),      
0575       select = cms.string("pt>20 & abs(eta)<2.5 && "+ElelooseIsoCut),
0576       min = cms.int32(1),
0577       max = cms.int32(1),
0578     ),
0579     cms.PSet(
0580       label  = cms.string("jets/pf:step2"),
0581       src    = cms.InputTag("ak4PFJetsCHS"),
0582       jetCorrector = cms.string("topDQMak5PFCHSL2L3"),
0583       select = cms.string("pt>30. & abs(eta)<2.4 "), 
0584 #      jetID  = cms.PSet(
0585 #        label  = cms.InputTag("ak5JetID"),
0586 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0587 #      ),
0588       min = cms.int32(2),
0589       #max = cms.int32(2),
0590     ),
0591   ),
0592 )
0593