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 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
0004 topSingleLeptonDQM = DQMEDAnalyzer('TopSingleLeptonDQM',
0005   ## ------------------------------------------------------
0006   ## SETUP
0007   ##
0008   ## configuration of the MonitoringEnsemble(s)
0009   ## [mandatory] : optional PSets may be omitted
0010   ##
0011   setup = cms.PSet(
0012     ## sub-directory to write the monitor histograms to
0013     ## [mandatory] : should not be changed w/o explicit 
0014     ## communication to TopCom!
0015     directory = cms.string("Physics/Top/TopSingleLeptonDQM/"),
0016     ## [mandatory]
0017     sources = cms.PSet(
0018       muons = cms.InputTag("muons"),
0019       elecs = cms.InputTag("gedGsfElectrons"),
0020       jets  = cms.InputTag("ak5PFJetsCHS"),
0021       mets  = cms.VInputTag("met", "tcMet", "pfMet"),
0022       pvs   = cms.InputTag("offlinePrimaryVertices")
0023     ),
0024     ## [optional] : when omitted the verbosity level is set to STANDARD
0025     monitoring = cms.PSet(
0026       verbosity = cms.string("DEBUG")
0027     ),
0028     ## [optional] : when omitted all monitoring plots for primary vertices
0029     ## will be filled w/o extras
0030     pvExtras = cms.PSet(
0031       ## when omitted electron plots will be filled w/o additional pre-
0032       ## selection of the primary vertex candidates                                                                                            
0033       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
0034     ),
0035     ## [optional] : when omitted all monitoring plots for electrons
0036     ## will be filled w/o extras
0037     elecExtras = cms.PSet(
0038       ## when omitted electron plots will be filled w/o cut on electronId
0039       electronId = cms.PSet( src = cms.InputTag("eidRobustLoose"), pattern = cms.int32(1) ),
0040       ## when omitted electron plots will be filled w/o additional pre-
0041       ## selection of the electron candidates                                                                                            
0042       select = cms.string("pt>15 & abs(eta)<2.5 & abs(gsfTrack.d0)<1 & abs(gsfTrack.dz)<20"),
0043       ## when omitted isolated electron multiplicity plot will be equi-
0044       ## valent to inclusive electron multiplicity plot 
0045       isolation = cms.string("(dr03TkSumPt+dr04EcalRecHitSumEt+dr04HcalTowerSumEt)/pt<0.1"),
0046     ),
0047     ## [optional] : when omitted all monitoring plots for muons
0048     ## will be filled w/o extras
0049     muonExtras = cms.PSet(
0050       ## when omitted muon plots will be filled w/o additional pre-
0051       ## selection of the muon candidates                                                                                            
0052       select = cms.string("pt>10 & abs(eta)<2.1 & isGlobalMuon & abs(globalTrack.d0)<1 & abs(globalTrack.dz)<20"),
0053       ## when omitted isolated muon multiplicity plot will be equi-
0054       ## valent to inclusive muon multiplicity plot                                                    
0055       isolation = cms.string("(isolationR03.sumPt+isolationR03.emEt+isolationR03.hadEt)/pt<0.1"),
0056     ),
0057     ## [optional] : when omitted all monitoring plots for jets will
0058     ## be filled from uncorrected jets
0059     jetExtras = cms.PSet(
0060       ## when omitted monitor plots for pt will be filled from uncorrected
0061       ## jets                                            
0062       jetCorrector = cms.string("ak5PFL2L3"),
0063       ## when omitted monitor plots will be filled w/o additional cut on
0064       ## jetID                                                   
0065 #      jetID  = cms.PSet(
0066 #        label  = cms.InputTag("ak5JetID"),
0067 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0068 #      ),
0069       ## when omitted no extra selection will be applied on jets before
0070       ## filling the monitor histograms; if jetCorrector is present the
0071       ## selection will be applied to corrected jets
0072       select = cms.string("pt>30 & abs(eta)<2.5"),
0073     ),
0074     ## [optional] : when omitted no mass window will be applied
0075     ## for the W mass befor filling the event monitoring plots
0076     massExtras = cms.PSet(
0077       lowerEdge = cms.double( 70.),
0078       upperEdge = cms.double(110.)
0079     ),
0080     ## [optional] : when omitted the monitoring plots for triggering
0081     ## will be empty
0082     #triggerExtras = cms.PSet(
0083     #  src   = cms.InputTag("TriggerResults","","HLT"),
0084     #  paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
0085     #                       'HLT_Mu5:HLT_QuadJet15U',
0086     #                       'HLT_Mu7:HLT_QuadJet15U',
0087     #                       'HLT_Mu9:HLT_QuadJet15U'])
0088     #)                                            
0089   ),                                  
0090   ## ------------------------------------------------------
0091   ## PRESELECTION
0092   ##
0093   ## setup of the event preselection, which will not
0094   ## be monitored
0095   ## [mandatory] : but may be empty
0096   ##
0097   preselection = cms.PSet(
0098     ## [optional] : when omitted no preselection is applied
0099     #trigger = cms.PSet(
0100     #  src    = cms.InputTag("TriggerResults","","HLT"),
0101     #  select = cms.vstring(['HLT_Mu11', 'HLT_Ele15_LW_L1R', 'HLT_QuadJet30'])
0102     #),
0103     ## [optional] : when omitted no preselection is applied
0104     vertex = cms.PSet(
0105       src    = cms.InputTag("offlinePrimaryVertices"),
0106       select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
0107     )                                        
0108   ),  
0109   ## ------------------------------------------------------    
0110   ## SELECTION
0111   ##
0112   ## monitor histrograms are filled after each selection
0113   ## step, the selection is applied in the order defined
0114   ## by this vector
0115   ## [mandatory] : may be empty or contain an arbitrary
0116   ## number of PSets
0117   ##    
0118   selection = cms.VPSet(
0119     cms.PSet(
0120       label  = cms.string("jets/pf:step0"),
0121       src    = cms.InputTag("ak5PFJetsCHS"),
0122       #select = cms.string("pt>20 & abs(eta)<2.1 & 0.05<emEnergyFraction"),
0123       select = cms.string("pt>20 & abs(eta)<2.1 "),
0124 #      jetID  = cms.PSet(
0125 #        label  = cms.InputTag("ak5JetID"),
0126 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0127 #      ),
0128       min = cms.int32(2),
0129     ),
0130   )
0131 )
0132 
0133 topSingleMuonLooseDQM_PU = DQMEDAnalyzer('TopSingleLeptonDQM',
0134   ## ------------------------------------------------------
0135   ## SETUP
0136   ##
0137   ## configuration of the MonitoringEnsemble(s)
0138   ## [mandatory] : optional PSets may be omitted
0139   ##
0140   setup = cms.PSet(
0141     ## sub-directory to write the monitor histograms to
0142     ## [mandatory] : should not be changed w/o explicit
0143     ## communication to TopCom!
0144     directory = cms.string("Physics/Top/TopSingleMuonLooseDQM_PU/"),
0145     ## [mandatory]
0146     sources = cms.PSet(
0147       muons = cms.InputTag("muons"),
0148       elecs = cms.InputTag("gedGsfElectrons"),
0149       jets  = cms.InputTag("ak5PFJetsCHS"),
0150       mets  = cms.VInputTag("met", "tcMet", "pfMet"),
0151       pvs   = cms.InputTag("offlinePrimaryVertices")
0152     ),
0153     ## [optional] : when omitted the verbosity level is set to STANDARD
0154     monitoring = cms.PSet(
0155       verbosity = cms.string("DEBUG")
0156     ),
0157     pvExtras = cms.PSet(
0158       ## when omitted electron plots will be filled w/o additional pre-
0159       ## selection of the primary vertex candidates                                                                                            
0160       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
0161     ),
0162     ## [optional] : when omitted all monitoring plots for muons
0163     ## will be filled w/o extras                                           
0164     muonExtras = cms.PSet(
0165       ## when omitted muon plots will be filled w/o additional pre-
0166       ## selection of the muon candidates                                                                                               
0167       select = cms.string("pt > 10 & abs(eta)<2.1 & isGlobalMuon & innerTrack.numberOfValidHits>10 & globalTrack.normalizedChi2>-1 & globalTrack.normalizedChi2<10"),
0168       ## when omitted isolated muon multiplicity plot will be equi-
0169       ## valent to inclusive muon multiplicity plot                                                    
0170       isolation = cms.string("(isolationR03.sumPt+isolationR03.emEt+isolationR03.hadEt)/pt<0.1")                                               
0171     ),
0172     ## [optional] : when omitted all monitoring plots for jets
0173     ## will be filled w/o extras
0174     jetExtras = cms.PSet(
0175       ## when omitted monitor plots for pt will be filled from uncorrected
0176       ## jets                                               
0177       jetCorrector = cms.string("ak5PFL2L3"),
0178       ## when omitted monitor plots will be filled w/o additional cut on
0179       ## jetID                                                                                                                     
0180 #      jetID  = cms.PSet(
0181 #        label  = cms.InputTag("ak5JetID"),
0182 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0183 #      ),                                                    
0184       ## when omitted no extra selection will be applied on jets before
0185       ## filling the monitor histograms; if jetCorrector is present the
0186       ## selection will be applied to corrected jets                                                
0187       select = cms.string("pt>30 & abs(eta)<2.5"),
0188       ## when omitted monitor histograms for b-tagging will not be filled 
0189       jetBTaggers  = cms.PSet(
0190         trackCountingEff = cms.PSet(
0191           label = cms.InputTag("pfTrackCountingHighEffBJetTags" ),
0192           workingPoint = cms.double(1.25)
0193         ),
0194         trackCountingPur = cms.PSet(
0195           label = cms.InputTag("pfTrackCountingHighPurBJetTags" ),
0196           workingPoint = cms.double(3.00)
0197         ),
0198         secondaryVertex  = cms.PSet(
0199           label = cms.InputTag("pfSimpleSecondaryVertexHighEffBJetTags"),
0200           workingPoint = cms.double(2.05)
0201         ),
0202         cvsVertex = cms.PSet(
0203           label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
0204               workingPoint = cms.double(0.970)
0205               # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
0206         )
0207       ),
0208     ),
0209     ## [optional] : when omitted no mass window will be applied
0210     ## for the W mass befor filling the event monitoring plots
0211     massExtras = cms.PSet(
0212       lowerEdge = cms.double( 70.),
0213       upperEdge = cms.double(110.)
0214     ),
0215     ## [optional] : when omitted the monitoring plots for triggering
0216     ## will be empty
0217     #triggerExtras = cms.PSet(
0218     #  src   = cms.InputTag("TriggerResults","","HLT"),
0219      # paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
0220     #                       'HLT_Mu5:HLT_QuadJet15U',
0221     #                       'HLT_Mu7:HLT_QuadJet15U',
0222     #                       'HLT_Mu9:HLT_QuadJet15U',
0223     #                       'HLT_Mu11:HLT_QuadJet15U'])
0224     #)
0225   ),
0226   ## ------------------------------------------------------
0227   ## PRESELECTION
0228   ##
0229   ## setup of the event preselection, which will not
0230   ## be monitored
0231   ## [mandatory] : but may be empty
0232   ##
0233   preselection = cms.PSet(
0234     ## [optional] : when omitted no preselection is applied
0235     #trigger = cms.PSet(
0236     #  src    = cms.InputTag("TriggerResults","","HLT"),
0237     #  select = cms.vstring(['HLT_Mu11'])
0238     #),
0239     ## [optional] : when omitted no preselection is applied
0240     vertex = cms.PSet(
0241       src    = cms.InputTag("offlinePrimaryVertices"),
0242       select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
0243     )
0244   ),
0245   ## ------------------------------------------------------
0246   ## SELECTION
0247   ##
0248   ## monitor histrograms are filled after each selection
0249   ## step, the selection is applied in the order defined
0250   ## by this vector
0251   ## [mandatory] : may be empty or contain an arbitrary
0252   ## number of PSets
0253   selection = cms.VPSet(
0254     cms.PSet(
0255       label  = cms.string("muons:step0"),
0256       src    = cms.InputTag("muons"),
0257       select = cms.string("pt>10 & abs(eta)<2.1 & isGlobalMuon & innerTrack.numberOfValidHits>10 & globalTrack.normalizedChi2>-1 & globalTrack.normalizedChi2<10"),
0258       min    = cms.int32(1),
0259     ),
0260     cms.PSet(
0261       label  = cms.string("pvs:step1"),
0262       src    = cms.InputTag("offlinePrimaryVertices"),
0263       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0264       max    = cms.int32(10),
0265     ),
0266     cms.PSet(
0267       label  = cms.string("pvs:step2"),
0268       src    = cms.InputTag("offlinePrimaryVertices"),
0269       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0270       max    = cms.int32(8),
0271     ),
0272     cms.PSet(
0273       label  = cms.string("pvs:step3"),
0274       src    = cms.InputTag("offlinePrimaryVertices"),
0275       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0276       max    = cms.int32(6),
0277     ),
0278     cms.PSet(
0279       label  = cms.string("pvs:step4"),
0280       src    = cms.InputTag("offlinePrimaryVertices"),
0281       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0282       max    = cms.int32(4),
0283     ),
0284     cms.PSet(
0285       label  = cms.string("pvs:step5"),
0286       src    = cms.InputTag("offlinePrimaryVertices"),
0287       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0288       max    = cms.int32(2),
0289     ),
0290   )
0291 )
0292 
0293 topSingleMuonMediumDQM_PU = DQMEDAnalyzer('TopSingleLeptonDQM',
0294   ## ------------------------------------------------------
0295   ## SETUP
0296   ##
0297   ## configuration of the MonitoringEnsemble(s)
0298   ## [mandatory] : optional PSets may be omitted
0299   ##
0300   setup = cms.PSet(
0301     ## sub-directory to write the monitor histograms to
0302     ## [mandatory] : should not be changed w/o explicit
0303     ## communication to TopCom!
0304     directory = cms.string("Physics/Top/TopSingleMuonMediumDQM_PU/"),
0305     ## [mandatory]
0306     sources = cms.PSet(
0307       muons = cms.InputTag("muons"),
0308       elecs = cms.InputTag("gedGsfElectrons"),
0309       jets  = cms.InputTag("ak5PFJetsCHS"),
0310       mets  = cms.VInputTag("met", "tcMet", "pfMet"),
0311       pvs   = cms.InputTag("offlinePrimaryVertices")
0312 
0313     ),
0314     ## [optional] : when omitted the verbosity level is set to STANDARD
0315     monitoring = cms.PSet(
0316       verbosity = cms.string("DEBUG")
0317     ),
0318     ## [optional] : when omitted all monitoring plots for primary vertices
0319     ## will be filled w/o extras
0320     pvExtras = cms.PSet(
0321       ## when omitted electron plots will be filled w/o additional pre-
0322       ## selection of the primary vertex candidates                                                                                            
0323       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
0324     ),
0325     ## [optional] : when omitted all monitoring plots for muons
0326     ## will be filled w/o extras                                           
0327     muonExtras = cms.PSet(
0328       ## when omitted muon plots will be filled w/o additional pre-
0329       ## selection of the muon candidates                                                
0330       select    = cms.string("pt>20 & abs(eta)<2.1 & isGlobalMuon & innerTrack.numberOfValidHits>10 & globalTrack.normalizedChi2>-1 & globalTrack.normalizedChi2<10 & (isolationR03.sumPt+isolationR03.emEt+isolationR03.hadEt)/pt<0.1"),  
0331       ## when omitted isolated muon multiplicity plot will be equi-
0332       ## valent to inclusive muon multiplicity plot                                                    
0333       isolation = cms.string("(isolationR03.sumPt+isolationR03.emEt+isolationR03.hadEt)/pt<0.1")
0334     ),
0335     ## [optional] : when omitted all monitoring plots for jets
0336     ## will be filled w/o extras
0337     jetExtras = cms.PSet(
0338       ## when omitted monitor plots for pt will be filled from uncorrected
0339       ## jets
0340       jetCorrector = cms.string("ak5PFL2L3"),
0341       ## when omitted monitor plots will be filled w/o additional cut on
0342       ## jetID                                                                                                   
0343 #      jetID  = cms.PSet(
0344 #        label  = cms.InputTag("ak5JetID"),
0345 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0346 #      ),
0347       ## when omitted no extra selection will be applied on jets before
0348       ## filling the monitor histograms; if jetCorrector is present the
0349       ## selection will be applied to corrected jets                                                
0350       #select = cms.string("pt>15 & abs(eta)<2.5& emEnergyFraction>0.01"),
0351       select = cms.string("pt>30 & abs(eta)<2.5"),
0352       ## when omitted monitor histograms for b-tagging will not be filled                                                                                                   
0353       jetBTaggers  = cms.PSet(
0354         cvsVertex = cms.PSet(
0355           label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
0356               workingPoint = cms.double(0.970)
0357               # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
0358         )
0359       ),                                                
0360     ),
0361     ## [optional] : when omitted no mass window will be applied
0362     ## for the W mass before filling the event monitoring plots
0363     massExtras = cms.PSet(
0364       lowerEdge = cms.double( 70.),
0365       upperEdge = cms.double(110.)
0366     ),
0367     ## [optional] : when omitted the monitoring plots for triggering
0368     ## will be empty
0369     #triggerExtras = cms.PSet(
0370     #  src   = cms.InputTag("TriggerResults","","HLT"),
0371     # paths = cms.vstring(['HLT_Mu3:HLT_QuadJet15U',
0372     #                      'HLT_Mu5:HLT_QuadJet15U',
0373     #                      'HLT_Mu7:HLT_QuadJet15U',
0374     #                      'HLT_Mu9:HLT_QuadJet15U',
0375     #                      'HLT_Mu11:HLT_QuadJet15U'])      
0376     #)
0377   ),
0378   ## ------------------------------------------------------
0379   ## PRESELECTION
0380   ##
0381   ## setup of the event preselection, which will not
0382   ## be monitored
0383   ## [mandatory] : but may be empty
0384   ##
0385   preselection = cms.PSet(
0386     ## [optional] : when omitted no preselection is applied
0387     #trigger = cms.PSet(
0388     #  src    = cms.InputTag("TriggerResults","","HLT"),
0389     #  select = cms.vstring(['HLT_Mu15_v2'])
0390     #),
0391     ## [optional] : when omitted no preselection is applied
0392     vertex = cms.PSet(
0393       src    = cms.InputTag("offlinePrimaryVertices"),
0394       select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
0395     )
0396   ),
0397   ## ------------------------------------------------------
0398   ## SELECTION
0399   ##
0400   ## monitor histrograms are filled after each selection
0401   ## step, the selection is applied in the order defined
0402   ## by this vector
0403   ## [mandatory] : may be empty or contain an arbitrary
0404   ## number of PSets
0405   selection = cms.VPSet(
0406     cms.PSet(
0407       label  = cms.string("muons:step0"),
0408       src    = cms.InputTag("muons"),
0409       select = cms.string("pt>20 & abs(eta)<2.1 & isGlobalMuon & innerTrack.numberOfValidHits>10 & globalTrack.normalizedChi2>-1 & globalTrack.normalizedChi2<10 & (isolationR03.sumPt+isolationR03.emEt+isolationR03.hadEt)/pt<0.1"),       
0410       min    = cms.int32(1),
0411       max    = cms.int32(1),
0412     ),
0413     cms.PSet(
0414       label  = cms.string("pvs:step1"),
0415       src    = cms.InputTag("offlinePrimaryVertices"),
0416       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0417       max    = cms.int32(10),
0418     ),
0419     cms.PSet(
0420       label  = cms.string("pvs:step2"),
0421       src    = cms.InputTag("offlinePrimaryVertices"),
0422       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0423       max    = cms.int32(8),
0424     ),
0425     cms.PSet(
0426       label  = cms.string("pvs:step3"),
0427       src    = cms.InputTag("offlinePrimaryVertices"),
0428       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0429       max    = cms.int32(6),
0430     ),
0431     cms.PSet(
0432       label  = cms.string("pvs:step4"),
0433       src    = cms.InputTag("offlinePrimaryVertices"),
0434       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0435       max    = cms.int32(4),
0436     ),
0437     cms.PSet(
0438       label  = cms.string("pvs:step5"),
0439       src    = cms.InputTag("offlinePrimaryVertices"),
0440       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0441       max    = cms.int32(2),
0442     ),
0443   )
0444 )
0445 
0446 topSingleElectronLooseDQM_PU = DQMEDAnalyzer('TopSingleLeptonDQM',
0447   ## ------------------------------------------------------
0448   ## SETUP
0449   ##
0450   ## configuration of the MonitoringEnsemble(s)
0451   ## [mandatory] : optional PSets may be omitted
0452   ##
0453   setup = cms.PSet(
0454     ## sub-directory to write the monitor histograms to
0455     ## [mandatory] : should not be changed w/o explicit
0456     ## communication to TopCom!
0457     directory = cms.string("Physics/Top/TopSingleElectronLooseDQM_PU/"),
0458     ## [mandatory]
0459     sources = cms.PSet(
0460       muons = cms.InputTag("muons"),
0461       elecs = cms.InputTag("gedGsfElectrons"),
0462       jets  = cms.InputTag("ak5PFJetsCHS"),
0463       mets  = cms.VInputTag("met", "tcMet", "pfMet"),
0464       pvs   = cms.InputTag("offlinePrimaryVertices")
0465 
0466     ),
0467     ## [optional] : when omitted the verbosity level is set to STANDARD
0468     monitoring = cms.PSet(
0469       verbosity = cms.string("DEBUG")
0470     ),
0471     ## [optional] : when omitted all monitoring plots for primary vertices
0472     ## will be filled w/o extras
0473     pvExtras = cms.PSet(
0474       ## when omitted electron plots will be filled w/o additional pre-
0475       ## selection of the primary vertex candidates                                                                                            
0476       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
0477     ),
0478     ## [optional] : when omitted all monitoring plots for electrons
0479     ## will be filled w/o extras
0480     elecExtras = cms.PSet(
0481       ## when omitted electron plots will be filled w/o cut on electronId
0482       electronId = cms.PSet( src = cms.InputTag("simpleEleId70cIso"), pattern = cms.int32(1) ),
0483       ## when omitted electron plots will be filled w/o additional pre-
0484       ## selection of the electron candidates
0485       select     = cms.string("pt>15 & abs(eta)<2.5"),
0486       ## when omitted isolated electron multiplicity plot will be equi-
0487       ## valent to inclusive electron multiplicity plot                                                    
0488       isolation  = cms.string("(dr03TkSumPt+dr03EcalRecHitSumEt+dr03HcalTowerSumEt)/pt<0.1"),                                                   
0489     ),
0490     ## [optional] : when omitted all monitoring plots for jets
0491     ## will be filled w/o extras
0492     jetExtras = cms.PSet(
0493       ## when omitted monitor plots for pt will be filled from uncorrected
0494       ## jets
0495       jetCorrector = cms.string("ak5PFL2L3"),
0496       ## when omitted monitor plots will be filled w/o additional cut on
0497       ## jetID                                                   
0498 #      jetID  = cms.PSet(
0499 #        label  = cms.InputTag("ak5JetID"),
0500 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0501 #      ),
0502       ## when omitted no extra selection will be applied on jets before
0503       ## filling the monitor histograms; if jetCorrector is present the
0504       ## selection will be applied to corrected jets
0505       select = cms.string("pt>30 & abs(eta)<2.5"), 
0506       ## when omitted monitor histograms for b-tagging will not be filled                                                   
0507       jetBTaggers  = cms.PSet(
0508         trackCountingEff = cms.PSet(
0509           label = cms.InputTag("pfTrackCountingHighEffBJetTags" ),
0510           workingPoint = cms.double(1.25)
0511         ),
0512         trackCountingPur = cms.PSet(
0513           label = cms.InputTag("pfTrackCountingHighPurBJetTags" ),
0514           workingPoint = cms.double(3.00)
0515         ),
0516         secondaryVertex  = cms.PSet(
0517           label = cms.InputTag("pfSimpleSecondaryVertexHighEffBJetTags"),
0518           workingPoint = cms.double(2.05)
0519         ),
0520         cvsVertex = cms.PSet(
0521           label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
0522               workingPoint = cms.double(0.970)
0523               # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
0524         )
0525       ),
0526     ),
0527     ## [optional] : when omitted no mass window will be applied
0528     ## for the W mass before filling the event monitoring plots
0529     massExtras = cms.PSet(
0530       lowerEdge = cms.double( 70.),
0531       upperEdge = cms.double(110.)
0532     ),
0533     ## [optional] : when omitted the monitoring plots for triggering
0534     ## will be empty
0535     #triggerExtras = cms.PSet(
0536     #  src   = cms.InputTag("TriggerResults","","HLT"),
0537     #  paths = cms.vstring(['HLT_Ele15_LW_L1R:HLT_QuadJetU15'])
0538     #)
0539   ),
0540   ## ------------------------------------------------------
0541   ## PRESELECTION
0542   ##
0543   ## setup of the event preselection, which will not
0544   ## be monitored
0545   ## [mandatory] : but may be empty
0546   ##
0547   preselection = cms.PSet(
0548     ## [optional] : when omitted no preselection is applied
0549     #trigger = cms.PSet(
0550     #  src    = cms.InputTag("TriggerResults","","HLT"),
0551     #  select = cms.vstring(['HLT_Ele15_SW_CaloEleId_L1R'])
0552     #),
0553     ## [optional] : when omitted no preselection is applied
0554     vertex = cms.PSet(
0555       src    = cms.InputTag("offlinePrimaryVertices"),
0556       select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
0557     )
0558   ),
0559   ## ------------------------------------------------------
0560   ## SELECTION
0561   ##
0562   ## monitor histrograms are filled after each selection
0563   ## step, the selection is applied in the order defined
0564   ## by this vector
0565   ## [mandatory] : may be empty or contain an arbitrary
0566   ## number of PSets
0567   selection = cms.VPSet(
0568     cms.PSet(
0569       label  = cms.string("elecs:step0"),
0570       src    = cms.InputTag("gedGsfElectrons"),
0571       electronId = cms.PSet( src = cms.InputTag("simpleEleId70cIso"), pattern = cms.int32(1) ),
0572       select = cms.string("pt>30 & abs(eta)<2.5"),
0573       min    = cms.int32(1),
0574     ),
0575     cms.PSet(
0576       label  = cms.string("pvs:step1"),
0577       src    = cms.InputTag("offlinePrimaryVertices"),
0578       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0579       max    = cms.int32(10),
0580     ),
0581     cms.PSet(
0582       label  = cms.string("pvs:step2"),
0583       src    = cms.InputTag("offlinePrimaryVertices"),
0584       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0585       max    = cms.int32(8),
0586     ),
0587     cms.PSet(
0588       label  = cms.string("pvs:step3"),
0589       src    = cms.InputTag("offlinePrimaryVertices"),
0590       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0591       max    = cms.int32(6),
0592     ),
0593     cms.PSet(
0594       label  = cms.string("pvs:step4"),
0595       src    = cms.InputTag("offlinePrimaryVertices"),
0596       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0597       max    = cms.int32(4),
0598     ),
0599     cms.PSet(
0600       label  = cms.string("pvs:step5"),
0601       src    = cms.InputTag("offlinePrimaryVertices"),
0602       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0603       max    = cms.int32(2),
0604     ),
0605   )
0606 )
0607 
0608 topSingleElectronMediumDQM_PU = DQMEDAnalyzer('TopSingleLeptonDQM',
0609   ## ------------------------------------------------------
0610   ## SETUP
0611   ##
0612   ## configuration of the MonitoringEnsemble(s)
0613   ## [mandatory] : optional PSets may be omitted
0614   ##
0615   setup = cms.PSet(
0616     ## sub-directory to write the monitor histograms to
0617     ## [mandatory] : should not be changed w/o explicit
0618     ## communication to TopCom!
0619     directory = cms.string("Physics/Top/TopSingleElectronMediumDQM_PU/"),
0620     ## [mandatory]
0621     sources = cms.PSet(
0622       muons = cms.InputTag("muons"),
0623       elecs = cms.InputTag("gedGsfElectrons"),
0624       jets  = cms.InputTag("ak5PFJetsCHS"),
0625       mets  = cms.VInputTag("met", "tcMet", "pfMet"),
0626       pvs   = cms.InputTag("offlinePrimaryVertices")
0627 
0628     ),
0629     ## [optional] : when omitted the verbosity level is set to STANDARD
0630     monitoring = cms.PSet(
0631       verbosity = cms.string("DEBUG")
0632     ),
0633     ## [optional] : when omitted all monitoring plots for primary vertices
0634     ## will be filled w/o extras
0635     pvExtras = cms.PSet(
0636       ## when omitted electron plots will be filled w/o additional pre-
0637       ## selection of the primary vertex candidates                                                                                            
0638       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake")
0639     ),
0640     ## [optional] : when omitted all monitoring plots for electrons
0641     ## will be filled w/o extras
0642     elecExtras = cms.PSet(
0643       ## when omitted electron plots will be filled w/o cut on electronId
0644       electronId = cms.PSet( src = cms.InputTag("simpleEleId70cIso"), pattern = cms.int32(1) ),
0645       ## when omitted electron plots will be filled w/o additional pre-
0646       ## selection of the electron candidates
0647       select     = cms.string("pt>25 & abs(eta)<2.5 & (dr03TkSumPt+dr03EcalRecHitSumEt+dr03HcalTowerSumEt)/pt<0.1"),
0648       ## when omitted isolated electron multiplicity plot will be equi-
0649       ## valent to inclusive electron multiplicity plot 
0650       isolation  = cms.string("(dr03TkSumPt+dr03EcalRecHitSumEt+dr03HcalTowerSumEt)/pt<0.1"),
0651     ),
0652     ## [optional] : when omitted all monitoring plots for jets
0653     ## will be filled w/o extras
0654     jetExtras = cms.PSet(
0655       ## when omitted monitor plots for pt will be filled from uncorrected
0656       ## jets
0657       jetCorrector = cms.string("ak5PFL2L3"),
0658       ## when omitted monitor plots will be filled w/o additional cut on
0659       ## jetID
0660 #      jetID  = cms.PSet(
0661 #        label  = cms.InputTag("ak5JetID"),
0662 #        select = cms.string("fHPD < 0.98 & n90Hits>1 & restrictedEMF<1")
0663 #      ),
0664       ## when omitted no extra selection will be applied on jets before
0665       ## filling the monitor histograms; if jetCorrector is present the
0666       ## selection will be applied to corrected jets 
0667       select = cms.string("pt>30 & abs(eta)<2.5"),
0668       ## when omitted monitor histograms for b-tagging will not be filled
0669       jetBTaggers  = cms.PSet(
0670         trackCountingEff = cms.PSet(
0671           label = cms.InputTag("pfTrackCountingHighEffBJetTags" ),
0672           workingPoint = cms.double(1.25)
0673         ),
0674         trackCountingPur = cms.PSet(
0675           label = cms.InputTag("pfTrackCountingHighPurBJetTags" ),
0676           workingPoint = cms.double(3.00)
0677         ),
0678         secondaryVertex  = cms.PSet(
0679           label = cms.InputTag("pfSimpleSecondaryVertexHighEffBJetTags"),
0680           workingPoint = cms.double(2.05)
0681         ),
0682         cvsVertex = cms.PSet(
0683           label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"),
0684               workingPoint = cms.double(0.970)
0685               # CSV Tight from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X
0686         )
0687       ),
0688     ),
0689     ## [optional] : when omitted no mass window will be applied
0690     ## for the W mass before filling the event monitoring plots
0691     massExtras = cms.PSet(
0692       lowerEdge = cms.double( 70.),
0693       upperEdge = cms.double(110.)
0694     ),
0695     ## [optional] : when omitted the monitoring plots for triggering
0696     ## will be empty
0697     #triggerExtras = cms.PSet(
0698     #  src   = cms.InputTag("TriggerResults","","HLT"),
0699     #  paths = cms.vstring([ 'HLT_Ele15_LW_L1R:HLT_QuadJetU15'])
0700     #)
0701   ),
0702   ## ------------------------------------------------------
0703   ## PRESELECTION
0704   ##
0705   ## setup of the event preselection, which will not
0706   ## be monitored
0707   ## [mandatory] : but may be empty
0708   ##
0709   preselection = cms.PSet(
0710     ## [optional] : when omitted no preselection is applied
0711     #trigger = cms.PSet(
0712     #  src    = cms.InputTag("TriggerResults","","HLT"),
0713     #  select = cms.vstring(['HLT_Ele15_SW_CaloEleId_L1R'])
0714     #),
0715     ## [optional] : when omitted no preselection is applied
0716     vertex = cms.PSet(
0717       src    = cms.InputTag("offlinePrimaryVertices"),
0718       select = cms.string('abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake')
0719     )
0720   ),
0721   ## ------------------------------------------------------
0722   ## SELECTION
0723   ##
0724   ## monitor histrograms are filled after each selection
0725   ## step, the selection is applied in the order defined
0726   ## by this vector
0727   ## [mandatory] : may be empty or contain an arbitrary
0728   ## number of PSets
0729   selection = cms.VPSet(
0730     cms.PSet(
0731       label = cms.string("elecs:step0"),
0732       src   = cms.InputTag("gedGsfElectrons"),
0733       electronId = cms.PSet( src = cms.InputTag("simpleEleId70cIso"), pattern = cms.int32(1) ),
0734       select = cms.string("pt>25 & abs(eta)<2.5 & (dr03TkSumPt+dr03EcalRecHitSumEt+dr03HcalTowerSumEt)/pt<0.1"),
0735       min = cms.int32(1),
0736       max = cms.int32(1),
0737     ),
0738     cms.PSet(
0739       label  = cms.string("pvs:step1"),
0740       src    = cms.InputTag("offlinePrimaryVertices"),
0741       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0742       max    = cms.int32(10),
0743     ),
0744     cms.PSet(
0745       label  = cms.string("pvs:step2"),
0746       src    = cms.InputTag("offlinePrimaryVertices"),
0747       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0748       max    = cms.int32(8),
0749     ),
0750     cms.PSet(
0751       label  = cms.string("pvs:step3"),
0752       src    = cms.InputTag("offlinePrimaryVertices"),
0753       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0754       max    = cms.int32(6),
0755     ),
0756     cms.PSet(
0757       label  = cms.string("pvs:step4"),
0758       src    = cms.InputTag("offlinePrimaryVertices"),
0759       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0760       max    = cms.int32(4),
0761     ),
0762     cms.PSet(
0763       label  = cms.string("pvs:step5"),
0764       src    = cms.InputTag("offlinePrimaryVertices"),
0765       select = cms.string("abs(x)<1. & abs(y)<1. & abs(z)<20. & tracksSize>3 & !isFake"),
0766       max    = cms.int32(2),
0767     ),
0768   )
0769 )
0770