Skip to content

Commit ceae18e

Browse files
authored
Merge pull request #46112 from cms-tau-pog/CMSSW_14_2_X_tau-pog_BoostedDeepTau
Boosted DeepTauID v2.0
2 parents f27df5f + 8872b79 commit ceae18e

File tree

9 files changed

+364
-16
lines changed

9 files changed

+364
-16
lines changed

PhysicsTools/NanoAOD/python/boostedTaus_cff.py

+13-5
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,16 @@
55

66
##################### Import reusable funtions and objects from std taus ########
77
from PhysicsTools.NanoAOD.taus_cff import _tauIdWPMask, tausMCMatchLepTauForTable, tausMCMatchHadTauForTable,tauMCTable
8-
98
##################### User floats producers, selectors ##########################
109

1110

1211
finalBoostedTaus = cms.EDFilter("PATTauRefSelector",
1312
src = cms.InputTag("slimmedTausBoosted"),
14-
cut = cms.string("pt > 40 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2DBoldDMwLT') || tauID('byVVLooseIsolationMVArun2DBnewDMwLT'))")
13+
cut = cms.string("pt > 25 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2DBoldDMwLT') || tauID('byVVLooseIsolationMVArun2DBnewDMwLT') || tauID('byBoostedDeepTau20161718v2p0VSjetraw') > {})".format(0.82))
1514
)
1615
run2_nanoAOD_106Xv2.toModify(
1716
finalBoostedTaus,
18-
cut = "pt > 40 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2DBoldDMwLT') || tauID('byVVLooseIsolationMVArun2DBoldDMdR0p3wLT') || tauID('byVVLooseIsolationMVArun2DBnewDMwLT'))"
17+
cut = "pt > 25 && tauID('decayModeFindingNewDMs') && (tauID('byVVLooseIsolationMVArun2DBoldDMwLT') || tauID('byVVLooseIsolationMVArun2DBoldDMdR0p3wLT') || tauID('byVVLooseIsolationMVArun2DBnewDMwLT') || tauID('byBoostedDeepTau20161718v2p0VSjetraw') > {})".format(0.82)
1918
)
2019

2120
boostedTauTable = simplePATTauFlatTableProducer.clone(
@@ -59,16 +58,25 @@
5958
idAntiEle2018 = _tauIdWPMask("againstElectron%sMVA6", choices=("VLoose","Loose","Medium","Tight","VTight"), doc= "Anti-electron MVA discriminator V6 (2018)")
6059
)
6160

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+
6268
boostedTauTable.variables = cms.PSet(
6369
_boostedTauVarsBase,
6470
_boostedTauVarsMVAIso,
65-
_boostedTauVarsAntiEleMVA
71+
_boostedTauVarsAntiEleMVA,
72+
_boostedDeepTauRunIIv2p0Vars
6673
)
6774
_boostedTauVarsWithDr03 = cms.PSet(
6875
_boostedTauVarsBase,
6976
_boostedTauVarsMVAIso,
7077
_boostedTauVarsMVAIsoDr03,
71-
_boostedTauVarsAntiEleMVA
78+
_boostedTauVarsAntiEleMVA,
79+
_boostedDeepTauRunIIv2p0Vars
7280
)
7381
run2_nanoAOD_106Xv2.toModify(
7482
boostedTauTable,

PhysicsTools/NanoAOD/python/nanoDQM_cfi.py

+3
Original file line numberDiff line numberDiff line change
@@ -971,6 +971,9 @@
971971
Plot1D('rawIsodR03', 'rawIsodR03', 20, 0, 200, 'combined isolation (deltaBeta corrections, dR=0.3)'),
972972
Plot1D('rawMVAnewDM2017v2', 'rawMVAnewDM2017v2', 20, -1, 1, 'byIsolationMVArun2017v2DBnewDMwLT raw output discriminator (2017v2)'),
973973
Plot1D('rawMVAoldDM2017v2', 'rawMVAoldDM2017v2', 20, -1, 1, 'byIsolationMVArun2017v2DBoldDMwLT raw output discriminator (2017v2)'),
974+
Plot1D('rawBoostedDeepTauRunIIv2p0VSe', 'rawBoostedDeepTauRunIIv2p0VSe', 20, 0, 1, 'BoostedDeepTau(v2p0) tagger for boostedTaus raw scores Vs e'),
975+
Plot1D('rawBoostedDeepTauRunIIv2p0VSjet', 'rawBoostedDeepTauRunIIv2p0VSjet', 20, 0, 1, 'BoostedDeepTau(v2p0) tagger for boostedTaus raw scores Vs jet'),
976+
Plot1D('rawBoostedDeepTauRunIIv2p0VSmu', 'rawBoostedDeepTauRunIIv2p0VSmu', 20, 0, 1, 'BoostedDeepTau(v2p0) tagger for boostedTaus raw scores Vs mu'),
974977
)
975978
),
976979
L1PreFiringWeight = cms.PSet(

PhysicsTools/NanoAOD/python/nano_cff.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,12 @@ def nanoAOD_customizeCommon(process):
269269
idsToAdd = cms.vstring()
270270
)
271271
run2_nanoAOD_106Xv2.toModify(
272-
nanoAOD_boostedTau_switch, idsToAdd = ["mvaIso", "mvaIsoNewDM", "mvaIsoDR0p3", "againstEle"]
272+
nanoAOD_boostedTau_switch, idsToAdd = ["mvaIso", "mvaIsoNewDM", "mvaIsoDR0p3", "againstEle", "boostedDeepTauRunIIv2p0"]
273+
).toModify(
274+
process, lambda p : nanoAOD_addBoostedTauIds(p, nanoAOD_boostedTau_switch.idsToAdd.value())
275+
)
276+
run3_nanoAOD_pre142X.toModify(
277+
nanoAOD_boostedTau_switch, idsToAdd = ["boostedDeepTauRunIIv2p0"]
273278
).toModify(
274279
process, lambda p : nanoAOD_addBoostedTauIds(p, nanoAOD_boostedTau_switch.idsToAdd.value())
275280
)

PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py

+17-1
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,23 @@ def _add_deepFlavour(process):
307307
#-- Adding boosted taus
308308
from RecoTauTag.Configuration.boostedHPSPFTaus_cfi import addBoostedTaus
309309
addBoostedTaus(process)
310+
#-- Adding DeepTauID for boosted taus
311+
import RecoTauTag.RecoTau.tools.runTauIdMVA as tauIdConfig
312+
_updatedBoostedTauName = 'slimmedTausBoostedDeepIDs'
313+
_noUpdatedBoostedTauName = 'slimmedTausBoostedNoDeepIDs'
314+
boostedTauIdEmbedder = tauIdConfig.TauIDEmbedder(
315+
process, debug = False,
316+
originalTauName = _noUpdatedBoostedTauName,
317+
updatedTauName = _updatedBoostedTauName,
318+
postfix = 'BoostedForMini',
319+
toKeep = ['boostedDeepTauRunIIv2p0']
320+
)
321+
boostedTauIdEmbedder.runTauID()
322+
addToProcessAndTask(_noUpdatedBoostedTauName, process.slimmedTausBoosted.clone(),process,task)
323+
delattr(process, 'slimmedTausBoosted')
324+
process.slimmedTausBoosted = getattr(process, _updatedBoostedTauName).clone()
325+
process.rerunMvaIsolationTaskBoostedForMini.add(process.slimmedTausBoosted)
326+
task.add(process.rerunMvaIsolationTaskBoostedForMini)
310327
process.load("RecoTauTag.Configuration.RecoPFTauTag_cff")
311328
process.load("RecoTauTag.Configuration.HPSPFTaus_cff")
312329
#-- Adding customization for 94X 2017 legacy reMniAOD
@@ -326,7 +343,6 @@ def _add_deepFlavour(process):
326343
#-- Adding DeepTauID
327344
_updatedTauName = 'slimmedTausDeepIDs'
328345
_noUpdatedTauName = 'slimmedTausNoDeepIDs'
329-
import RecoTauTag.RecoTau.tools.runTauIdMVA as tauIdConfig
330346
tauIdEmbedder = tauIdConfig.TauIDEmbedder(
331347
process, debug = False,
332348
originalTauName = _noUpdatedTauName,

RecoTauTag/RecoTau/interface/DeepTauIdBase.h

+7-5
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ namespace {
109109
};
110110
inline std::vector<int> varsToDrop = {
111111
tau_phi, tau_dxy_pca_x, tau_dxy_pca_y, tau_dxy_pca_z}; // indices of vars to be dropped in the full var enum
112-
} // namespace TauBlockInputs
112+
} // namespace TauBlockInputs
113113

