Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove CMS deprecation warnings from RecoMuon/MuonSeedGenerator #38087

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 5 additions & 4 deletions RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.cc
Expand Up @@ -39,8 +39,9 @@ void RPCSeedFinder::setrecHits(ConstMuonRecHitContainer &recHits) {
isrecHitsset = true;
}

void RPCSeedFinder::setEventSetup(const edm::EventSetup &iSetup) {
eSetup = &iSetup;
void RPCSeedFinder::setEventSetup(const MagneticField &field, const RPCGeometry &rpcGeom) {
pField = &field;
pRPCGeom = &rpcGeom;
isEventSetupset = true;
}

Expand All @@ -54,8 +55,8 @@ void RPCSeedFinder::seed() {

weightedTrajectorySeed theweightedSeed;
int isGoodSeed = 0;
const edm::EventSetup &iSetup = *eSetup;
theweightedSeed = oneSeed.seed(iSetup, isGoodSeed);

theweightedSeed = oneSeed.seed(*pField, *pRPCGeom, isGoodSeed);
// Push back the good seed
if (isGoodSeed == 1) {
cout << "[RPCSeedFinder] --> Seeds from " << oneSeed.nrhit() << " recHits." << endl;
Expand Down
11 changes: 5 additions & 6 deletions RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.h
Expand Up @@ -12,13 +12,11 @@
#include <DataFormats/TrajectorySeed/interface/TrajectorySeed.h>
#include <RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h>
#include <FWCore/ParameterSet/interface/ParameterSet.h>
#include <FWCore/Framework/interface/EventSetup.h>
#include <vector>
#include <algorithm>

namespace edm {
class EventSetup;
}
class MagneticField;
class RPCGeometry;

class RPCSeedFinder {
typedef MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer;
Expand All @@ -34,7 +32,7 @@ class RPCSeedFinder {
void setOutput(std::vector<weightedTrajectorySeed> *goodweightedRef,
std::vector<weightedTrajectorySeed> *candidateweightedRef);
void setrecHits(ConstMuonRecHitContainer &recHits);
void setEventSetup(const edm::EventSetup &iSetup);
void setEventSetup(const MagneticField &field, const RPCGeometry &rpcGeom);
void seed();

private:
Expand All @@ -43,7 +41,8 @@ class RPCSeedFinder {
bool isConfigured;
bool isOutputset;
bool isEventSetupset;
const edm::EventSetup *eSetup;
const MagneticField *pField = nullptr;
const RPCGeometry *pRPCGeom = nullptr;
RPCSeedPattern oneSeed;
//ConstMuonRecHitContainer theRecHits;
std::vector<weightedTrajectorySeed> *goodweightedSeedsRef;
Expand Down
70 changes: 39 additions & 31 deletions RecoMuon/MuonSeedGenerator/src/RPCSeedGenerator.cc
Expand Up @@ -20,7 +20,7 @@ Description: <one line class summary>
#include <memory>
// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
Expand All @@ -43,6 +43,7 @@ Description: <one line class summary>
#include "RecoMuon/MeasurementDet/interface/MuonDetLayerMeasurements.h"
#include "RecoMuon/DetLayers/interface/MuonDetLayerGeometry.h"
#include "RecoMuon/Records/interface/MuonRecoGeometryRecord.h"
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"

// Framework
#include "FWCore/Framework/interface/EventSetup.h"
Expand Down Expand Up @@ -82,16 +83,16 @@ typedef RPCSeedPattern::weightedTrajectorySeed weightedTrajectorySeed;

class RPCSeedFinder;

class RPCSeedGenerator : public edm::EDProducer {
class RPCSeedGenerator : public edm::stream::EDProducer<> {
public:
explicit RPCSeedGenerator(const edm::ParameterSet& iConfig);
~RPCSeedGenerator() override;

private:
void beginJob() override;
void beginStream(edm::StreamID) override;
void beginRun(const edm::Run&, const edm::EventSetup& iSetup) override;
void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
void endJob() override;
void endStream() override;

// ----------member data ---------------------------
RPCSeedFinder Finder;
Expand All @@ -102,7 +103,12 @@ class RPCSeedGenerator : public edm::EDProducer {
std::vector<weightedTrajectorySeed> candidateweightedSeeds;
std::vector<weightedTrajectorySeed> goodweightedSeeds;
edm::InputTag theRPCRecHits;
MuonDetLayerMeasurements* muonMeasurements;
std::unique_ptr<MuonDetLayerMeasurements> muonMeasurements;

const edm::ESGetToken<RPCGeometry, MuonGeometryRecord> brRPCGeometryToken;
const edm::ESGetToken<MuonDetLayerGeometry, MuonRecoGeometryRecord> muonLayersToken;
const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> fieldToken;
const edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcGeometryToken;
};

//
Expand All @@ -116,7 +122,11 @@ class RPCSeedGenerator : public edm::EDProducer {
//
// constructors and destructor
//
RPCSeedGenerator::RPCSeedGenerator(const edm::ParameterSet& iConfig) {
RPCSeedGenerator::RPCSeedGenerator(const edm::ParameterSet& iConfig)
: brRPCGeometryToken(esConsumes<edm::Transition::BeginRun>()),
muonLayersToken(esConsumes()),
fieldToken(esConsumes()),
rpcGeometryToken(esConsumes()) {
//register your products
/* Examples
produces<ExampleData2>();
Expand All @@ -141,17 +151,17 @@ RPCSeedGenerator::RPCSeedGenerator(const edm::ParameterSet& iConfig) {
// Get RPC recHits by MuonDetLayerMeasurements, while CSC and DT is set to false and with empty InputTag
edm::ConsumesCollector iC = consumesCollector();

muonMeasurements = new MuonDetLayerMeasurements(edm::InputTag(),
edm::InputTag(),
theRPCRecHits,
edm::InputTag(),
edm::InputTag(),
iC,
false,
false,
true,
false,
false);
muonMeasurements = std::make_unique<MuonDetLayerMeasurements>(edm::InputTag(),
edm::InputTag(),
theRPCRecHits,
edm::InputTag(),
edm::InputTag(),
iC,
false,
false,
true,
false,
false);

cout << endl << "[RPCSeedGenerator] --> Constructor called" << endl;
}
Expand All @@ -160,9 +170,6 @@ RPCSeedGenerator::~RPCSeedGenerator() {
// do anything here that needs to be done at desctruction time
// (e.g. close files, deallocate resources etc.)
cout << "[RPCSeedGenerator] --> Destructor called" << endl;

if (muonMeasurements)
delete muonMeasurements;
}

//
Expand All @@ -180,18 +187,17 @@ void RPCSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup
auto candidateCollection = std::make_unique<TrajectorySeedCollection>();

// Muon Geometry - DT, CSC and RPC
edm::ESHandle<MuonDetLayerGeometry> muonLayers;
iSetup.get<MuonRecoGeometryRecord>().get(muonLayers);
MuonDetLayerGeometry const& muonLayers = iSetup.getData(muonLayersToken);

// Get the RPC layers
vector<const DetLayer*> RPCBarrelLayers = muonLayers->barrelRPCLayers();
vector<const DetLayer*> RPCBarrelLayers = muonLayers.barrelRPCLayers();
const DetLayer* RB4L = RPCBarrelLayers[5];
const DetLayer* RB3L = RPCBarrelLayers[4];
const DetLayer* RB22L = RPCBarrelLayers[3];
const DetLayer* RB21L = RPCBarrelLayers[2];
const DetLayer* RB12L = RPCBarrelLayers[1];
const DetLayer* RB11L = RPCBarrelLayers[0];
vector<const DetLayer*> RPCEndcapLayers = muonLayers->endcapRPCLayers();
vector<const DetLayer*> RPCEndcapLayers = muonLayers.endcapRPCLayers();
const DetLayer* REM3L = RPCEndcapLayers[0];
const DetLayer* REM2L = RPCEndcapLayers[1];
const DetLayer* REM1L = RPCEndcapLayers[2];
Expand Down Expand Up @@ -234,7 +240,10 @@ void RPCSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup
LayerFinder.setInput(recHitsRPC);

// Set Magnetic Field EventSetup of RPCSeedFinder
Finder.setEventSetup(iSetup);
const MagneticField& Field = iSetup.getData(fieldToken);

const RPCGeometry& rpcGeom = iSetup.getData(rpcGeometryToken);
Finder.setEventSetup(Field, rpcGeom);

// Start from filling layers to filling seeds
LayerFinder.fill();
Expand All @@ -260,7 +269,7 @@ void RPCSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup
LayerFinder.unsetInput();
}

void RPCSeedGenerator::beginJob() {
void RPCSeedGenerator::beginStream(edm::StreamID) {
// Set link and EventSetup of RPCSeedFinder, PCSeedrecHitFinder, CosmicrecHitFinder, RPCSeedLayerFinder
cout << "set link and Geometry EventSetup of RPCSeedFinder, RPCSeedrecHitFinder, RPCCosmicSeedrecHitFinder, "
"RPCSeedLayerFinder and RPCSeedOverlapper"
Expand All @@ -273,15 +282,14 @@ void RPCSeedGenerator::beginJob() {
}
void RPCSeedGenerator::beginRun(const edm::Run&, const edm::EventSetup& iSetup) {
// Get RPCGeometry
edm::ESHandle<RPCGeometry> rpcGeometry;
iSetup.get<MuonGeometryRecord>().get(rpcGeometry);
RPCGeometry const& rpcGeometry = iSetup.getData(brRPCGeometryToken);

CosmicrecHitFinder.setEdge(*rpcGeometry);
Overlapper.setGeometry(*rpcGeometry);
CosmicrecHitFinder.setEdge(rpcGeometry);
Overlapper.setGeometry(rpcGeometry);
Overlapper.setIO(&goodweightedSeeds, &candidateweightedSeeds);
}

void RPCSeedGenerator::endJob() { cout << "All jobs completed" << endl; }
void RPCSeedGenerator::endStream() { cout << "All jobs completed" << endl; }

//define this as a plug-in
DEFINE_FWK_MODULE(RPCSeedGenerator);