diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltL1P2GTTau_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltL1P2GTTau_cfi.py index bbebace806a24..1a69695283330 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltL1P2GTTau_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltL1P2GTTau_cfi.py @@ -1,10 +1,16 @@ import FWCore.ParameterSet.Config as cms -hltL1P2GTTau = cms.EDFilter("HLTP2GTTauFilter", - maxAbsEta = cms.double(1e+99), - minN = cms.uint32(1), - minPt = cms.double(5.0), - l1GTAlgoBlockTag = cms.InputTag("l1tGTAlgoBlockProducer"), - l1GTAlgoNames = cms.vstring("pDoublePuppiTau52_52"), - saveTags = cms.bool(True) -) +hltL1P2GTTau = cms.EDFilter("HLTP2GTSingleObjectFilter", + saveTags = cms.bool(True), + l1GTAlgoBlockTag = cms.InputTag('l1tGTAlgoBlockProducer'), + minN = cms.uint32(1), + l1GTAlgos = cms.VPSet( + cms.PSet( + name = cms.string('pDoublePuppiTau52_52'), + collection = cms.PSet( + objectType = cms.string('CL2Taus'), + minPt = cms.double(0), + maxAbsEta = cms.double(9999.) + ) + ) + )) diff --git a/HLTrigger/HLTfilters/plugins/HLTP2GTTauFilter.cc b/HLTrigger/HLTfilters/plugins/HLTP2GTTauFilter.cc deleted file mode 100644 index 644d0565b3902..0000000000000 --- a/HLTrigger/HLTfilters/plugins/HLTP2GTTauFilter.cc +++ /dev/null @@ -1,89 +0,0 @@ -#include "HLTrigger/HLTcore/interface/HLTFilter.h" -#include "DataFormats/L1Trigger/interface/P2GTCandidate.h" -#include "DataFormats/L1Trigger/interface/P2GTAlgoBlock.h" -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -class HLTP2GTTauFilter : public HLTFilter { -public: - explicit HLTP2GTTauFilter(const edm::ParameterSet&); - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - bool hltFilter(edm::Event&, const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs&) const override; - -private: - edm::InputTag m_l1GTAlgoBlockTag; - edm::EDGetTokenT m_algoBlockToken; - std::vector m_l1GTAlgoNames; - double m_minPt; - unsigned int m_minN; - double m_maxAbsEta; -}; - -HLTP2GTTauFilter::HLTP2GTTauFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig) { - m_l1GTAlgoBlockTag = iConfig.getParameter("l1GTAlgoBlockTag"); - m_algoBlockToken = consumes(m_l1GTAlgoBlockTag); - m_l1GTAlgoNames = iConfig.getParameter>("l1GTAlgoNames"); - m_minPt = iConfig.getParameter("minPt"); - m_minN = iConfig.getParameter("minN"); - m_maxAbsEta = iConfig.getParameter("maxAbsEta"); -} - -void HLTP2GTTauFilter::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - edm::ParameterSetDescription desc; - makeHLTFilterDescription(desc); - desc.add("l1GTAlgoBlockTag", edm::InputTag("")); - desc.add>("l1GTAlgoNames", {}); - desc.add("minPt", 24); - desc.add("minN", 1); - desc.add("maxAbsEta", 1e99); - descriptions.add("HLTP2GTTauFilter", desc); -} - -bool HLTP2GTTauFilter::hltFilter(edm::Event& iEvent, - const edm::EventSetup& iSetup, - trigger::TriggerFilterObjectWithRefs& filterproduct) const { - std::vector vl1cands; - if (saveTags()) { - filterproduct.addCollectionTag(m_l1GTAlgoBlockTag); // algorithm blocks - } - bool check_l1match = true; - if (m_l1GTAlgoBlockTag.isUninitialized() || m_l1GTAlgoNames.empty()) - check_l1match = false; - if (check_l1match) { - const l1t::P2GTAlgoBlockMap& algos = iEvent.get(m_algoBlockToken); - for (const auto& algoName : m_l1GTAlgoNames) { - auto it = algos.find(algoName); - if (it != algos.end() && it->second.decisionBeforeBxMaskAndPrescale()) { - const l1t::P2GTCandidateVectorRef& objects = it->second.trigObjects(); - for (const l1t::P2GTCandidateRef& obj : objects) { - if (obj->objectType() == l1t::P2GTCandidate::CL2Taus && obj->pt() >= m_minPt && - std::abs(obj->eta()) <= m_maxAbsEta) { - vl1cands.push_back(obj); - } - } - } - } - } - - if (saveTags()) { - edm::InputTag tagOld; - for (size_t i = 0; i < vl1cands.size(); ++i) { - const auto& cand = vl1cands[i]; - const edm::ProductID pid(cand.id()); - const auto& prov = iEvent.getStableProvenance(pid); - edm::InputTag tagNew(prov.moduleLabel(), prov.productInstanceName(), prov.processName()); - if (tagNew.encode() != tagOld.encode()) { - filterproduct.addCollectionTag(tagNew); - tagOld = tagNew; - } - } - } - for (const auto& vl1cand : vl1cands) { - filterproduct.addObject(trigger::TriggerL1Tau, vl1cand); - } - - return vl1cands.size() >= m_minN; -} -DEFINE_FWK_MODULE(HLTP2GTTauFilter);