Skip to content

Commit

Permalink
Merge pull request #35000 from makortel/esconsumesCkf
Browse files Browse the repository at this point in the history
Migrate RecoTracker/CkfPattern, and ClusterShapeTrajectoryFilter to esConsumes
  • Loading branch information
cmsbuild authored Aug 27, 2021
2 parents b60b388 + 61a4ce9 commit 6d263b0
Show file tree
Hide file tree
Showing 22 changed files with 97 additions and 107 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ class TrackerGeometry;

class ConversionTrackFinder {
public:
ConversionTrackFinder(const edm::ParameterSet& config, const BaseCkfTrajectoryBuilder* trajectoryBuilder);
ConversionTrackFinder(const edm::ParameterSet& config,
const BaseCkfTrajectoryBuilder* trajectoryBuilder,
edm::ConsumesCollector iC);

virtual ~ConversionTrackFinder();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ class TrajectoryCleanerBySharedHits;

class InOutConversionTrackFinder : public ConversionTrackFinder {
public:
InOutConversionTrackFinder(const edm::ParameterSet& config, const BaseCkfTrajectoryBuilder* trajectoryBuilder);
InOutConversionTrackFinder(const edm::ParameterSet& config,
const BaseCkfTrajectoryBuilder* trajectoryBuilder,
edm::ConsumesCollector iC);

~InOutConversionTrackFinder() override;
std::vector<Trajectory> tracks(const TrajectorySeedCollection& seeds,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ class TrajectoryCleanerBySharedHits;

class OutInConversionTrackFinder : public ConversionTrackFinder {
public:
OutInConversionTrackFinder(const edm::ParameterSet& config, const BaseCkfTrajectoryBuilder* trajectoryBuilder);
OutInConversionTrackFinder(const edm::ParameterSet& config,
const BaseCkfTrajectoryBuilder* trajectoryBuilder,
edm::ConsumesCollector iC);

~OutInConversionTrackFinder() override;

Expand Down
5 changes: 3 additions & 2 deletions RecoEgamma/EgammaPhotonAlgos/src/ConversionTrackFinder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@
#include <sstream>

ConversionTrackFinder::ConversionTrackFinder(const edm::ParameterSet& conf,
const BaseCkfTrajectoryBuilder* trajectoryBuilder)
const BaseCkfTrajectoryBuilder* trajectoryBuilder,
edm::ConsumesCollector iC)
: theCkfTrajectoryBuilder_(trajectoryBuilder),
theInitialState_(new TransientInitialStateEstimator(
conf.getParameter<edm::ParameterSet>("TransientInitialStateEstimatorParameters"))),
conf.getParameter<edm::ParameterSet>("TransientInitialStateEstimatorParameters"), iC)),
theTrackerGeom_(nullptr),
theUpdator_(nullptr),
thePropagator_(nullptr) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
#include <sstream>

InOutConversionTrackFinder::InOutConversionTrackFinder(const edm::ParameterSet& conf,
const BaseCkfTrajectoryBuilder* trajectoryBuilder)
: ConversionTrackFinder(conf, trajectoryBuilder) {
const BaseCkfTrajectoryBuilder* trajectoryBuilder,
edm::ConsumesCollector iC)
: ConversionTrackFinder(conf, trajectoryBuilder, iC) {
theTrajectoryCleaner_ = new TrajectoryCleanerBySharedHits(conf);

// get the seed cleaner
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
#include "Utilities/General/interface/precomputed_value_sort.h"

OutInConversionTrackFinder::OutInConversionTrackFinder(const edm::ParameterSet& conf,
const BaseCkfTrajectoryBuilder* trajectoryBuilder)
: ConversionTrackFinder(conf, trajectoryBuilder) {
const BaseCkfTrajectoryBuilder* trajectoryBuilder,
edm::ConsumesCollector iC)
: ConversionTrackFinder(conf, trajectoryBuilder, iC) {
theTrajectoryCleaner_ = new TrajectoryCleanerBySharedHits(conf);

// get the seed cleaner
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,9 @@ ConversionTrackCandidateProducer::ConversionTrackCandidateProducer(const edm::Pa
theTrajectoryBuilder_(createBaseCkfTrajectoryBuilder(
config.getParameter<edm::ParameterSet>("TrajectoryBuilderPSet"), consumesCollector())),
outInSeedFinder_{config, consumesCollector()},
outInTrackFinder_{config, theTrajectoryBuilder_.get()},
outInTrackFinder_{config, theTrajectoryBuilder_.get(), consumesCollector()},
inOutSeedFinder_{config, consumesCollector()},
inOutTrackFinder_{config, theTrajectoryBuilder_.get()} {
inOutTrackFinder_{config, theTrajectoryBuilder_.get(), consumesCollector()} {
OutInTrackCandidateCollection_ = config.getParameter<std::string>("outInTrackCandidateCollection");
InOutTrackCandidateCollection_ = config.getParameter<std::string>("inOutTrackCandidateCollection");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class ClusterShapeTrajectoryFilter : public TrajectoryFilter {

private:
edm::EDGetTokenT<SiPixelClusterShapeCache> theCacheToken;
edm::ESGetToken<ClusterShapeHitFilter, TrajectoryFilter::Record> theFilterToken;
const SiPixelClusterShapeCache* theCache;
const ClusterShapeHitFilter* theFilter;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,12 @@

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include "TrackingTools/PatternTools/interface/Trajectory.h"
#include "TrackingTools/PatternTools/interface/TempTrajectory.h"

#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h"
#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
Expand All @@ -37,18 +35,14 @@ using namespace std;
/*****************************************************************************/
ClusterShapeTrajectoryFilter::ClusterShapeTrajectoryFilter(const edm::ParameterSet& iConfig, edm::ConsumesCollector& iC)
: theCacheToken(iC.consumes<SiPixelClusterShapeCache>(iConfig.getParameter<edm::InputTag>("cacheSrc"))),
theFilterToken(iC.esConsumes(edm::ESInputTag("", "ClusterShapeHitFilter"))),
theFilter(nullptr) {}

ClusterShapeTrajectoryFilter::~ClusterShapeTrajectoryFilter() {}

void ClusterShapeTrajectoryFilter::setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
edm::ESHandle<ClusterShapeHitFilter> shape;
iSetup.get<TrajectoryFilter::Record>().get("ClusterShapeHitFilter", shape);
theFilter = shape.product();

edm::Handle<SiPixelClusterShapeCache> cache;
iEvent.getByToken(theCacheToken, cache);
theCache = cache.product();
theFilter = &iSetup.getData(theFilterToken);
theCache = &iEvent.get(theCacheToken);
}

/*****************************************************************************/
Expand Down
14 changes: 9 additions & 5 deletions RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@

#include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
#include "TrackingTools/PatternTools/interface/TrajectoryBuilder.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Utilities/interface/ESGetToken.h"
#include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h"

#include <cassert>
Expand All @@ -26,6 +28,7 @@ class TrajectoryMeasurement;
class TrajectoryContainer;
class TrajectoryStateOnSurface;
class TrajectoryFitter;
class TransientRecHitRecord;
class TransientTrackingRecHitBuilder;
class Trajectory;
class TempTrajectory;
Expand Down Expand Up @@ -65,6 +68,7 @@ class BaseCkfTrajectoryBuilder : public TrajectoryBuilder {

// Claims ownership of TrajectoryFilter pointers
BaseCkfTrajectoryBuilder(const edm::ParameterSet& conf,
edm::ConsumesCollector iC,
std::unique_ptr<TrajectoryFilter> filter,
std::unique_ptr<TrajectoryFilter> inOutFilter = nullptr);
BaseCkfTrajectoryBuilder(const BaseCkfTrajectoryBuilder&) = delete;
Expand Down Expand Up @@ -182,11 +186,11 @@ class BaseCkfTrajectoryBuilder : public TrajectoryBuilder {
std::unique_ptr<TrajectoryFilter> theInOutFilter; /** Filter used at end of in-out tracking */

// for EventSetup
const std::string theUpdatorName;
const std::string thePropagatorAlongName;
const std::string thePropagatorOppositeName;
const std::string theEstimatorName;
const std::string theRecHitBuilderName;
const edm::ESGetToken<TrajectoryStateUpdator, TrackingComponentsRecord> theUpdatorToken;
const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorAlongToken;
const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorOppositeToken;
const edm::ESGetToken<Chi2MeasurementEstimatorBase, TrackingComponentsRecord> theEstimatorToken;
const edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> theRecHitBuilderToken;
};

#endif
14 changes: 7 additions & 7 deletions RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#define CkfTrackCandidateMakerBase_h

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"

Expand All @@ -29,6 +28,8 @@
#include <memory>

class TransientInitialStateEstimator;
class NavigationSchoolRecord;
class TrackerDigiGeometryRecord;

namespace cms {
class CkfTrackCandidateMakerBase {
Expand All @@ -54,18 +55,17 @@ namespace cms {

std::unique_ptr<BaseCkfTrajectoryBuilder> theTrajectoryBuilder;

std::string theTrajectoryCleanerName;
edm::ESGetToken<TrajectoryCleaner, TrajectoryCleaner::Record> theTrajectoryCleanerToken;
const TrajectoryCleaner* theTrajectoryCleaner;

std::unique_ptr<TransientInitialStateEstimator> theInitialState;

const std::string theMagFieldName;
edm::ESHandle<MagneticField> theMagField;
edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker;

std::string theNavigationSchoolName;
edm::ESGetToken<NavigationSchool, NavigationSchoolRecord> theNavigationSchoolToken;
const NavigationSchool* theNavigationSchool;

edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorToken;
edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> theTrackerToken;

std::unique_ptr<RedundantSeedCleaner> theSeedCleaner;

unsigned int maxSeedsBeforeCleaning_;
Expand Down
7 changes: 4 additions & 3 deletions RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ class TrajectorySeed;
class TrajectoryStateOnSurface;
class TrajectoryFilter;

#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/Event.h"
Expand All @@ -35,8 +34,10 @@ class CkfTrajectoryBuilder : public BaseCkfTrajectoryBuilder {
typedef std::vector<Trajectory> TrajectoryContainer;
typedef std::vector<TempTrajectory> TempTrajectoryContainer;

CkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC);
CkfTrajectoryBuilder(const edm::ParameterSet& conf, std::unique_ptr<TrajectoryFilter> filter);
CkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector iC);
CkfTrajectoryBuilder(const edm::ParameterSet& conf,
edm::ConsumesCollector iC,
std::unique_ptr<TrajectoryFilter> filter);

~CkfTrajectoryBuilder() override {}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#ifndef TransientInitialStateEstimator_H
#define TransientInitialStateEstimator_H

#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
Expand All @@ -24,14 +25,14 @@ class TransientInitialStateEstimator {
public:
typedef TrajectoryStateOnSurface TSOS;

TransientInitialStateEstimator(const edm::ParameterSet& conf);
TransientInitialStateEstimator(const edm::ParameterSet& conf, edm::ConsumesCollector iC);
void setEventSetup(const edm::EventSetup& es, const TkClonerImpl& hc);

std::pair<TrajectoryStateOnSurface, const GeomDet*> innerState(const Trajectory& traj, bool doBackFit = true) const;

private:
const std::string thePropagatorAlongName;
const std::string thePropagatorOppositeName;
const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorAlongToken;
const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorOppositeToken;
const Propagator* thePropagatorAlong;
const Propagator* thePropagatorOpposite; // not used? can we remove it?
TkClonerImpl theHitCloner;
Expand Down
1 change: 0 additions & 1 deletion RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/EventSetup.h"

#include "FWCore/ParameterSet/interface/ParameterSet.h"
Expand Down
1 change: 0 additions & 1 deletion RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/EventSetup.h"

#include "FWCore/ParameterSet/interface/ParameterSet.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ namespace {

GroupedCkfTrajectoryBuilder::GroupedCkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC)
: BaseCkfTrajectoryBuilder(conf,
iC,
BaseCkfTrajectoryBuilder::createTrajectoryFilter(
conf.getParameter<edm::ParameterSet>("trajectoryFilter"), iC),
conf.getParameter<bool>("useSameTrajFilter")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#ifndef GroupedCkfTrajectoryBuilder_H
#define GroupedCkfTrajectoryBuilder_H

#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/EventSetup.h"

Expand Down
35 changes: 12 additions & 23 deletions RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,22 @@

#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
#include "TrackingTools/Records/interface/TransientRecHitRecord.h"

BaseCkfTrajectoryBuilder::BaseCkfTrajectoryBuilder(const edm::ParameterSet& conf,
edm::ConsumesCollector iC,
std::unique_ptr<TrajectoryFilter> filter,
std::unique_ptr<TrajectoryFilter> inOutFilter)
: theSeedAs5DHit(conf.getParameter<bool>("seedAs5DHit")),
theFilter(std::move(filter)),
theInOutFilter(std::move(inOutFilter)),
theUpdatorName(conf.getParameter<std::string>("updator")),
thePropagatorAlongName(conf.getParameter<std::string>("propagatorAlong")),
thePropagatorOppositeName(conf.getParameter<std::string>("propagatorOpposite")),
theEstimatorName(conf.getParameter<std::string>("estimator")),
theRecHitBuilderName(conf.getParameter<std::string>("TTRHBuilder")) {
theUpdatorToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter<std::string>("updator")))),
thePropagatorAlongToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter<std::string>("propagatorAlong")))),
thePropagatorOppositeToken(
iC.esConsumes(edm::ESInputTag("", conf.getParameter<std::string>("propagatorOpposite")))),
theEstimatorToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter<std::string>("estimator")))),
theRecHitBuilderToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter<std::string>("TTRHBuilder")))) {
if (conf.exists("clustersToSkip"))
edm::LogError("BaseCkfTrajectoryBuilder")
<< "ERROR: " << typeid(*this).name() << " has a clustersToSkip parameter set";
Expand Down Expand Up @@ -227,23 +228,11 @@ void BaseCkfTrajectoryBuilder::unset() const {
void BaseCkfTrajectoryBuilder::setEvent(const edm::Event& iEvent,
const edm::EventSetup& iSetup,
const MeasurementTrackerEvent* data) {
edm::ESHandle<TrajectoryStateUpdator> updatorHandle;
edm::ESHandle<Propagator> propagatorAlongHandle;
edm::ESHandle<Propagator> propagatorOppositeHandle;
edm::ESHandle<Chi2MeasurementEstimatorBase> estimatorHandle;
edm::ESHandle<TransientTrackingRecHitBuilder> recHitBuilderHandle;

iSetup.get<TrackingComponentsRecord>().get(theUpdatorName, updatorHandle);
iSetup.get<TrackingComponentsRecord>().get(thePropagatorAlongName, propagatorAlongHandle);
iSetup.get<TrackingComponentsRecord>().get(thePropagatorOppositeName, propagatorOppositeHandle);
iSetup.get<TrackingComponentsRecord>().get(theEstimatorName, estimatorHandle);
iSetup.get<TransientRecHitRecord>().get(theRecHitBuilderName, recHitBuilderHandle);

theUpdator = updatorHandle.product();
thePropagatorAlong = propagatorAlongHandle.product();
thePropagatorOpposite = propagatorOppositeHandle.product();
theEstimator = estimatorHandle.product();
theTTRHBuilder = recHitBuilderHandle.product();
theUpdator = &iSetup.getData(theUpdatorToken);
thePropagatorAlong = &iSetup.getData(thePropagatorAlongToken);
thePropagatorOpposite = &iSetup.getData(thePropagatorOppositeToken);
theEstimator = &iSetup.getData(theEstimatorToken);
theTTRHBuilder = &iSetup.getData(theRecHitBuilderToken);

setData(data);
if (theFilter)
Expand Down
Loading

0 comments on commit 6d263b0

Please sign in to comment.