114114
namespace EgammaBlockInputs {
115115
enum vars {
@@ -1074,7 +1074,7 @@ class DeepTauIdBase : public Producer {
10741074

10751075
if (sub_version_ == 1) {
10761076
scalingParamsMap_ = &sc::scalingParamsMap_v2p1;
1077-
} else if (sub_version_ == 5) {
1077+
} else if ((sub_version_ == 5) || ((sub_version_ == 0) && (year_ == 20161718))) {
10781078
std::sort(TauBlockInputs::varsToDrop.begin(), TauBlockInputs::varsToDrop.end());
10791079
for (auto v : TauBlockInputs::varsToDrop) {
10801080
tauInputs_indices_.at(v) = TauBlockInputs::NumberOfInputs - TauBlockInputs::varsToDrop.size();
@@ -1083,6 +1083,8 @@ class DeepTauIdBase : public Producer {
10831083
}
10841084
if (year_ == 2026) {
10851085
scalingParamsMap_ = &sc::scalingParamsMap_PhaseIIv2p5;
1086+
} else if ((sub_version_ == 0) && (year_ == 20161718)) {
1087+
scalingParamsMap_ = &sc::scalingParamsMap_BoostedRun2_v2p0;
10861088
} else {
10871089
scalingParamsMap_ = &sc::scalingParamsMap_v2p5;
10881090
}
@@ -1298,7 +1300,7 @@ class DeepTauIdBase : public Producer {
12981300
if (sub_version_ == 1)
12991301
get(dnn::footprintCorrection) =
13001302
sp.scale(tau_funcs.getFootprintCorrectiondR03(tau, tau_ref), tauInputs_indices_[dnn::footprintCorrection]);
1301-
else if (sub_version_ == 5) {
1303+
else if ((sub_version_ == 5) || ((sub_version_ == 0) && (year_ == 20161718))) {
13021304
if (is_online_)
13031305
get(dnn::footprintCorrection) =
13041306
sp.scale(tau_funcs.getFootprintCorrectiondR03(tau, tau_ref), tauInputs_indices_[dnn::footprintCorrection]);
@@ -1372,7 +1374,7 @@ class DeepTauIdBase : public Producer {
13721374
sp.scale(tau_funcs.getFlightLength(tau, tau_index).z(), tauInputs_indices_[dnn::tau_flightLength_z]);
13731375
if (sub_version_ == 1)
13741376
get(dnn::tau_flightLength_sig) = 0.55756444; //This value is set due to a bug in the training
1375-
else if (sub_version_ == 5)
1377+
else if ((sub_version_ == 5) || ((sub_version_ == 0) && (year_ == 20161718)))
13761378
get(dnn::tau_flightLength_sig) =
13771379
sp.scale(tau_funcs.getFlightLengthSig(tau, tau_index), tauInputs_indices_[dnn::tau_flightLength_sig]);
13781380

@@ -1436,7 +1438,7 @@ class DeepTauIdBase : public Producer {
14361438
// to account for swapped order of PfCand_gamma and Electron blocks for v2p5 training w.r.t. v2p1
14371439
int fill_index_offset_e = 0;
14381440
int fill_index_offset_PFg = 0;
1439-
if (sub_version_ == 5) {
1441+
if ((sub_version_ == 5) || ((sub_version_ == 0) && (year_ == 20161718))) {
14401442
fill_index_offset_e =
14411443
scalingParamsMap_->at(std::make_pair(ft_PFg, false)).mean_.size(); // size of PF gamma features
14421444
fill_index_offset_PFg =

0 commit comments

Comments
 (0)