diff --git a/GeneratorInterface/GenFilters/src/LHEJetFilter.cc b/GeneratorInterface/GenFilters/src/LHEJetFilter.cc index ed09471f1c109..eb905dee14695 100644 --- a/GeneratorInterface/GenFilters/src/LHEJetFilter.cc +++ b/GeneratorInterface/GenFilters/src/LHEJetFilter.cc @@ -1,6 +1,6 @@ #include -#include "FWCore/Framework/interface/EDFilter.h" +#include "FWCore/Framework/interface/global/EDFilter.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" @@ -20,19 +20,17 @@ using namespace std; using namespace fastjet; -class LHEJetFilter : public edm::EDFilter { +class LHEJetFilter : public edm::global::EDFilter<> { public: explicit LHEJetFilter(const edm::ParameterSet&); ~LHEJetFilter() override {} private: - bool filter(edm::Event&, const edm::EventSetup&) override; + bool filter(edm::StreamID strid, edm::Event& evt, const edm::EventSetup& params) const override; edm::EDGetTokenT tokenLHEEvent_; double jetPtMin_; JetDefinition jetdef_; - - vector jetconsts_; }; LHEJetFilter::LHEJetFilter(const edm::ParameterSet& params) @@ -40,7 +38,7 @@ LHEJetFilter::LHEJetFilter(const edm::ParameterSet& params) jetPtMin_(params.getParameter("jetPtMin")), jetdef_(antikt_algorithm, params.getParameter("jetR")) {} -bool LHEJetFilter::filter(edm::Event& evt, const edm::EventSetup& params) { +bool LHEJetFilter::filter(edm::StreamID strid, edm::Event& evt, const edm::EventSetup& params) const { edm::Handle lheinfo; evt.getByToken(tokenLHEEvent_, lheinfo); @@ -48,23 +46,20 @@ bool LHEJetFilter::filter(edm::Event& evt, const edm::EventSetup& params) { return true; } - jetconsts_.clear(); + vector jetconsts; + jetconsts.reserve(10); const lhef::HEPEUP& hepeup = lheinfo->hepeup(); for (size_t p = 0; p < hepeup.IDUP.size(); ++p) { if (hepeup.ISTUP[p] == 1) { const lhef::HEPEUP::FiveVector& mom = hepeup.PUP[p]; - jetconsts_.emplace_back(mom[0], mom[1], mom[2], mom[3]); + jetconsts.emplace_back(mom[0], mom[1], mom[2], mom[3]); } } - ClusterSequence cs(jetconsts_, jetdef_); - vector jets = sorted_by_pt(cs.inclusive_jets()); - - if (jets.empty()) { - return false; - } + ClusterSequence cs(jetconsts, jetdef_); + vector jets = cs.inclusive_jets(jetPtMin_); - return jets[0].perp() > jetPtMin_; + return !jets.empty(); } // Define module as a plug-in