diff --git a/RecoMET/METFilters/plugins/EcalDeadCellDeltaRFilter.cc b/RecoMET/METFilters/plugins/EcalDeadCellDeltaRFilter.cc index 01dc8ab680f99..1c508cd009d8f 100644 --- a/RecoMET/METFilters/plugins/EcalDeadCellDeltaRFilter.cc +++ b/RecoMET/METFilters/plugins/EcalDeadCellDeltaRFilter.cc @@ -24,14 +24,15 @@ #include "PhysicsTools/SelectorUtils/interface/strbitset.h" #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDFilter.h" -#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/stream/EDFilter.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" + #include "DataFormats/EcalRecHit/interface/EcalRecHit.h" #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" #include "DataFormats/DetId/interface/DetId.h" @@ -81,30 +82,17 @@ #include "DataFormats/Math/interface/deltaR.h" -// HCAL -#include "CondFormats/HcalObjects/interface/HcalChannelQuality.h" -#include "CondFormats/DataRecord/interface/HcalChannelQualityRcd.h" -#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" -#include "DataFormats/HcalDetId/interface/HcalDetId.h" - #include "DataFormats/Provenance/interface/RunLumiEventNumber.h" -#include "TFile.h" -#include "TTree.h" -#include "TH1.h" - -class EcalDeadCellDeltaRFilter : public edm::EDFilter { +class EcalDeadCellDeltaRFilter : public edm::stream::EDFilter<> { public: explicit EcalDeadCellDeltaRFilter(const edm::ParameterSet &); - ~EcalDeadCellDeltaRFilter() override; + ~EcalDeadCellDeltaRFilter() override = default; private: bool filter(edm::Event &, const edm::EventSetup &) override; - void beginJob() override; - void endJob() override; void beginRun(const edm::Run &, const edm::EventSetup &) override; void endRun(const edm::Run &, const edm::EventSetup &) override; - void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) override; virtual void envSet(const edm::EventSetup &); // ----------member data --------------------------- @@ -133,11 +121,12 @@ class EcalDeadCellDeltaRFilter : public edm::EDFilter { double calomet, calometPhi, tcmet, tcmetPhi, pfmet, pfmetPhi; // Channel status related - edm::ESHandle ecalStatus; // these come from EventSetup - edm::ESHandle hcalStatus; // these may come per LS + edm::ESHandle ecalStatus; // these come from EventSetup edm::ESHandle geometry; - - edm::ESHandle ttMap_; + const EcalTrigTowerConstituentsMap *ttMap_; + const edm::ESGetToken ecalChannelStatusToken_; + const edm::ESGetToken caloGeometryToken_; + const edm::ESGetToken ecalTrigTowerConstituentsMapToken_; const int maskedEcalChannelStatusThreshold_; const int chnStatusToBeEvaluated_; @@ -157,11 +146,6 @@ class EcalDeadCellDeltaRFilter : public edm::EDFilter { int evtProcessedCnt, totTPFilteredCnt; double wtdEvtProcessed, wtdTPFiltered; - const bool makeProfileRoot_; - const std::string profileRootName_; - TFile *profFile; - TH1F *h1_dummy; - const bool isProd_; const int verbose_; @@ -221,71 +205,40 @@ void EcalDeadCellDeltaRFilter::loadJets(const edm::Event &iEvent, const edm::Eve // EcalDeadCellDeltaRFilter::EcalDeadCellDeltaRFilter(const edm::ParameterSet &iConfig) : jetToken_(consumes >(iConfig.getParameter("jetInputTag"))), - jetSelCuts_(iConfig.getParameter >("jetSelCuts")) - - , - metToken_(consumes >(iConfig.getParameter("metInputTag"))) - - , + jetSelCuts_(iConfig.getParameter >("jetSelCuts")), + metToken_(consumes >(iConfig.getParameter("metInputTag"))), debug_(iConfig.getUntrackedParameter("debug", false)), - printSkimInfo_(iConfig.getUntrackedParameter("printSkimInfo", false)) - - , + printSkimInfo_(iConfig.getUntrackedParameter("printSkimInfo", false)), + ecalChannelStatusToken_(esConsumes()), + caloGeometryToken_(esConsumes()), + ecalTrigTowerConstituentsMapToken_(esConsumes()), maskedEcalChannelStatusThreshold_(iConfig.getParameter("maskedEcalChannelStatusThreshold")), - chnStatusToBeEvaluated_(iConfig.getParameter("chnStatusToBeEvaluated")) - - , - makeProfileRoot_(iConfig.getUntrackedParameter("makeProfileRoot", true)), - profileRootName_(iConfig.getUntrackedParameter("profileRootName", "EcalDeadCellDeltaRFilter.root")) - - , + chnStatusToBeEvaluated_(iConfig.getParameter("chnStatusToBeEvaluated")), isProd_(iConfig.getUntrackedParameter("isProd")), - verbose_(iConfig.getParameter("verbose")) - - , + verbose_(iConfig.getParameter("verbose")), doCracks_(iConfig.getUntrackedParameter("doCracks")), cracksHBHEdef_(iConfig.getParameter >("cracksHBHEdef")), - cracksHEHFdef_(iConfig.getParameter >("cracksHEHFdef")) - - , - EcalDeadCellDeltaRFilterInput_(iConfig.getParameter >("EcalDeadCellDeltaRFilterInput")) - - , + cracksHEHFdef_(iConfig.getParameter >("cracksHEHFdef")), + EcalDeadCellDeltaRFilterInput_(iConfig.getParameter >("EcalDeadCellDeltaRFilterInput")), taggingMode_(iConfig.getParameter("taggingMode")) { produces("deadCellStatus"); produces("boundaryStatus"); produces(); - - if (makeProfileRoot_) { - profFile = new TFile(profileRootName_.c_str(), "RECREATE"); - h1_dummy = new TH1F("dummy", "dummy", 500, 0, 500); - } -} - -EcalDeadCellDeltaRFilter::~EcalDeadCellDeltaRFilter() { - if (makeProfileRoot_) { - profFile->cd(); - - h1_dummy->Write(); - - profFile->Close(); - delete profFile; - } } void EcalDeadCellDeltaRFilter::envSet(const edm::EventSetup &iSetup) { if (debug_) std::cout << "***envSet***" << std::endl; - iSetup.get().get(ttMap_); + ttMap_ = &iSetup.getData(ecalTrigTowerConstituentsMapToken_); - iSetup.get().get(ecalStatus); - iSetup.get().get(geometry); + ecalStatus = iSetup.getHandle(ecalChannelStatusToken_); + geometry = iSetup.getHandle(caloGeometryToken_); if (!ecalStatus.isValid()) - throw "Failed to get ECAL channel status!"; + throw cms::Exception("ESDataError") << "Failed to get ECAL channel status!"; if (!geometry.isValid()) - throw "Failed to get the geometry!"; + throw cms::Exception("ESDataError") << "Failed to get the geometry!"; } // ------------ method called on each new Event ------------ @@ -337,10 +290,6 @@ bool EcalDeadCellDeltaRFilter::filter(edm::Event &iEvent, const edm::EventSetup dRtoDeadCell); } - if (makeProfileRoot_) { - // h1_dummy->Fill(xxx); - } - iEvent.put(std::make_unique(deadCellStatus), "deadCellStatus"); iEvent.put(std::make_unique(boundaryStatus), "boundaryStatus"); @@ -352,18 +301,6 @@ bool EcalDeadCellDeltaRFilter::filter(edm::Event &iEvent, const edm::EventSetup return taggingMode_ || pass; } -// ------------ method called once each job just before starting event loop ------------ -void EcalDeadCellDeltaRFilter::beginJob() { - if (debug_) - std::cout << "beginJob" << std::endl; -} - -// ------------ method called once each job just after ending the event loop ------------ -void EcalDeadCellDeltaRFilter::endJob() { - if (debug_) - std::cout << "endJob" << std::endl; -} - // ------------ method called once each run just before starting event loop ------------ void EcalDeadCellDeltaRFilter::beginRun(const edm::Run &run, const edm::EventSetup &iSetup) { if (debug_) @@ -385,16 +322,6 @@ void EcalDeadCellDeltaRFilter::endRun(const edm::Run &run, const edm::EventSetup return; } -// ------------ method called at lumi block start -void EcalDeadCellDeltaRFilter::beginLuminosityBlock(const edm::LuminosityBlock &iLSblock, - const edm::EventSetup &iSetup) { - // needs per-LS access, if used at all - iSetup.get().get("withTopo", hcalStatus); - if (!hcalStatus.isValid()) - throw "Failed to get HCAL channel status!"; - return; -} - int EcalDeadCellDeltaRFilter::etaToBoundary(const std::vector &jetTVec) { int isClose = 0;