File indexing completed on 2023-03-17 11:16:08
0001 import FWCore.ParameterSet.Config as cms
0002 from PhysicsTools.NanoAOD.common_cff import *
0003 from PhysicsTools.NanoAOD.nano_eras_cff import *
0004 from PhysicsTools.NanoAOD.simpleCandidateFlatTableProducer_cfi import simpleCandidateFlatTableProducer
0005
0006
0007 from PhysicsTools.NanoAOD.taus_cff import _tauIdWPMask, tausMCMatchLepTauForTable, tausMCMatchHadTauForTable,tauMCTable
0008
0009
0010
0011
0012 finalBoostedTaus = cms.EDFilter("PATTauRefSelector",
0013 src = cms.InputTag("slimmedTausBoosted"),
0014 cut = cms.string("pt > 40 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2DBoldDMwLT') || tauID('byVVLooseIsolationMVArun2DBnewDMwLT'))")
0015 )
0016 run2_nanoAOD_106Xv2.toModify(
0017 finalBoostedTaus,
0018 cut = "pt > 40 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2017v2DBoldDMwLT2017') || tauID('byVVLooseIsolationMVArun2017v2DBoldDMdR0p3wLT2017') || tauID('byVVLooseIsolationMVArun2017v2DBnewDMwLT2017'))"
0019 )
0020
0021 boostedTauTable = simpleCandidateFlatTableProducer.clone(
0022 src = cms.InputTag("linkedObjects", "boostedTaus"),
0023 name= cms.string("boostedTau"),
0024 doc = cms.string("slimmedBoostedTaus after basic selection (" + finalBoostedTaus.cut.value()+")"),
0025 variables = cms.PSet()
0026 )
0027 _boostedTauVarsBase = cms.PSet(P4Vars,
0028 charge = Var("charge", int, doc="electric charge"),
0029 jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", "int16", doc="index of the associated jet (-1 if none)"),
0030 decayMode = Var("decayMode()",int),
0031 leadTkPtOverTauPt = Var("leadChargedHadrCand.pt/pt ",float, doc="pt of the leading track divided by tau pt",precision=10),
0032 leadTkDeltaEta = Var("leadChargedHadrCand.eta - eta ",float, doc="eta of the leading track, minus tau eta",precision=8),
0033 leadTkDeltaPhi = Var("deltaPhi(leadChargedHadrCand.phi, phi) ",float, doc="phi of the leading track, minus tau phi",precision=8),
0034
0035 rawIso = Var( "tauID('byCombinedIsolationDeltaBetaCorrRaw3Hits')", float, doc = "combined isolation (deltaBeta corrections)", precision=10),
0036 rawIsodR03 = Var( "(tauID('chargedIsoPtSumdR03')+max(0.,tauID('neutralIsoPtSumdR03')-0.072*tauID('puCorrPtSum')))", float, doc = "combined isolation (deltaBeta corrections, dR=0.3)", precision=10),
0037 chargedIso = Var( "tauID('chargedIsoPtSum')", float, doc = "charged isolation", precision=10),
0038 neutralIso = Var( "tauID('neutralIsoPtSum')", float, doc = "neutral (photon) isolation", precision=10),
0039 puCorr = Var( "tauID('puCorrPtSum')", float, doc = "pileup correction", precision=10),
0040 photonsOutsideSignalCone = Var( "tauID('photonPtSumOutsideSignalCone')", float, doc = "sum of photons outside signal cone", precision=10),
0041 idAntiMu = _tauIdWPMask("againstMuon%s3", choices=("Loose","Tight"), doc= "Anti-muon discriminator V3: ")
0042 )
0043
0044 _boostedTauVarsMVAIso = cms.PSet(
0045 rawMVAoldDM2017v2 = Var("tauID('byIsolationMVArun2DBoldDMwLTraw')",float, doc="byIsolationMVArun2DBoldDMwLT raw output discriminator (2017v2)",precision=10),
0046 rawMVAnewDM2017v2 = Var("tauID('byIsolationMVArun2DBnewDMwLTraw')",float,doc='byIsolationMVArun2DBnewDMwLT raw output discriminator (2017v2)',precision=10),
0047 idMVAnewDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2DBnewDMwLT", choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"), doc="IsolationMVArun2DBnewDMwLT ID working point (2017v2)"),
0048 idMVAoldDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2DBoldDMwLT",choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"), doc="IsolationMVArun2DBoldDMwLT ID working point (2017v2)"),
0049 )
0050
0051 _boostedTauVarsMVAIsoDr03 = cms.PSet(
0052 rawMVAoldDMdR032017v2 = Var("tauID('byIsolationMVArun2017v2DBoldDMdR0p3wLTraw2017')",float,doc='byIsolationMVArun2DBoldDMdR0p3wLT raw output discriminator (2017v2)'),
0053 idMVAoldDMdR032017v2 = _tauIdWPMask("by%sIsolationMVArun2017v2DBoldDMdR0p3wLT2017",choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"),doc="IsolationMVArun2DBoldDMdR0p3wLT ID working point (2017v2)")
0054 )
0055
0056 _boostedTauVarsAntiEleMVA = cms.PSet(
0057 rawAntiEle2018 = Var("tauID('againstElectronMVA6Raw')", float, doc= "Anti-electron MVA discriminator V6 raw output discriminator (2018)", precision=10),
0058 rawAntiEleCat2018 = Var("tauID('againstElectronMVA6category')", "int16", doc="Anti-electron MVA discriminator V6 category (2018)"),
0059 idAntiEle2018 = _tauIdWPMask("againstElectron%sMVA6", choices=("VLoose","Loose","Medium","Tight","VTight"), doc= "Anti-electron MVA discriminator V6 (2018)")
0060 )
0061
0062 boostedTauTable.variables = cms.PSet(
0063 _boostedTauVarsBase,
0064 _boostedTauVarsMVAIso,
0065 _boostedTauVarsAntiEleMVA
0066 )
0067 _boostedTauVarsWithDr03 = cms.PSet(
0068 _boostedTauVarsBase,
0069 _boostedTauVarsMVAIso,
0070 _boostedTauVarsMVAIsoDr03,
0071 _boostedTauVarsAntiEleMVA
0072 )
0073 run2_nanoAOD_106Xv2.toModify(
0074 boostedTauTable,
0075 variables = _boostedTauVarsWithDr03
0076 ).toModify(
0077 boostedTauTable.variables,
0078 rawMVAoldDM2017v2 = Var("tauID('byIsolationMVArun2017v2DBoldDMwLTraw2017')",float, doc="byIsolationMVArun2DBoldDMwLT raw output discriminator (2017v2)",precision=10),
0079 rawMVAnewDM2017v2 = Var("tauID('byIsolationMVArun2017v2DBnewDMwLTraw2017')",float,doc='byIsolationMVArun2DBnewDMwLT raw output discriminator (2017v2)',precision=10),
0080 idMVAnewDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2017v2DBnewDMwLT2017", choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"),doc="IsolationMVArun2DBnewDMwLT ID working point (2017v2)"),
0081 idMVAoldDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2017v2DBoldDMwLT2017",choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"),doc="IsolationMVArun2DBoldDMwLT ID working point (2017v2)"),
0082 rawAntiEle2018 = Var("tauID('againstElectronMVA6Raw2018')", float, doc= "Anti-electron MVA discriminator V6 raw output discriminator (2018)", precision=10),
0083 rawAntiEleCat2018 = Var("tauID('againstElectronMVA6category2018')", "int16", doc="Anti-electron MVA discriminator V6 category (2018)"),
0084 idAntiEle2018 = _tauIdWPMask("againstElectron%sMVA62018", choices=("VLoose","Loose","Medium","Tight","VTight"), doc= "Anti-electron MVA discriminator V6 (2018)")
0085 )
0086
0087 boostedTausMCMatchLepTauForTable = tausMCMatchLepTauForTable.clone(
0088 src = boostedTauTable.src
0089 )
0090
0091
0092 boostedTausMCMatchHadTauForTable = tausMCMatchHadTauForTable.clone(
0093 src = boostedTauTable.src
0094 )
0095
0096 boostedTauMCTable = tauMCTable.clone(
0097 src = boostedTauTable.src,
0098 mcMap = cms.InputTag("boostedTausMCMatchLepTauForTable"),
0099 mcMapVisTau = cms.InputTag("boostedTausMCMatchHadTauForTable"),
0100 objName = boostedTauTable.name,
0101 )
0102
0103
0104 boostedTauTask = cms.Task(finalBoostedTaus)
0105 boostedTauTablesTask = cms.Task(boostedTauTable)
0106 boostedTauMCTask = cms.Task(boostedTausMCMatchLepTauForTable,boostedTausMCMatchHadTauForTable,boostedTauMCTable)
0107
0108
0109 (run3_nanoAOD_122).toReplaceWith(
0110 boostedTauTask,cms.Task()
0111 ).toReplaceWith(
0112 boostedTauTablesTask,cms.Task()
0113 ).toReplaceWith(
0114 boostedTauMCTask,cms.Task()
0115 )