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 inheritance in L1MuonPixelTrackFitter and L1MuonRegionProducer #16492

Merged
merged 2 commits into from Nov 10, 2016
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
@@ -1,7 +1,6 @@
#ifndef RecoMuon_TrackerSeedGenerator_L1MuonPixelTrackFitter_H
#define RecoMuon_TrackerSeedGenerator_L1MuonPixelTrackFitter_H

#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitter.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "DataFormats/GeometryVector/interface/GlobalTag.h"
Expand All @@ -21,7 +20,7 @@ class L1MuGMTCand;
class PixelRecoLineRZ;
class SeedingHitSet;

class L1MuonPixelTrackFitter : public PixelFitter {
class L1MuonPixelTrackFitter {

public:
class Circle {
Expand Down
15 changes: 6 additions & 9 deletions RecoMuon/TrackerSeedGenerator/interface/L1MuonRegionProducer.h
@@ -1,24 +1,21 @@
#ifndef RecoMuon_TrackerSeedGenerator_L1MuonRegionProducer_H
#define RecoMuon_TrackerSeedGenerator_L1MuonRegionProducer_H

#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducer.h"
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
#include "DataFormats/GeometryVector/interface/GlobalPoint.h"
#include <vector>
#include <memory>

class TrackingRegion;
class L1MuGMTCand;
namespace edm { class Event; class EventSetup; class ParameterSet; }

class L1MuonRegionProducer : public TrackingRegionProducer {
class L1MuonRegionProducer {

public:
L1MuonRegionProducer(const edm::ParameterSet& cfg,
edm::ConsumesCollector && iC);
virtual ~L1MuonRegionProducer(){}
L1MuonRegionProducer(const edm::ParameterSet& cfg);
~L1MuonRegionProducer(){}
void setL1Constraint(const L1MuGMTCand & muon);
virtual std::vector<std::unique_ptr<TrackingRegion> >
regions(const edm::Event& ev, const edm::EventSetup& es) const override;
std::vector<std::unique_ptr<TrackingRegion> > regions() const;

private:
// region configuration
Expand Down
9 changes: 0 additions & 9 deletions RecoMuon/TrackerSeedGenerator/plugins/SealModule.cc
Expand Up @@ -19,15 +19,6 @@ DEFINE_EDM_PLUGIN(TrackerSeedGeneratorFactory, DualByEtaTSG, "DualByEtaTSG");
DEFINE_EDM_PLUGIN(TrackerSeedGeneratorFactory, DualByL2TSG, "DualByL2TSG");
DEFINE_EDM_PLUGIN(TrackerSeedGeneratorFactory, CombinedTSG, "CombinedTSG");

#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitter.h"
#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitterFactory.h"
#include "RecoMuon/TrackerSeedGenerator/interface/L1MuonPixelTrackFitter.h"
DEFINE_EDM_PLUGIN(PixelFitterFactory, L1MuonPixelTrackFitter, "L1MuonPixelTrackFitter");

#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducerFactory.h"
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducer.h"
#include "RecoMuon/TrackerSeedGenerator/interface/L1MuonRegionProducer.h"
DEFINE_EDM_PLUGIN(TrackingRegionProducerFactory, L1MuonRegionProducer, "L1MuonRegionProducer");



Expand Down
25 changes: 5 additions & 20 deletions RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc
Expand Up @@ -11,14 +11,9 @@
#include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGeneratorFactory.h"
#include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h"

#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitter.h"
#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitterFactory.h"
#include "RecoMuon/TrackerSeedGenerator/interface/L1MuonPixelTrackFitter.h"
#include "RecoMuon/TrackerSeedGenerator/interface/L1MuonSeedsMerger.h"

#include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducer.h"
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducerFactory.h"
#include "RecoMuon/TrackerSeedGenerator/interface/L1MuonRegionProducer.h"

#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackFilter.h"
Expand Down Expand Up @@ -46,7 +41,7 @@ template <class T> T sqr( T t) {return t*t;}


TSGFromL1Muon::TSGFromL1Muon(const edm::ParameterSet& cfg)
: theConfig(cfg),theRegionProducer(0),theHitGenerator(0),theFitter(0),theMerger(0)
: theConfig(cfg),theHitGenerator(0),theMerger(0)
{
produces<L3MuonTrajectorySeedCollection>();
theSourceTag = cfg.getParameter<edm::InputTag>("L1MuonLabel");
Expand All @@ -62,29 +57,19 @@ TSGFromL1Muon::TSGFromL1Muon(const edm::ParameterSet& cfg)
theHitGenerator = OrderedHitsGeneratorFactory::get()->create( hitsfactoryName, hitsfactoryPSet, iC);

theSourceToken=iC.consumes<L1MuonParticleCollection>(theSourceTag);

theRegionProducer = std::make_unique<L1MuonRegionProducer>(theConfig.getParameter<edm::ParameterSet>("RegionFactoryPSet"));
theFitter = std::make_unique<L1MuonPixelTrackFitter>(cfg.getParameter<edm::ParameterSet>("FitterPSet"));
}

TSGFromL1Muon::~TSGFromL1Muon()
{
delete theMerger;
delete theFitter;
delete theHitGenerator;
delete theRegionProducer;
}

void TSGFromL1Muon::beginRun(const edm::Run & run, const edm::EventSetup&es)
{
edm::ParameterSet regfactoryPSet = theConfig.getParameter<edm::ParameterSet>("RegionFactoryPSet");
std::string regfactoryName = regfactoryPSet.getParameter<std::string>("ComponentName");
TrackingRegionProducer * p =
TrackingRegionProducerFactory::get()->create(regfactoryName,regfactoryPSet, consumesCollector());
theRegionProducer = dynamic_cast<L1MuonRegionProducer* >(p);

edm::ParameterSet fitterPSet = theConfig.getParameter<edm::ParameterSet>("FitterPSet");
std::string fitterName = fitterPSet.getParameter<std::string>("ComponentName");
PixelFitter * f = PixelFitterFactory::get()->create( fitterName, fitterPSet);
theFitter = dynamic_cast<L1MuonPixelTrackFitter* >(f);

edm::ParameterSet cleanerPSet = theConfig.getParameter<edm::ParameterSet>("CleanerPSet");
std::string cleanerName = cleanerPSet.getParameter<std::string>("ComponentName");
// theMerger = PixelTrackCleanerFactory::get()->create( cleanerName, cleanerPSet);
Expand Down Expand Up @@ -114,7 +99,7 @@ void TSGFromL1Muon::produce(edm::Event& ev, const edm::EventSetup& es)
theFitter->setL1Constraint(muon);

typedef std::vector<std::unique_ptr<TrackingRegion> > Regions;
Regions regions = theRegionProducer->regions(ev,es);
Regions regions = theRegionProducer->regions();
for (Regions::const_iterator ir=regions.begin(); ir != regions.end(); ++ir) {

L1MuonSeedsMerger::TracksAndHits tracks;
Expand Down
4 changes: 2 additions & 2 deletions RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.h
Expand Up @@ -34,9 +34,9 @@ class TSGFromL1Muon : public edm::stream::EDProducer<> {
edm::InputTag theSourceTag;
edm::EDGetTokenT<l1extra::L1MuonParticleCollection> theSourceToken;

L1MuonRegionProducer * theRegionProducer;
std::unique_ptr<L1MuonRegionProducer> theRegionProducer;
OrderedHitsGenerator * theHitGenerator;
L1MuonPixelTrackFitter * theFitter;
std::unique_ptr<L1MuonPixelTrackFitter> theFitter;
std::unique_ptr<PixelTrackFilter> theFilter;
L1MuonSeedsMerger * theMerger;

Expand Down
6 changes: 2 additions & 4 deletions RecoMuon/TrackerSeedGenerator/src/L1MuonRegionProducer.cc
Expand Up @@ -8,8 +8,7 @@

using namespace std;

L1MuonRegionProducer::L1MuonRegionProducer(const edm::ParameterSet& cfg,
edm::ConsumesCollector && iC) {
L1MuonRegionProducer::L1MuonRegionProducer(const edm::ParameterSet& cfg) {

edm::ParameterSet regionPSet = cfg.getParameter<edm::ParameterSet>("RegionPSet");

Expand All @@ -28,8 +27,7 @@ void L1MuonRegionProducer::setL1Constraint(const L1MuGMTCand & muon)
theChargeL1 = muon.charge();
}

std::vector<std::unique_ptr<TrackingRegion> > L1MuonRegionProducer::
regions(const edm::Event& ev, const edm::EventSetup& es) const
std::vector<std::unique_ptr<TrackingRegion> > L1MuonRegionProducer::regions() const
{
double dx = cos(thePhiL1);
double dy = sin(thePhiL1);
Expand Down