From 2acbc55a98be77533b770872bb31739c934c7888 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Wed, 25 Oct 2017 17:37:17 +0200 Subject: [PATCH 01/11] Add new payloads for MVAIso 2017v1 (cherry picked from commit 75e3b6a6f3176d8c88816f786a4bf7778b129ec4) --- .../loadRecoTauTagMVAsFromPrepDB_cfi.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py b/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py index 6120abb9004df..d23b6e6bec263 100644 --- a/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py +++ b/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py @@ -39,6 +39,9 @@ 'tauIdMVAIsoDBoldDMwLT2016' : "tauIdMVAIsoDBoldDMwLT2016", 'tauIdMVAIsoDBnewDMwLT2016' : "tauIdMVAIsoDBnewDMwLT2016" } +tauIdDiscrMVA_trainings_run2_2017 = { + 'tauIdMVAIsoDBoldDMwLT2017' : "tauIdMVAIsoDBoldDMwLT2017", +} tauIdDiscrMVA_WPs = { 'tauIdMVAoldDMwoLT' : { 'Eff90' : "oldDMwoLTEff90", @@ -141,6 +144,17 @@ 'Eff40' : "DBnewDMwLT2016Eff40" } } +tauIdDiscrMVA_WPs_run2_2017 = { + 'tauIdMVAIsoDBoldDMwLT2017' : { + 'Eff95' : "DBoldDMwLTEff95", + 'Eff90' : "DBoldDMwLTEff90", + 'Eff80' : "DBoldDMwLTEff80", + 'Eff70' : "DBoldDMwLTEff70", + 'Eff60' : "DBoldDMwLTEff60", + 'Eff50' : "DBoldDMwLTEff50", + 'Eff40' : "DBoldDMwLTEff40" + } +} tauIdDiscrMVA_mvaOutput_normalizations = { 'tauIdMVAoldDMwoLT' : "mvaOutput_normalization_oldDMwoLT", 'tauIdMVAoldDMwLT' : "mvaOutput_normalization_oldDMwLT", @@ -159,6 +173,9 @@ 'tauIdMVAIsoDBoldDMwLT2016' : "mvaOutput_normalization_DBoldDMwLT2016", 'tauIdMVAIsoDBnewDMwLT2016' : "mvaOutput_normalization_DBnewDMwLT2016" } +tauIdDiscrMVA_mvaOutput_normalizations_run2_2017 = { + 'tauIdMVAIsoDBoldDMwLT2017' : "mvaOutput_normalization" +} tauIdDiscrMVA_version = "v1" for training, gbrForestName in tauIdDiscrMVA_trainings.items(): loadRecoTauTagMVAsFromPrepDB.toGet.append( @@ -229,7 +246,32 @@ label = cms.untracked.string("RecoTauTag_%s%s_mvaOutput_normalization" % (gbrForestName, tauIdDiscrMVA_version)) ) ) +tauIdDiscrMVA_2017_version = "v1" +for training, gbrForestName in tauIdDiscrMVA_trainings_run2_2017.items(): + process.loadRecoTauTagMVAsFromPrepDB.toGet.append( + cms.PSet( + record = cms.string('GBRWrapperRcd'), + tag = cms.string("RecoTauTag_%s%s" % (gbrForestName, tauIdDiscrMVA_2017_version)), + label = cms.untracked.string("RecoTauTag_%s%s" % (gbrForestName, tauIdDiscrMVA_2017_version)) + ) + ) + for WP in tauIdDiscrMVA_WPs_run2_2017[training].keys(): + process.loadRecoTauTagMVAsFromPrepDB.toGet.append( + cms.PSet( + record = cms.string('PhysicsTGraphPayloadRcd'), + tag = cms.string("RecoTauTag_%s%s_WP%s" % (gbrForestName, tauIdDiscrMVA_2017_version, WP)), + label = cms.untracked.string("RecoTauTag_%s%s_WP%s" % (gbrForestName, tauIdDiscrMVA_2017_version, WP)) + ) + ) + loadRecoTauTagMVAsFromPrepDB.toGet.append( + cms.PSet( + record = cms.string('PhysicsTFormulaPayloadRcd'), + tag = cms.string("RecoTauTag_%s%s_mvaOutput_normalization" % (gbrForestName, tauIdDiscrMVA_2017_version)), + label = cms.untracked.string("RecoTauTag_%s%s_mvaOutput_normalization" % (gbrForestName, tauIdDiscrMVA_2017version)) + ) + ) +#### # register anti-electron discriminator MVA antiElectronDiscrMVA5_categories = { '0' : "gbr_NoEleMatch_woGwoGSF_BL", From 7b92b269411891f7994ed848f295dd0e4ba24307 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Wed, 25 Oct 2017 18:22:03 +0200 Subject: [PATCH 02/11] bugfix (cherry picked from commit f409fc94a07df206b20a51368b2a8c1e95812ddf) --- .../python/loadRecoTauTagMVAsFromPrepDB_cfi.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py b/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py index d23b6e6bec263..d135a5801f660 100644 --- a/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py +++ b/RecoTauTag/Configuration/python/loadRecoTauTagMVAsFromPrepDB_cfi.py @@ -248,7 +248,7 @@ ) tauIdDiscrMVA_2017_version = "v1" for training, gbrForestName in tauIdDiscrMVA_trainings_run2_2017.items(): - process.loadRecoTauTagMVAsFromPrepDB.toGet.append( + loadRecoTauTagMVAsFromPrepDB.toGet.append( cms.PSet( record = cms.string('GBRWrapperRcd'), tag = cms.string("RecoTauTag_%s%s" % (gbrForestName, tauIdDiscrMVA_2017_version)), @@ -256,7 +256,7 @@ ) ) for WP in tauIdDiscrMVA_WPs_run2_2017[training].keys(): - process.loadRecoTauTagMVAsFromPrepDB.toGet.append( + loadRecoTauTagMVAsFromPrepDB.toGet.append( cms.PSet( record = cms.string('PhysicsTGraphPayloadRcd'), tag = cms.string("RecoTauTag_%s%s_WP%s" % (gbrForestName, tauIdDiscrMVA_2017_version, WP)), @@ -267,7 +267,7 @@ cms.PSet( record = cms.string('PhysicsTFormulaPayloadRcd'), tag = cms.string("RecoTauTag_%s%s_mvaOutput_normalization" % (gbrForestName, tauIdDiscrMVA_2017_version)), - label = cms.untracked.string("RecoTauTag_%s%s_mvaOutput_normalization" % (gbrForestName, tauIdDiscrMVA_2017version)) + label = cms.untracked.string("RecoTauTag_%s%s_mvaOutput_normalization" % (gbrForestName, tauIdDiscrMVA_2017_version)) ) ) From 0ed49f82197ea5fb5c8cf6d52b8e1c05b339e4c7 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 26 Oct 2017 14:29:12 +0200 Subject: [PATCH 03/11] Add protection against a missing tauId source(s) (cherry picked from commit 48c07598cf15d3f0dfa14afff9ec17101c45a475) --- PhysicsTools/PatAlgos/plugins/PATTauProducer.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc index 67e735d4bf1a9..ee8d44d315662 100755 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc @@ -315,6 +315,11 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup edm::Handle pfTauIdDiscr; iEvent.getByToken(pfTauIDTokens_[i], pfTauIdDiscr); + if(!pfTauIdDiscr.isValid()){ + edm::LogWarning("DataSource") << "Tau discriminator '" << tauIDSrcs_[i].first + << "' has not been found in the event. It will not be embedded into the pat::Tau object."; + continue; + } ids[i].first = tauIDSrcs_[i].first; ids[i].second = getTauIdDiscriminator(pfTauCollection, idx, pfTauIdDiscr); } else if ( typeid(*tausRef) == typeid(reco::CaloTau) ) { From 1c6de2ea1e9e1b4fc29c6b529b5e2ca0a33b75cd Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 26 Oct 2017 14:47:39 +0200 Subject: [PATCH 04/11] use nullptr rather than 0 for a null pointer (cherry picked from commit b2d6c676d449316f37083c99004b83d9a3955111) --- PhysicsTools/PatAlgos/plugins/PATTauProducer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc index ee8d44d315662..fcbd72bbf422b 100755 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc @@ -372,7 +372,7 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup sumPhiTimesEnergy += icand->positionAtECALEntrance().phi()*icand->energy(); sumEtaTimesEnergy += icand->positionAtECALEntrance().eta()*icand->energy(); sumEnergy += icand->energy(); - const reco::Track* track = 0; + const reco::Track* track = nullptr; if ( icand->trackRef().isNonnull() ) track = icand->trackRef().get(); else if ( icand->muonRef().isNonnull() && icand->muonRef()->innerTrack().isNonnull() ) track = icand->muonRef()->innerTrack().get(); else if ( icand->muonRef().isNonnull() && icand->muonRef()->globalTrack().isNonnull() ) track = icand->muonRef()->globalTrack().get(); From d226a9e5c35d06c02a9f6cb8971db2c4276f46dc Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 26 Oct 2017 15:19:13 +0200 Subject: [PATCH 05/11] Add protection againist missing (calo) tauId sources (cherry picked from commit 4feb9c9ed9f2da6d0260b10448de96d79d0b0ef3) --- PhysicsTools/PatAlgos/plugins/PATTauProducer.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc index fcbd72bbf422b..9dccbe8f70709 100755 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc @@ -330,6 +330,11 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup edm::Handle caloTauIdDiscr; iEvent.getByToken(caloTauIDTokens_[i], caloTauIdDiscr); + if(!caloTauIdDiscr.isValid()){ + edm::LogWarning("DataSource") << "Tau discriminator '" << tauIDSrcs_[i].first + << "' has not been found in the event. It will not be embedded into the pat::Tau object."; + continue; + } ids[i].first = tauIDSrcs_[i].first; ids[i].second = getTauIdDiscriminator(caloTauCollection, idx, caloTauIdDiscr); } else { From 143a4df73d9ab1825b85f3b899f5e03d0f6cbde9 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 26 Oct 2017 17:20:50 +0200 Subject: [PATCH 06/11] add a switch allowing/disallowing skipping missing tauId products in the event (cherry picked from commit 31cdc5eb71e453c51e7a5b798022e1552800608c) --- PhysicsTools/PatAlgos/plugins/PATTauProducer.cc | 9 ++++++--- PhysicsTools/PatAlgos/plugins/PATTauProducer.h | 2 +- .../PatAlgos/python/producersLayer1/tauProducer_cfi.py | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc index 9dccbe8f70709..5e0105425375f 100755 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc @@ -87,6 +87,7 @@ PATTauProducer::PATTauProducer(const edm::ParameterSet & iConfig): } caloTauIDTokens_ = edm::vector_transform(tauIDSrcs_, [this](NameTag const & tag){return mayConsume(tag.second);}); pfTauIDTokens_ = edm::vector_transform(tauIDSrcs_, [this](NameTag const & tag){return mayConsume(tag.second);}); + skipMissingTauID_ = iConfig.getParameter( "skipMissingTauID" ); // IsoDeposit configurables if (iConfig.exists("isoDeposits")) { edm::ParameterSet depconf = iConfig.getParameter("isoDeposits"); @@ -315,7 +316,7 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup edm::Handle pfTauIdDiscr; iEvent.getByToken(pfTauIDTokens_[i], pfTauIdDiscr); - if(!pfTauIdDiscr.isValid()){ + if(skipMissingTauID_ && !pfTauIdDiscr.isValid()){ edm::LogWarning("DataSource") << "Tau discriminator '" << tauIDSrcs_[i].first << "' has not been found in the event. It will not be embedded into the pat::Tau object."; continue; @@ -330,7 +331,7 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup edm::Handle caloTauIdDiscr; iEvent.getByToken(caloTauIDTokens_[i], caloTauIdDiscr); - if(!caloTauIdDiscr.isValid()){ + if(skipMissingTauID_ && !caloTauIdDiscr.isValid()){ edm::LogWarning("DataSource") << "Tau discriminator '" << tauIDSrcs_[i].first << "' has not been found in the event. It will not be embedded into the pat::Tau object."; continue; @@ -532,7 +533,9 @@ void PATTauProducer::fillDescriptions(edm::ConfigurationDescriptions & descripti tauIDSourcesPSet.setAllowAnything(); iDesc.addNode( edm::ParameterDescription("tauIDSource", edm::InputTag(), true) xor edm::ParameterDescription("tauIDSources", tauIDSourcesPSet, true) - )->setComment("input with electron ID variables"); + )->setComment("input with tau ID variables"); + // (Dis)allow to skip missing tauId sources + iDesc.add("skipMissingTauID", false)->setComment("allow to skip a tau ID variable when not present in the event"); // IsoDeposit configurables edm::ParameterSetDescription isoDepositsPSet; diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.h b/PhysicsTools/PatAlgos/plugins/PATTauProducer.h index f1dc6866de901..7b813e9d85d27 100644 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.h +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.h @@ -93,7 +93,7 @@ namespace pat { std::vector tauIDSrcs_; std::vector > caloTauIDTokens_; std::vector > pfTauIDTokens_; - + bool skipMissingTauID_; // tools GreaterByPt pTTauComparator_; diff --git a/PhysicsTools/PatAlgos/python/producersLayer1/tauProducer_cfi.py b/PhysicsTools/PatAlgos/python/producersLayer1/tauProducer_cfi.py index 5e5b83573ba3f..f7232d5bb5258 100644 --- a/PhysicsTools/PatAlgos/python/producersLayer1/tauProducer_cfi.py +++ b/PhysicsTools/PatAlgos/python/producersLayer1/tauProducer_cfi.py @@ -133,7 +133,7 @@ againstElectronTightMVA6 = cms.InputTag("hpsPFTauDiscriminationByMVA6TightElectronRejection"), againstElectronVTightMVA6 = cms.InputTag("hpsPFTauDiscriminationByMVA6VTightElectronRejection"), ), - + skipMissingTauID = cms.bool(False), #Allow to skip a tau ID variable when not present in the event" # mc matching configurables addGenMatch = cms.bool(True), embedGenMatch = cms.bool(True), From b0948e505d7bfcd7728ca76866ba5faac1d37704 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 26 Oct 2017 18:41:15 +0200 Subject: [PATCH 07/11] code-checks (cherry picked from commit cc795b6d98a6d353784e323df4b970aebce17abd) --- PhysicsTools/PatAlgos/plugins/PATTauProducer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.h b/PhysicsTools/PatAlgos/plugins/PATTauProducer.h index 7b813e9d85d27..10abf78c9427f 100644 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.h +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.h @@ -48,9 +48,9 @@ namespace pat { public: explicit PATTauProducer(const edm::ParameterSet & iConfig); - ~PATTauProducer(); + ~PATTauProducer() override; - virtual void produce(edm::Event & iEvent, const edm::EventSetup& iSetup) override; + void produce(edm::Event & iEvent, const edm::EventSetup& iSetup) override; static void fillDescriptions(edm::ConfigurationDescriptions & descriptions); From 72ca8c51c92caf8f64f920d62970200ce7da8d73 Mon Sep 17 00:00:00 2001 From: Roger Date: Fri, 17 Nov 2017 12:18:01 +0100 Subject: [PATCH 08/11] changing LogWarning printout such that it is not raised for each tau but only at first occurence per instance (cherry picked from commit 01b008a7d2661de02cf5e13d34402dc86c708d72) --- .../PatAlgos/plugins/PATTauProducer.cc | 22 ++++++++++++++----- .../PatAlgos/plugins/PATTauProducer.h | 3 ++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc index 5e0105425375f..67179061f197a 100755 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.cc @@ -32,6 +32,7 @@ PATTauProducer::PATTauProducer(const edm::ParameterSet & iConfig): isolator_(iConfig.exists("userIsolation") ? iConfig.getParameter("userIsolation") : edm::ParameterSet(), consumesCollector(), false) , useUserData_(iConfig.exists("userData")) { + firstOccurence_=true; // initialize the configurables baseTauToken_ = consumes >(iConfig.getParameter( "tauSource" )); tauTransverseImpactParameterSrc_ = iConfig.getParameter( "tauTransverseImpactParameterSource" ); @@ -306,6 +307,7 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup // prepare ID extraction if ( addTauID_ ) { + std::string missingDiscriminators; std::vector ids(tauIDSrcs_.size()); for ( size_t i = 0; i < tauIDSrcs_.size(); ++i ) { if ( typeid(*tausRef) == typeid(reco::PFTau) ) { @@ -317,8 +319,10 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup iEvent.getByToken(pfTauIDTokens_[i], pfTauIdDiscr); if(skipMissingTauID_ && !pfTauIdDiscr.isValid()){ - edm::LogWarning("DataSource") << "Tau discriminator '" << tauIDSrcs_[i].first - << "' has not been found in the event. It will not be embedded into the pat::Tau object."; + if(!missingDiscriminators.empty()){ + missingDiscriminators+=", "; + } + missingDiscriminators+=tauIDSrcs_[i].first; continue; } ids[i].first = tauIDSrcs_[i].first; @@ -332,8 +336,10 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup iEvent.getByToken(caloTauIDTokens_[i], caloTauIdDiscr); if(skipMissingTauID_ && !caloTauIdDiscr.isValid()){ - edm::LogWarning("DataSource") << "Tau discriminator '" << tauIDSrcs_[i].first - << "' has not been found in the event. It will not be embedded into the pat::Tau object."; + if(!missingDiscriminators.empty()){ + missingDiscriminators+=", "; + } + missingDiscriminators+=tauIDSrcs_[i].first; continue; } ids[i].first = tauIDSrcs_[i].first; @@ -343,7 +349,13 @@ void PATTauProducer::produce(edm::Event & iEvent, const edm::EventSetup & iSetup "PATTauProducer: unsupported datatype '" << typeid(*tausRef).name() << "' for tauSource\n"; } } - + if(!missingDiscriminators.empty() && firstOccurence_){ + edm::LogWarning("DataSource") << "The following tau discriminators have not been found in the event:\n" + << missingDiscriminators <<"\n" + << "They will not be embedded into the pat::Tau object.\n" + << "Note: this message will be printed only at first occurence."; + firstOccurence_=false; + } aTau.setTauIDs(ids); } diff --git a/PhysicsTools/PatAlgos/plugins/PATTauProducer.h b/PhysicsTools/PatAlgos/plugins/PATTauProducer.h index 10abf78c9427f..71e04f7944e7a 100644 --- a/PhysicsTools/PatAlgos/plugins/PATTauProducer.h +++ b/PhysicsTools/PatAlgos/plugins/PATTauProducer.h @@ -55,7 +55,8 @@ namespace pat { static void fillDescriptions(edm::ConfigurationDescriptions & descriptions); private: - + bool firstOccurence_; // used to print LogWarnings only at first occurnece in the event loop + // configurables edm::EDGetTokenT > baseTauToken_; edm::EDGetTokenT tauTransverseImpactParameterToken_; From 6b2d8cca16b338fbdd1c31a7ba269938c8d7127e Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 25 Jan 2018 16:24:07 +0100 Subject: [PATCH 09/11] Add function modyfing makePatTausTask to include MVAIso tau-Id 2017v1 for reMiniAOD with 94X (X>3) --- .../Configuration/python/updateHPSPFTaus.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 RecoTauTag/Configuration/python/updateHPSPFTaus.py diff --git a/RecoTauTag/Configuration/python/updateHPSPFTaus.py b/RecoTauTag/Configuration/python/updateHPSPFTaus.py new file mode 100644 index 0000000000000..91f6bd5e05fce --- /dev/null +++ b/RecoTauTag/Configuration/python/updateHPSPFTaus.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +''' +Tools to update tau configuration for special runs like re-MiniAOD production +''' + +# Update MVAIso tau-Id for MiniAODv2 production with CMSSW_9_4_X (X>3) +def cloneAndModifyMVAIsolationFor94XMiniAODv2(process): + process.load("RecoTauTag.Configuration.RecoPFTauTag_cff") + ##Clone and modify modules of interest + process.hpsPFTauDiscriminationByIsolationMVArun2v1DBoldDMwLTrawMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByIsolationMVArun2v1DBoldDMwLTraw.clone( + mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1"), + mvaOpt = cms.string("DBoldDMwLTwGJ") + ) + process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLT.clone( + mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_mvaOutput_normalization") + ) + process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff90") + process.hpsPFTauDiscriminationByVVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.clone() + process.hpsPFTauDiscriminationByVVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff95") + process.hpsPFTauDiscriminationByLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.clone() + process.hpsPFTauDiscriminationByLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff80") + process.hpsPFTauDiscriminationByMediumIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.clone() + process.hpsPFTauDiscriminationByMediumIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff70") + process.hpsPFTauDiscriminationByTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.clone() + process.hpsPFTauDiscriminationByTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff60") + process.hpsPFTauDiscriminationByVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.clone() + process.hpsPFTauDiscriminationByVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff50") + process.hpsPFTauDiscriminationByVVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.clone() + process.hpsPFTauDiscriminationByVVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff40") + #create a new task and put the moduled therin + process.hpsPFTauMVAIsoFor94XMiniv2Task = cms.Task() + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByIsolationMVArun2v1DBoldDMwLTrawMVAIsoFor94XMiniv2) + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByVVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2) + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2) + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2) + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByMediumIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2) + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2) + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2) + process.hpsPFTauMVAIsoFor94XMiniv2Task.add(process.hpsPFTauDiscriminationByVVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2) + #Add all this to makePatTausTask + process.makePatTausTask.add(process.hpsPFTauMVAIsoFor94XMiniv2Task) + #Now modify patTau by replacing old by new discriminats + process.patTaus.tauIDSources.byIsolationMVArun2v1DBoldDMwLTraw = cms.InputTag("hpsPFTauDiscriminationByIsolationMVArun2v1DBoldDMwLTrawMVAIsoFor94XMiniv2") + process.patTaus.tauIDSources.byVVLooseIsolationMVArun2v1DBoldDMwLT = cms.InputTag("hpsPFTauDiscriminationByVVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2") + process.patTaus.tauIDSources.byVLooseIsolationMVArun2v1DBoldDMwLT = cms.InputTag("hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2") + process.patTaus.tauIDSources.byLooseIsolationMVArun2v1DBoldDMwLT = cms.InputTag("hpsPFTauDiscriminationByLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2") + process.patTaus.tauIDSources.byMediumIsolationMVArun2v1DBoldDMwLT = cms.InputTag("hpsPFTauDiscriminationByMediumIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2") + process.patTaus.tauIDSources.byTightIsolationMVArun2v1DBoldDMwLT = cms.InputTag("hpsPFTauDiscriminationByTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2") + process.patTaus.tauIDSources.byVTightIsolationMVArun2v1DBoldDMwLT = cms.InputTag("hpsPFTauDiscriminationByVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2") + process.patTaus.tauIDSources.byVVTightIsolationMVArun2v1DBoldDMwLT = cms.InputTag("hpsPFTauDiscriminationByVVTightIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2") From a997d051584b0b679ab8631cafc7162af7f4f310 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 25 Jan 2018 16:48:46 +0100 Subject: [PATCH 10/11] fix input parameters --- RecoTauTag/Configuration/python/updateHPSPFTaus.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/RecoTauTag/Configuration/python/updateHPSPFTaus.py b/RecoTauTag/Configuration/python/updateHPSPFTaus.py index 91f6bd5e05fce..4a116a9ccc575 100644 --- a/RecoTauTag/Configuration/python/updateHPSPFTaus.py +++ b/RecoTauTag/Configuration/python/updateHPSPFTaus.py @@ -13,7 +13,9 @@ def cloneAndModifyMVAIsolationFor94XMiniAODv2(process): mvaOpt = cms.string("DBoldDMwLTwGJ") ) process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLT.clone( - mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_mvaOutput_normalization") + mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_mvaOutput_normalization"), + key = cms.InputTag("hpsPFTauDiscriminationByIsolationMVArun2v1DBoldDMwLTrawMVAIsoFor94XMiniv2","category"), + toMultiplex = cms.InputTag("hpsPFTauDiscriminationByIsolationMVArun2v1DBoldDMwLTrawMVAIsoFor94XMiniv2") ) process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.mapping[0].cut = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_WPEff90") process.hpsPFTauDiscriminationByVVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2 = process.hpsPFTauDiscriminationByVLooseIsolationMVArun2v1DBoldDMwLTMVAIsoFor94XMiniv2.clone() From e8f62d5ea0485476d5e49afb7ed31ca86641ea14 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Thu, 25 Jan 2018 17:04:28 +0100 Subject: [PATCH 11/11] Add MVAIso tau-Id with 2017v1 training to miniAOD sequences --- PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py b/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py index 4625846615398..48283d8780906 100644 --- a/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py +++ b/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py @@ -323,6 +323,10 @@ def miniAOD_customizeCommon(process): from RecoTauTag.Configuration.boostedHPSPFTaus_cfi import addBoostedTaus addBoostedTaus(process) #--------------------------------------------------------------------------- + #Modify taus by adding MVAIso tau-Ids with 2017v1 training for 94X MiniAODv2 + from RecoTauTag.Configuration.updateHPSPFTaus import cloneAndModifyMVAIsolationFor94XMiniAODv2 + cloneAndModifyMVAIsolationFor94XMiniAODv2(process) + #--------------------------------------------------------------------------- #Adding tau reco for 80X legacy reMiniAOD #make a copy of makePatTauTask to avoid labels and substitution problems _makePatTausTaskWithTauReReco = process.makePatTausTask.copy()