From 62fdc6a6340eede0de240cfa8ebd06a8ad85fe77 Mon Sep 17 00:00:00 2001 From: Nurfikri Norjoharuddeen Date: Wed, 21 Feb 2024 10:09:03 +0100 Subject: [PATCH 1/3] Add fromPV2Recovery option to recover tau reco efficiency. Set it to be false by default in the module. --- CommonTools/PileupAlgos/plugins/PuppiProducer.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc index f3c6f0d973cf8..a810ae65fd38b 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc @@ -69,6 +69,7 @@ class PuppiProducer : public edm::stream::EDProducer<> { bool fPuppiDiagnostics; bool fPuppiNoLep; bool fUseFromPVLooseTight; + bool fUseFromPV2Recovery; bool fUseDZ; bool fUseDZforPileup; double fDZCut; @@ -77,6 +78,7 @@ class PuppiProducer : public edm::stream::EDProducer<> { double fEtaMaxCharged; double fPtMaxPhotons; double fEtaMaxPhotons; + double fPtMinForFromPV2Recovery; uint fNumOfPUVtxsForCharged; double fDZCutForChargedFromPUVtxs; bool fUseExistingWeights; @@ -94,6 +96,7 @@ PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) { fPuppiDiagnostics = iConfig.getParameter("puppiDiagnostics"); fPuppiNoLep = iConfig.getParameter("puppiNoLep"); fUseFromPVLooseTight = iConfig.getParameter("UseFromPVLooseTight"); + fUseFromPV2Recovery = iConfig.getParameter("UseFromPV2Recovery"); fUseDZ = iConfig.getParameter("UseDeltaZCut"); fUseDZforPileup = iConfig.getParameter("UseDeltaZCutForPileup"); fDZCut = iConfig.getParameter("DeltaZCut"); @@ -102,6 +105,7 @@ PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) { fEtaMaxCharged = iConfig.getParameter("EtaMaxCharged"); fPtMaxPhotons = iConfig.getParameter("PtMaxPhotons"); fEtaMaxPhotons = iConfig.getParameter("EtaMaxPhotons"); + fPtMinForFromPV2Recovery = iConfig.getParameter("PtMinForFromPV2Recovery"); fNumOfPUVtxsForCharged = iConfig.getParameter("NumOfPUVtxsForCharged"); fDZCutForChargedFromPUVtxs = iConfig.getParameter("DeltaZCutForChargedFromPUVtxs"); fUseExistingWeights = iConfig.getParameter("useExistingWeights"); @@ -285,6 +289,8 @@ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { pReco.id = 1; else if ((fUseDZ) && (std::abs(pReco.eta) >= fEtaMinUseDZ) && (std::abs(pDZ) < fDZCut)) pReco.id = 1; + else if (fUseFromPV2Recovery && tmpFromPV == 2 && (pReco.pt > fPtMinForFromPV2Recovery)) + pReco.id = 1; else if ((fUseDZforPileup) && (std::abs(pReco.eta) >= fEtaMinUseDZ) && (std::abs(pDZ) >= fDZCut)) pReco.id = 2; else if (fUseFromPVLooseTight && tmpFromPV == 1) @@ -328,6 +334,8 @@ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { pReco.id = 1; else if ((fUseDZ) && (std::abs(pReco.eta) >= fEtaMinUseDZ) && (std::abs(pDZ) < fDZCut)) pReco.id = 1; + else if (fUseFromPV2Recovery && lPack->fromPV() == (pat::PackedCandidate::PVTight) && (pReco.pt > fPtMinForFromPV2Recovery)) + pReco.id = 1; else if ((fUseDZforPileup) && (std::abs(pReco.eta) >= fEtaMinUseDZ) && (std::abs(pDZ) >= fDZCut)) pReco.id = 2; else if (fUseFromPVLooseTight && lPack->fromPV() == (pat::PackedCandidate::PVLoose)) @@ -498,6 +506,7 @@ void PuppiProducer::fillDescriptions(edm::ConfigurationDescriptions& description desc.add("puppiDiagnostics", false); desc.add("puppiNoLep", false); desc.add("UseFromPVLooseTight", false); + desc.add("UseFromPV2Recovery", false); desc.add("UseDeltaZCut", true); desc.add("UseDeltaZCutForPileup", true); desc.add("DeltaZCut", 0.3); @@ -508,6 +517,7 @@ void PuppiProducer::fillDescriptions(edm::ConfigurationDescriptions& description desc.add("EtaMaxPhotons", 2.5); desc.add("PtMaxNeutrals", 200.); desc.add("PtMaxNeutralsStartSlope", 0.); + desc.add("PtMinForFromPV2Recovery", 0.); desc.add("NumOfPUVtxsForCharged", 0); desc.add("DeltaZCutForChargedFromPUVtxs", 0.2); desc.add("useExistingWeights", false); From c41d3a7cd1fe6c327745a8a21b8cf737d3e9b66f Mon Sep 17 00:00:00 2001 From: Nurfikri Norjoharuddeen Date: Wed, 21 Feb 2024 10:11:10 +0100 Subject: [PATCH 2/3] Switch on UseFromPV2Recovery flag and set pt min value to be 4. --- CommonTools/PileupAlgos/python/Puppi_cff.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CommonTools/PileupAlgos/python/Puppi_cff.py b/CommonTools/PileupAlgos/python/Puppi_cff.py index 25ff1c2682ac6..1b6c1a17022a1 100644 --- a/CommonTools/PileupAlgos/python/Puppi_cff.py +++ b/CommonTools/PileupAlgos/python/Puppi_cff.py @@ -36,6 +36,8 @@ DeltaZCutForChargedFromPUVtxs = primaryVertexAssociationJME.assignment.DzCutForChargedFromPUVtxs, PtMaxNeutralsStartSlope = 20., PtMaxPhotons = 20., + UseFromPV2Recovery = True, + PtMinForFromPV2Recovery = 4., clonePackedCands = False, # should only be set to True for MiniAOD algos = { 0: dict( From dd92bc9b7492d6818f2d672ce0054dd005f099b1 Mon Sep 17 00:00:00 2001 From: Nurfikri Norjoharuddeen Date: Wed, 21 Feb 2024 21:01:38 +0100 Subject: [PATCH 3/3] Apply code-format patch --- CommonTools/PileupAlgos/plugins/PuppiProducer.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc index a810ae65fd38b..2ec716126bf75 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc @@ -334,7 +334,8 @@ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { pReco.id = 1; else if ((fUseDZ) && (std::abs(pReco.eta) >= fEtaMinUseDZ) && (std::abs(pDZ) < fDZCut)) pReco.id = 1; - else if (fUseFromPV2Recovery && lPack->fromPV() == (pat::PackedCandidate::PVTight) && (pReco.pt > fPtMinForFromPV2Recovery)) + else if (fUseFromPV2Recovery && lPack->fromPV() == (pat::PackedCandidate::PVTight) && + (pReco.pt > fPtMinForFromPV2Recovery)) pReco.id = 1; else if ((fUseDZforPileup) && (std::abs(pReco.eta) >= fEtaMinUseDZ) && (std::abs(pDZ) >= fDZCut)) pReco.id = 2;