CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
boostedTaus_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
4 from PhysicsTools.NanoAOD.simplePATTauFlatTableProducer_cfi import simplePATTauFlatTableProducer
5 
6 
7 from PhysicsTools.NanoAOD.taus_cff import _tauIdWPMask, tausMCMatchLepTauForTable, tausMCMatchHadTauForTable,tauMCTable
8 
9 
10 
11 finalBoostedTaus = cms.EDFilter("PATTauRefSelector",
12  src = cms.InputTag("slimmedTausBoosted"),
13  cut = cms.string("pt > 25 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2DBoldDMwLT') || tauID('byVVLooseIsolationMVArun2DBnewDMwLT') || tauID('byBoostedDeepTau20161718v2p0VSjetraw') > {})".format(0.82))
14 )
15 run2_nanoAOD_106Xv2.toModify(
16  finalBoostedTaus,
17  cut = "pt > 25 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2DBoldDMwLT') || tauID('byVVLooseIsolationMVArun2DBoldDMdR0p3wLT') || tauID('byVVLooseIsolationMVArun2DBnewDMwLT') || tauID('byBoostedDeepTau20161718v2p0VSjetraw') > {})".format(0.82)
18 )
19 
20 boostedTauTable = simplePATTauFlatTableProducer.clone(
21  src = cms.InputTag("linkedObjects", "boostedTaus"),
22  name= cms.string("boostedTau"),
23  doc = cms.string("slimmedBoostedTaus after basic selection (" + finalBoostedTaus.cut.value()+")"),
24  variables = cms.PSet() # PSet defined below in era dependent way
25 )
26 _boostedTauVarsBase = cms.PSet(P4Vars,
27  charge = Var("charge", int, doc="electric charge"),
28  jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", "int16", doc="index of the associated jet (-1 if none)"),
29  decayMode = Var("decayMode()",int),
30  leadTkPtOverTauPt = Var("leadChargedHadrCand.pt/pt ",float, doc="pt of the leading track divided by tau pt",precision=10),
31  leadTkDeltaEta = Var("leadChargedHadrCand.eta - eta ",float, doc="eta of the leading track, minus tau eta",precision=8),
32  leadTkDeltaPhi = Var("deltaPhi(leadChargedHadrCand.phi, phi) ",float, doc="phi of the leading track, minus tau phi",precision=8),
33 
34  rawIso = Var( "tauID('byCombinedIsolationDeltaBetaCorrRaw3Hits')", float, doc = "combined isolation (deltaBeta corrections)", precision=10),
35  rawIsodR03 = Var( "(tauID('chargedIsoPtSumdR03')+max(0.,tauID('neutralIsoPtSumdR03')-0.072*tauID('puCorrPtSum')))", float, doc = "combined isolation (deltaBeta corrections, dR=0.3)", precision=10),
36  chargedIso = Var( "tauID('chargedIsoPtSum')", float, doc = "charged isolation", precision=10),
37  neutralIso = Var( "tauID('neutralIsoPtSum')", float, doc = "neutral (photon) isolation", precision=10),
38  puCorr = Var( "tauID('puCorrPtSum')", float, doc = "pileup correction", precision=10),
39  photonsOutsideSignalCone = Var( "tauID('photonPtSumOutsideSignalCone')", float, doc = "sum of photons outside signal cone", precision=10),
40  idAntiMu = _tauIdWPMask("againstMuon%s3", choices=("Loose","Tight"), doc= "Anti-muon discriminator V3: ")
41 )
42 #MVA 2017 v2 variables
43 _boostedTauVarsMVAIso = cms.PSet(
44  rawMVAoldDM2017v2 = Var("tauID('byIsolationMVArun2DBoldDMwLTraw')",float, doc="byIsolationMVArun2DBoldDMwLT raw output discriminator (2017v2)",precision=10),
45  rawMVAnewDM2017v2 = Var("tauID('byIsolationMVArun2DBnewDMwLTraw')",float,doc='byIsolationMVArun2DBnewDMwLT raw output discriminator (2017v2)',precision=10),
46  idMVAnewDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2DBnewDMwLT", choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"), doc="IsolationMVArun2DBnewDMwLT ID working point (2017v2)"),
47  idMVAoldDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2DBoldDMwLT",choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"), doc="IsolationMVArun2DBoldDMwLT ID working point (2017v2)"),
48 )
49 #MVA 2017 v2 dR<0.3 variables
50 _boostedTauVarsMVAIsoDr03 = cms.PSet(
51  rawMVAoldDMdR032017v2 = Var("tauID('byIsolationMVArun2DBoldDMdR0p3wLTraw')",float,doc='byIsolationMVArun2DBoldDMdR0p3wLT raw output discriminator (2017v2)'),
52  idMVAoldDMdR032017v2 = _tauIdWPMask("by%sIsolationMVArun2DBoldDMdR0p3wLT",choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"),doc="IsolationMVArun2DBoldDMdR0p3wLT ID working point (2017v2)")
53 )
54 #AntiEle MVA 2018 variables
55 _boostedTauVarsAntiEleMVA = cms.PSet(
56  rawAntiEle2018 = Var("tauID('againstElectronMVA6Raw')", float, doc= "Anti-electron MVA discriminator V6 raw output discriminator (2018)", precision=10),
57  rawAntiEleCat2018 = Var("tauID('againstElectronMVA6category')", "int16", doc="Anti-electron MVA discriminator V6 category (2018)"),
58  idAntiEle2018 = _tauIdWPMask("againstElectron%sMVA6", choices=("VLoose","Loose","Medium","Tight","VTight"), doc= "Anti-electron MVA discriminator V6 (2018)")
59 )
60 
61 #DeepBoostedTau ID raw score branches
62 _boostedDeepTauRunIIv2p0Vars = cms.PSet(
63  rawBoostedDeepTauRunIIv2p0VSe = Var("tauID('byBoostedDeepTau20161718v2p0VSeraw')", float, doc="BoostedDeepTau(v2p0) tagger for boostedTaus raw scores Vs e", precision=10),
64  rawBoostedDeepTauRunIIv2p0VSmu = Var("tauID('byBoostedDeepTau20161718v2p0VSmuraw')", float, doc="BoostedDeepTau(v2p0) tagger for boostedTaus raw scores Vs mu", precision=10),
65  rawBoostedDeepTauRunIIv2p0VSjet = Var("tauID('byBoostedDeepTau20161718v2p0VSjetraw')", float, doc="BoostedDeepTau(v2p0) tagger for boostedTaus raw scores Vs jet", precision=10)
66 )
67 
68 boostedTauTable.variables = cms.PSet(
69  _boostedTauVarsBase,
70  _boostedTauVarsMVAIso,
71  _boostedTauVarsAntiEleMVA,
72  _boostedDeepTauRunIIv2p0Vars
73 )
74 _boostedTauVarsWithDr03 = cms.PSet(
75  _boostedTauVarsBase,
76  _boostedTauVarsMVAIso,
77  _boostedTauVarsMVAIsoDr03,
78  _boostedTauVarsAntiEleMVA,
79  _boostedDeepTauRunIIv2p0Vars
80 )
81 run2_nanoAOD_106Xv2.toModify(
82  boostedTauTable,
83  variables = _boostedTauVarsWithDr03
84 )
85 
86 boostedTausMCMatchLepTauForTable = tausMCMatchLepTauForTable.clone(
87  src = boostedTauTable.src
88 )
89 
90 #This requires genVisTaus in taus_cff.py
91 boostedTausMCMatchHadTauForTable = tausMCMatchHadTauForTable.clone(
92  src = boostedTauTable.src
93 )
94 
95 boostedTauMCTable = tauMCTable.clone(
96  src = boostedTauTable.src,
97  mcMap = cms.InputTag("boostedTausMCMatchLepTauForTable"),
98  mcMapVisTau = cms.InputTag("boostedTausMCMatchHadTauForTable"),
99  objName = boostedTauTable.name,
100 )
101 
102 
103 boostedTauTask = cms.Task(finalBoostedTaus)
104 boostedTauTablesTask = cms.Task(boostedTauTable)
105 boostedTauMCTask = cms.Task(boostedTausMCMatchLepTauForTable,boostedTausMCMatchHadTauForTable,boostedTauMCTable)
def Var(expr, valtype, doc=None, precision=-1, lazyEval=False)
Definition: common_cff.py:17
def _tauIdWPMask(pattern, choices, doc="", from_raw=False, wp_thrs=None)
Tables for final output and docs ##########################.
Definition: taus_cff.py:24