2222#include " CommonTools/RecoAlgos/interface/PrimaryVertexSorting.h"
2323#include " DataFormats/PatCandidates/interface/PackedCandidate.h"
2424
25+ #include " TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
26+ #include " TrackingTools/Records/interface/TransientTrackRecord.h"
27+
2528/* *\class PrimaryVertexSorter
2629 * \author Andrea Rizzi
2730
@@ -56,6 +59,8 @@ class PrimaryVertexSorter : public edm::stream::EDProducer<> {
5659 edm::EDGetTokenT<edm::ValueMap<float >> tokenTrackTimeTag_;
5760 edm::EDGetTokenT<edm::ValueMap<float >> tokenTrackTimeResoTag_;
5861
62+ edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> tokenBuilder_;
63+
5964 bool produceOriginalMapping_;
6065 bool produceSortedVertices_;
6166 bool producePFPileUp_;
@@ -75,8 +80,6 @@ class PrimaryVertexSorter : public edm::stream::EDProducer<> {
7580};
7681
7782#include " DataFormats/VertexReco/interface/Vertex.h"
78- #include " TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
79- #include " TrackingTools/Records/interface/TransientTrackRecord.h"
8083#include " FWCore/Framework/interface/ESHandle.h"
8184
8285// #include "FWCore/MessageLogger/interface/MessageLogger.h"
@@ -90,6 +93,7 @@ PrimaryVertexSorter<ParticlesCollection>::PrimaryVertexSorter(const edm::Paramet
9093 tokenCandidates_(consumes<ParticlesCollection>(iConfig.getParameter<edm::InputTag>(" particles" ))),
9194 tokenVertices_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>(" vertices" ))),
9295 tokenJets_(consumes<edm::View<reco::Candidate>>(iConfig.getParameter<edm::InputTag>(" jets" ))),
96+ tokenBuilder_(esConsumes(edm::ESInputTag(" " , " TransientTrackBuilder" ))),
9397 produceOriginalMapping_(iConfig.getParameter<bool >(" produceAssociationToOriginalVertices" )),
9498 produceSortedVertices_(iConfig.getParameter<bool >(" produceSortedVertices" )),
9599 producePFPileUp_(iConfig.getParameter<bool >(" producePileUpCollection" )),
@@ -140,8 +144,7 @@ void PrimaryVertexSorter<ParticlesCollection>::produce(edm::Event& iEvent, const
140144 Handle<edm::View<reco::Candidate>> jets;
141145 iEvent.getByToken (tokenJets_, jets);
142146
143- edm::ESHandle<TransientTrackBuilder> builder;
144- iSetup.get <TransientTrackRecord>().get (" TransientTrackBuilder" , builder);
147+ TransientTrackBuilder const & builder = iSetup.getData (tokenBuilder_);
145148
146149 Handle<VertexCollection> vertices;
147150 iEvent.getByToken (tokenVertices_, vertices);
@@ -174,7 +177,7 @@ void PrimaryVertexSorter<ParticlesCollection>::produce(edm::Event& iEvent, const
174177
175178 for (auto const & pf : particles) {
176179 std::pair<int , PrimaryVertexAssignment::Quality> vtxWithQuality =
177- runAlgo (*vertices, pf, trackTimeTag, trackTimeResoTag, *jets, * builder);
180+ runAlgo (*vertices, pf, trackTimeTag, trackTimeResoTag, *jets, builder);
178181 pfToPVVector.push_back (vtxWithQuality.first );
179182 pfToPVQualityVector.push_back (vtxWithQuality.second );
180183 }
0 commit comments