) # correction and svfit ------------------------------------------------------ # this is done for preselected di-taus # mva MET from CMGTools.Common.eventCleaning.goodPVFilter_cfi import goodPVFilter from CMGTools.Utilities.mvaMET.mvaMET_cff import * from CMGTools.Common.factories.cmgBaseMETFromPFMET_cfi import cmgBaseMETFromPFMET mvaMETDiTau.recBosonSrc = 'cmgDiTauPreSel' cmgDiTauMVAPreSel = cmgDiTauCor.clone() cmgDiTauMVAPreSel.cfg.metCollection = 'mvaBaseMETDiTau' cmgDiTauMVAPreSel.cfg.diObjectCollection = 'cmgDiTauPreSel' # recoil correction metForRecoil = 'mvaMETDiTau' diTausForRecoil = 'cmgDiTauPreSel' recoilCorMETDiTau = recoilCorrectedMETDiTau.clone( recBosonSrc = diTausForRecoil, metSrc = metForRecoil ) mvaBaseMETDiTau = cmgBaseMETFromPFMET.clone() # SWITCH OFF RECOIL CORRECTIONS HERE
# no correction, no svfit --------------------------------------------------- # attaching the cuts defined in this module # to the di-tau factory cmgDiTau.cuts = diTauCuts.clone() cmgDiTau.cfg.leg1Collection = 'cmgTauScaler' cmgDiTau.cfg.leg2Collection = 'cmgTauScaler' # preselection cmgDiTauPreSel = cmgDiTauSel.clone( cut = 'getSelection("cuts_baseline") && leg1().pt()>40 && leg2().pt()>40') # Correct tau (+ MET) before MVA MET in di-tau channel cmgDiTauCorPreSel = cmgDiTauCor.clone() # cmgDiTauCorPreSel.cfg.metCollection = 'mvaBaseMETDiTau' cmgDiTauCorPreSel.cfg.diObjectCollection = 'cmgDiTauPreSel' diTauStdSequence = cms.Sequence( cmgTauScaler + cmgDiTau + cmgDiTauPreSel + cmgDiTauCorPreSel ) # correction and svfit ------------------------------------------------------ # this is done for preselected di-taus # mva MET
# pT preselection ------------------------------------------------------ cmgDiTauPreSel = cmgDiTauSel.clone( src='cmgDiTau', cut= 'leg1().pt()>40. && leg2().pt()>40. && leg1().tauID("byCombinedIsolationDeltaBetaCorrRaw3Hits") < 10. && leg2().tauID("byCombinedIsolationDeltaBetaCorrRaw3Hits") < 10.', ) # sequence ------------------------------------------------------------- diTauStdSequence = cms.Sequence(cmgDiTau + cmgDiTauPreSel) # mva MET -------------------------------------------------------------- mvaMETDiTau.recBosonSrc = 'cmgDiTauPreSel' # correct TauES (after MVA MET according to current baseline) ---------- cmgDiTauCor = cmgDiTauCor.clone() cmgDiTauCor.cfg.diObjectCollection = cms.InputTag('mvaMETDiTau') # this selector goes after the TauES correction ------------------------ cmgDiTauPtSel = cmgDiTauSel.clone( src=cms.InputTag("cmgDiTauCor"), cut=cms.string("leg1().pt()>45. && leg2().pt()>45.")) # recoil correction ---------------------------------------------------- recoilCorMETDiTau = recoilCorrectedMETDiTau.clone( recBosonSrc='cmgDiTauPtSel', ) # sequence ------------------------------------------------------------- mvaMETSequence = cms.Sequence(goodPVFilter + mvaMETDiTau + cmgDiTauCor + cmgDiTauPtSel + recoilCorMETDiTau)
cmgDiTauPreSel = cmgDiTauSel.clone( src = 'cmgDiTau', cut = 'leg1().pt()>40. && leg2().pt()>40. && leg1().tauID("byCombinedIsolationDeltaBetaCorrRaw3Hits") < 10. && leg2().tauID("byCombinedIsolationDeltaBetaCorrRaw3Hits") < 10.', ) # sequence ------------------------------------------------------------- diTauStdSequence = cms.Sequence( cmgDiTau + cmgDiTauPreSel ) # mva MET -------------------------------------------------------------- mvaMETDiTau.recBosonSrc = 'cmgDiTauPreSel' # correct TauES (after MVA MET according to current baseline) ---------- cmgDiTauCor = cmgDiTauCor.clone() cmgDiTauCor.cfg.diObjectCollection = cms.InputTag('mvaMETDiTau') # this selector goes after the TauES correction ------------------------ cmgDiTauPtSel = cmgDiTauSel.clone( src = cms.InputTag( "cmgDiTauCor" ), cut = cms.string( "leg1().pt()>45. && leg2().pt()>45." ) ) # recoil correction ---------------------------------------------------- recoilCorMETDiTau = recoilCorrectedMETDiTau.clone( recBosonSrc = 'cmgDiTauPtSel', ) # sequence ------------------------------------------------------------- mvaMETSequence = cms.Sequence( goodPVFilter +