Skip to content

Commit

Permalink
Merge pull request #43651 from Dr15Jones/modernizeRecoEcalEgammaClust…
Browse files Browse the repository at this point in the history
…erProducers

Made modules global in RecoEcal/EgammaClusterProducers
  • Loading branch information
cmsbuild authored Jan 12, 2024
2 parents b8447b1 + 47a0459 commit fa162ef
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ The following classes of "interesting id" are considered
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/global/EDProducer.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Utilities/interface/ESGetToken.h"
Expand All @@ -47,13 +47,12 @@ The following classes of "interesting id" are considered

#include <memory>

class InterestingDetIdCollectionProducer : public edm::stream::EDProducer<> {
class InterestingDetIdCollectionProducer : public edm::global::EDProducer<> {
public:
//! ctor
explicit InterestingDetIdCollectionProducer(const edm::ParameterSet&);
void beginRun(edm::Run const&, const edm::EventSetup&) final;
//! producer
void produce(edm::Event&, const edm::EventSetup&) override;
void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;

private:
// ----------member data ---------------------------
Expand All @@ -66,10 +65,8 @@ class InterestingDetIdCollectionProducer : public edm::stream::EDProducer<> {
std::string interestingDetIdCollection_;
int minimalEtaSize_;
int minimalPhiSize_;
const CaloTopology* caloTopology_;

int severityLevel_;
const EcalSeverityLevelAlgo* severity_;
bool keepNextToDead_;
bool keepNextToBoundary_;
};
Expand All @@ -81,8 +78,8 @@ InterestingDetIdCollectionProducer::InterestingDetIdCollectionProducer(const edm
recHitsToken_ = consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("recHitsLabel"));
basicClustersToken_ =
consumes<reco::BasicClusterCollection>(iConfig.getParameter<edm::InputTag>("basicClustersLabel"));
caloTopologyToken_ = esConsumes<CaloTopology, CaloTopologyRecord, edm::Transition::BeginRun>();
sevLVToken_ = esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd, edm::Transition::BeginRun>();
caloTopologyToken_ = esConsumes<CaloTopology, CaloTopologyRecord>();
sevLVToken_ = esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd>();
nextToDeadToken_ = esConsumes<EcalNextToDeadChannel, EcalNextToDeadChannelRcd>();

interestingDetIdCollection_ = iConfig.getParameter<std::string>("interestingDetIdCollection");
Expand All @@ -100,19 +97,17 @@ InterestingDetIdCollectionProducer::InterestingDetIdCollectionProducer(const edm
keepNextToBoundary_ = iConfig.getParameter<bool>("keepNextToBoundary");
}

void InterestingDetIdCollectionProducer::beginRun(edm::Run const& run, const edm::EventSetup& iSetup) {
edm::ESHandle<CaloTopology> theCaloTopology = iSetup.getHandle(caloTopologyToken_);
caloTopology_ = &(*theCaloTopology);

edm::ESHandle<EcalSeverityLevelAlgo> sevLv = iSetup.getHandle(sevLVToken_);
severity_ = sevLv.product();
}

// ------------ method called to produce the data ------------
void InterestingDetIdCollectionProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
void InterestingDetIdCollectionProducer::produce(edm::StreamID,
edm::Event& iEvent,
const edm::EventSetup& iSetup) const {
using namespace edm;
using namespace std;

auto const& caloTopology = iSetup.getData(caloTopologyToken_);

auto const& severity = iSetup.getData(sevLVToken_);

// take BasicClusters
Handle<reco::BasicClusterCollection> pClusters;
iEvent.getByToken(basicClustersToken_, pClusters);
Expand Down Expand Up @@ -155,7 +150,7 @@ void InterestingDetIdCollectionProducer::produce(edm::Event& iEvent, const edm::
if (eMaxId.null())
continue;

const CaloSubdetectorTopology* topology = caloTopology_->getSubdetectorTopology(eMaxId.det(), eMaxId.subdetId());
const CaloSubdetectorTopology* topology = caloTopology.getSubdetectorTopology(eMaxId.det(), eMaxId.subdetId());

xtalsToStore = topology->getWindow(eMaxId, minimalEtaSize_, minimalPhiSize_);

Expand All @@ -172,7 +167,7 @@ void InterestingDetIdCollectionProducer::produce(edm::Event& iEvent, const edm::
indexToStore.push_back(it->id());
}
// add hits for severities above a threshold
if (severityLevel_ >= 0 && severity_->severityLevel(*it) >= severityLevel_) {
if (severityLevel_ >= 0 && severity.severityLevel(*it) >= severityLevel_) {
indexToStore.push_back(it->id());
}
if (keepNextToDead_) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ The following classes of "interesting id" are considered
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/global/EDProducer.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Utilities/interface/ESGetToken.h"
Expand All @@ -46,13 +46,12 @@ The following classes of "interesting id" are considered

#include <memory>

class InterestingDetIdFromSuperClusterProducer : public edm::stream::EDProducer<> {
class InterestingDetIdFromSuperClusterProducer : public edm::global::EDProducer<> {
public:
//! ctor
explicit InterestingDetIdFromSuperClusterProducer(const edm::ParameterSet&);
void beginRun(edm::Run const&, const edm::EventSetup&) final;
//! producer
void produce(edm::Event&, const edm::EventSetup&) override;
void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;

private:
// ----------member data ---------------------------
Expand All @@ -64,10 +63,8 @@ class InterestingDetIdFromSuperClusterProducer : public edm::stream::EDProducer<
std::string interestingDetIdCollection_;
int minimalEtaSize_;
int minimalPhiSize_;
const CaloTopology* caloTopology_;

int severityLevel_;
const EcalSeverityLevelAlgo* severity_;
bool keepNextToDead_;
bool keepNextToBoundary_;
};
Expand All @@ -79,8 +76,8 @@ InterestingDetIdFromSuperClusterProducer::InterestingDetIdFromSuperClusterProduc
recHitsToken_ = consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("recHitsLabel"));
superClustersToken_ =
consumes<reco::SuperClusterCollection>(iConfig.getParameter<edm::InputTag>("superClustersLabel"));
caloTopologyToken_ = esConsumes<CaloTopology, CaloTopologyRecord, edm::Transition::BeginRun>();
severityLevelToken_ = esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd, edm::Transition::BeginRun>();
caloTopologyToken_ = esConsumes<CaloTopology, CaloTopologyRecord>();
severityLevelToken_ = esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd>();
interestingDetIdCollection_ = iConfig.getParameter<std::string>("interestingDetIdCollection");

minimalEtaSize_ = iConfig.getParameter<int>("etaSize");
Expand All @@ -99,19 +96,16 @@ InterestingDetIdFromSuperClusterProducer::InterestingDetIdFromSuperClusterProduc
}
}

void InterestingDetIdFromSuperClusterProducer::beginRun(edm::Run const& run, const edm::EventSetup& iSetup) {
edm::ESHandle<CaloTopology> theCaloTopology = iSetup.getHandle(caloTopologyToken_);
caloTopology_ = &(*theCaloTopology);

edm::ESHandle<EcalSeverityLevelAlgo> sevLv = iSetup.getHandle(severityLevelToken_);
severity_ = sevLv.product();
}

// ------------ method called to produce the data ------------
void InterestingDetIdFromSuperClusterProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
void InterestingDetIdFromSuperClusterProducer::produce(edm::StreamID,
edm::Event& iEvent,
const edm::EventSetup& iSetup) const {
using namespace edm;
using namespace std;

auto const& caloTopology = iSetup.getData(caloTopologyToken_);

auto const& severity = iSetup.getData(severityLevelToken_);
// take BasicClusters
Handle<reco::SuperClusterCollection> pClusters;
iEvent.getByToken(superClustersToken_, pClusters);
Expand Down Expand Up @@ -154,7 +148,7 @@ void InterestingDetIdFromSuperClusterProducer::produce(edm::Event& iEvent, const
if (eMaxId.null())
continue;

const CaloSubdetectorTopology* topology = caloTopology_->getSubdetectorTopology(eMaxId.det(), eMaxId.subdetId());
const CaloSubdetectorTopology* topology = caloTopology.getSubdetectorTopology(eMaxId.det(), eMaxId.subdetId());

xtalsToStore = topology->getWindow(eMaxId, minimalEtaSize_, minimalPhiSize_);
std::vector<std::pair<DetId, float> > xtalsInClus = (*clusIt)->hitsAndFractions();
Expand All @@ -173,7 +167,7 @@ void InterestingDetIdFromSuperClusterProducer::produce(edm::Event& iEvent, const
indexToStore.push_back(it->id());
}
// add hits for severities above a threshold
if (severityLevel_ >= 0 && severity_->severityLevel(*it) >= severityLevel_) {
if (severityLevel_ >= 0 && severity.severityLevel(*it) >= severityLevel_) {
indexToStore.push_back(it->id());
}
if (keepNextToDead_) {
Expand Down

0 comments on commit fa162ef

Please sign in to comment.