Skip to content

Commit 41eba9a

Browse files
committed
Move accessing EventSetup from RectangularEtaPhiTrackingRegion to the functions that create those objects
1 parent a71c1dd commit 41eba9a

27 files changed

+397
-152
lines changed

Calibration/HcalIsolatedTrackReco/plugins/HITRegionalPixelSeedGenerator.cc

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@
77
#include "DataFormats/Common/interface/Handle.h"
88
#include "FWCore/Framework/interface/EventSetup.h"
99
#include "FWCore/Utilities/interface/InputTag.h"
10+
#include "MagneticField/Engine/interface/MagneticField.h"
11+
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
12+
#include "RecoTracker/Record/interface/TrackerMultipleScatteringRecord.h"
13+
#include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
1014
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducer.h"
11-
#include "RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h"
1215
#include "RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h"
1316
#include "DataFormats/VertexReco/interface/Vertex.h"
1417
#include "DataFormats/VertexReco/interface/VertexFwd.h"
@@ -31,10 +34,11 @@
3134

3235
class HITRegionalPixelSeedGenerator : public TrackingRegionProducer {
3336
public:
34-
explicit HITRegionalPixelSeedGenerator(const edm::ParameterSet& conf_, edm::ConsumesCollector&& iC) {
37+
explicit HITRegionalPixelSeedGenerator(const edm::ParameterSet& conf, edm::ConsumesCollector&& iC)
38+
: token_bfield(iC.esConsumes()), token_msmaker(iC.esConsumes()) {
3539
edm::LogVerbatim("HITRegionalPixelSeedGenerator") << "Enter the HITRegionalPixelSeedGenerator";
3640

37-
edm::ParameterSet regionPSet = conf_.getParameter<edm::ParameterSet>("RegionPSet");
41+
edm::ParameterSet regionPSet = conf.getParameter<edm::ParameterSet>("RegionPSet");
3842

3943
ptmin = regionPSet.getParameter<double>("ptMin");
4044
originradius = regionPSet.getParameter<double>("originRadius");
@@ -69,6 +73,9 @@ class HITRegionalPixelSeedGenerator : public TrackingRegionProducer {
6973

7074
double deltaZVertex = halflength;
7175

76+
auto const& bfield = es.getData(token_bfield);
77+
auto const& msmaker = es.getData(token_msmaker);
78+
7279
if (usetracks_) {
7380
edm::Handle<reco::TrackCollection> tracks;
7481
e.getByToken(token_trks, tracks);
@@ -93,8 +100,15 @@ class HITRegionalPixelSeedGenerator : public TrackingRegionProducer {
93100
GlobalVector ptrVec((itr)->px(), (itr)->py(), (itr)->pz());
94101
globalVector = ptrVec;
95102

96-
result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(
97-
globalVector, GlobalPoint(0, 0, originz), ptmin, originradius, deltaZVertex, deltaTrackEta, deltaTrackPhi));
103+
result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(globalVector,
104+
GlobalPoint(0, 0, originz),
105+
ptmin,
106+
originradius,
107+
deltaZVertex,
108+
deltaTrackEta,
109+
deltaTrackPhi,
110+
bfield,
111+
&msmaker));
98112
}
99113
}
100114

@@ -127,8 +141,15 @@ class HITRegionalPixelSeedGenerator : public TrackingRegionProducer {
127141
(isoPixTrackRefs[p]->track())->pz());
128142
globalVector = ptrVec;
129143

130-
result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(
131-
globalVector, GlobalPoint(0, 0, originz), ptmin, originradius, deltaZVertex, deltaTrackEta, deltaTrackPhi));
144+
result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(globalVector,
145+
GlobalPoint(0, 0, originz),
146+
ptmin,
147+
originradius,
148+
deltaZVertex,
149+
deltaTrackEta,
150+
deltaTrackPhi,
151+
bfield,
152+
&msmaker));
132153
}
133154
}
134155

@@ -155,7 +176,7 @@ class HITRegionalPixelSeedGenerator : public TrackingRegionProducer {
155176
GlobalPoint vertex(0, 0, originz);
156177

157178
result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(
158-
jetVector, vertex, ptmin, originradius, deltaZVertex, deltaL1JetEta, deltaL1JetPhi));
179+
jetVector, vertex, ptmin, originradius, deltaZVertex, deltaL1JetEta, deltaL1JetPhi, bfield, &msmaker));
159180
}
160181
}
161182
if (fixedReg_) {
@@ -175,15 +196,13 @@ class HITRegionalPixelSeedGenerator : public TrackingRegionProducer {
175196
}
176197

177198
result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(
178-
fixedVector, vertex, ptmin, originradius, deltaZVertex, deltaL1JetEta, deltaL1JetPhi));
199+
fixedVector, vertex, ptmin, originradius, deltaZVertex, deltaL1JetEta, deltaL1JetPhi, bfield, &msmaker));
179200
}
180201

181202
return result;
182203
}
183204

184205
private:
185-
edm::ParameterSet conf_;
186-
187206
float ptmin;
188207
float originradius;
189208
float halflength;
@@ -201,6 +220,8 @@ class HITRegionalPixelSeedGenerator : public TrackingRegionProducer {
201220
edm::EDGetTokenT<reco::VertexCollection> token_vertex;
202221
edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> token_isoTrack;
203222
edm::EDGetTokenT<l1extra::L1JetParticleCollection> token_l1jet;
223+
edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> token_bfield;
224+
edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> token_msmaker;
204225
};
205226

206227
#include "FWCore/PluginManager/interface/ModuleDef.h"

FastSimulation/Muons/plugins/FastTSGFromL2Muon.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ void FastTSGFromL2Muon::produce(edm::Event& ev, const edm::EventSetup& es) {
5656
std::unique_ptr<L3MuonTrajectorySeedCollection> result(new L3MuonTrajectorySeedCollection());
5757

5858
// Region builder
59-
theRegionBuilder->setEvent(ev);
59+
theRegionBuilder->setEvent(ev, es);
6060

6161
// Retrieve the Monte Carlo truth (SimTracks)
6262
edm::Handle<edm::SimTrackContainer> theSimTracks;

HLTrigger/btau/plugins/L3MumuTrackingRegion.h

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
#include "FWCore/Framework/interface/Event.h"
55
#include "FWCore/Framework/interface/ConsumesCollector.h"
66

7+
#include "MagneticField/Engine/interface/MagneticField.h"
8+
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
9+
#include "RecoTracker/Record/interface/TrackerMultipleScatteringRecord.h"
10+
#include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
711
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducer.h"
812
#include "RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h"
913
#include "RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h"
@@ -16,7 +20,8 @@
1620

1721
class L3MumuTrackingRegion : public TrackingRegionProducer {
1822
public:
19-
L3MumuTrackingRegion(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC) {
23+
L3MumuTrackingRegion(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC)
24+
: theFieldToken(iC.esConsumes()), theMSMakerToken(iC.esConsumes()) {
2025
edm::ParameterSet regionPSet = cfg.getParameter<edm::ParameterSet>("RegionPSet");
2126

2227
theVertexTag = regionPSet.getParameter<edm::InputTag>("vertexSrc");
@@ -49,7 +54,7 @@ class L3MumuTrackingRegion : public TrackingRegionProducer {
4954
}
5055
}
5156

52-
~L3MumuTrackingRegion() override {}
57+
~L3MumuTrackingRegion() override = default;
5358

5459
std::vector<std::unique_ptr<TrackingRegion> > regions(const edm::Event& ev,
5560
const edm::EventSetup& es) const override {
@@ -61,6 +66,8 @@ class L3MumuTrackingRegion : public TrackingRegionProducer {
6166
ev.getByToken(theMeasurementTrackerToken, hmte);
6267
measurementTracker = hmte.product();
6368
}
69+
const auto& field = es.getData(theFieldToken);
70+
const auto& msmaker = es.getData(theMSMakerToken);
6471

6572
// optional constraint for vertex
6673
// get highest Pt pixel vertex (if existing)
@@ -89,8 +96,10 @@ class L3MumuTrackingRegion : public TrackingRegionProducer {
8996
deltaZVertex,
9097
theDeltaEta,
9198
theDeltaPhi,
92-
m_howToUseMeasurementTracker,
99+
field,
100+
&msmaker,
93101
true,
102+
m_howToUseMeasurementTracker,
94103
measurementTracker,
95104
m_searchOpt));
96105
}
@@ -110,8 +119,10 @@ class L3MumuTrackingRegion : public TrackingRegionProducer {
110119
deltaZVertex,
111120
theDeltaEta,
112121
theDeltaPhi,
113-
m_howToUseMeasurementTracker,
122+
field,
123+
&msmaker,
114124
true,
125+
m_howToUseMeasurementTracker,
115126
measurementTracker,
116127
m_searchOpt));
117128
}
@@ -136,6 +147,8 @@ class L3MumuTrackingRegion : public TrackingRegionProducer {
136147
double theDeltaPhi;
137148
edm::EDGetTokenT<MeasurementTrackerEvent> theMeasurementTrackerToken;
138149
RectangularEtaPhiTrackingRegion::UseMeasurementTracker m_howToUseMeasurementTracker;
150+
edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> theFieldToken;
151+
edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> theMSMakerToken;
139152
bool m_searchOpt;
140153
};
141154

RecoEgamma/EgammaElectronProducers/plugins/TrackingRegionsFromSuperClustersProducer.cc

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
3939
#include "DataFormats/EgammaReco/interface/SuperCluster.h"
4040

41+
#include "MagneticField/Engine/interface/MagneticField.h"
42+
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
43+
#include "RecoTracker/Record/interface/TrackerMultipleScatteringRecord.h"
44+
#include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
4145
#include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducer.h"
4246
#include "RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h"
4347
#include "RecoTracker/MeasurementDet/interface/MeasurementTrackerEvent.h"
@@ -103,7 +107,8 @@ class TrackingRegionsFromSuperClustersProducer : public TrackingRegionProducer {
103107
const double deltaZVertex,
104108
const Charge charge,
105109
const MeasurementTrackerEvent* measTrackerEvent,
106-
const MagneticField& magField) const;
110+
const MagneticField& magField,
111+
const MultipleScatteringParametrisationMaker* msmaker) const;
107112

108113
private:
109114
void validateConfigSettings() const;
@@ -134,6 +139,7 @@ class TrackingRegionsFromSuperClustersProducer : public TrackingRegionProducer {
134139
std::vector<edm::EDGetTokenT<std::vector<reco::SuperClusterRef>>> superClustersTokens_;
135140

136141
const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> magFieldToken_;
142+
edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> msmakerToken_;
137143
};
138144

139145
namespace {
@@ -182,6 +188,9 @@ TrackingRegionsFromSuperClustersProducer::TrackingRegionsFromSuperClustersProduc
182188
for (const auto& tag : superClustersTags) {
183189
superClustersTokens_.emplace_back(iC.consumes(tag));
184190
}
191+
if (precise_) {
192+
msmakerToken_ = iC.esConsumes();
193+
}
185194
}
186195

187196
void TrackingRegionsFromSuperClustersProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
@@ -231,15 +240,19 @@ std::vector<std::unique_ptr<TrackingRegion>> TrackingRegionsFromSuperClustersPro
231240
measTrackerEvent = getHandle(iEvent, measTrackerEventToken_).product();
232241
}
233242
auto const& magField = iSetup.getData(magFieldToken_);
243+
const MultipleScatteringParametrisationMaker* msmaker = nullptr;
244+
if (precise_) {
245+
msmaker = &iSetup.getData(msmakerToken_);
246+
}
234247

235248
for (auto& superClustersToken : superClustersTokens_) {
236249
auto superClustersHandle = getHandle(iEvent, superClustersToken);
237250
for (auto& superClusterRef : *superClustersHandle) {
238251
//do both charge hypothesises
239-
trackingRegions.emplace_back(
240-
createTrackingRegion(*superClusterRef, vtxPos, deltaZVertex, Charge::POS, measTrackerEvent, magField));
241-
trackingRegions.emplace_back(
242-
createTrackingRegion(*superClusterRef, vtxPos, deltaZVertex, Charge::NEG, measTrackerEvent, magField));
252+
trackingRegions.emplace_back(createTrackingRegion(
253+
*superClusterRef, vtxPos, deltaZVertex, Charge::POS, measTrackerEvent, magField, msmaker));
254+
trackingRegions.emplace_back(createTrackingRegion(
255+
*superClusterRef, vtxPos, deltaZVertex, Charge::NEG, measTrackerEvent, magField, msmaker));
243256
}
244257
}
245258
return trackingRegions;
@@ -283,7 +296,8 @@ std::unique_ptr<TrackingRegion> TrackingRegionsFromSuperClustersProducer::create
283296
const double deltaZVertex,
284297
const Charge charge,
285298
const MeasurementTrackerEvent* measTrackerEvent,
286-
const MagneticField& magField) const {
299+
const MagneticField& magField,
300+
const MultipleScatteringParametrisationMaker* msmaker) const {
287301
const GlobalPoint clusterPos(superCluster.position().x(), superCluster.position().y(), superCluster.position().z());
288302
const double energy = superCluster.energy();
289303

@@ -295,8 +309,10 @@ std::unique_ptr<TrackingRegion> TrackingRegionsFromSuperClustersProducer::create
295309
deltaZVertex,
296310
deltaEtaRegion_,
297311
deltaPhiRegion_,
298-
whereToUseMeasTracker_,
312+
magField,
313+
msmaker,
299314
precise_,
315+
whereToUseMeasTracker_,
300316
measTrackerEvent);
301317
}
302318

RecoHI/HiMuonAlgos/plugins/HIMuonTrackingRegionProducer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class HIMuonTrackingRegionProducer : public TrackingRegionProducer {
5353
std::vector<std::unique_ptr<TrackingRegion> > result;
5454

5555
// initialize the region builder
56-
theRegionBuilder->setEvent(ev);
56+
theRegionBuilder->setEvent(ev, es);
5757

5858
// get stand-alone muon collection
5959
edm::Handle<reco::TrackCollection> muonH;

RecoHI/HiTracking/plugins/HITrackingRegionForPrimaryVtxProducer.h

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
#include "FWCore/Framework/interface/Event.h"
1212
#include "FWCore/Framework/interface/ConsumesCollector.h"
1313

14+
#include "MagneticField/Engine/interface/MagneticField.h"
15+
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
16+
#include "RecoTracker/Record/interface/TrackerMultipleScatteringRecord.h"
17+
#include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
18+
1419
#include "DataFormats/BeamSpot/interface/BeamSpot.h"
1520
#include "FWCore/Utilities/interface/InputTag.h"
1621

@@ -28,7 +33,8 @@
2833

2934
class HITrackingRegionForPrimaryVtxProducer : public TrackingRegionProducer {
3035
public:
31-
HITrackingRegionForPrimaryVtxProducer(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC) {
36+
HITrackingRegionForPrimaryVtxProducer(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC)
37+
: theTtopoToken(iC.esConsumes()), theFieldToken(iC.esConsumes()) {
3238
edm::ParameterSet regionPSet = cfg.getParameter<edm::ParameterSet>("RegionPSet");
3339
thePtMin = regionPSet.getParameter<double>("ptMin");
3440
theOriginRadius = regionPSet.getParameter<double>("originRadius");
@@ -51,9 +57,13 @@ class HITrackingRegionForPrimaryVtxProducer : public TrackingRegionProducer {
5157
theUseFixedError = regionPSet.getParameter<bool>("useFixedError");
5258
vertexCollName = regionPSet.getParameter<edm::InputTag>("VertexCollection");
5359
vertexCollToken = iC.consumes<reco::VertexCollection>(vertexCollName);
60+
61+
if (thePrecise) {
62+
theMSMakerToken = iC.esConsumes();
63+
}
5464
}
5565

56-
~HITrackingRegionForPrimaryVtxProducer() override {}
66+
~HITrackingRegionForPrimaryVtxProducer() override = default;
5767

5868
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
5969
edm::ParameterSetDescription desc;
@@ -88,11 +98,10 @@ class HITrackingRegionForPrimaryVtxProducer : public TrackingRegionProducer {
8898
edm::Handle<SiPixelRecHitCollection> recHitColl;
8999
ev.getByToken(theSiPixelRecHitsToken, recHitColl);
90100

91-
edm::ESHandle<TrackerTopology> httopo;
92-
es.get<TrackerTopologyRcd>().get(httopo);
101+
auto const& ttopo = es.getData(theTtopoToken);
93102

94103
std::vector<const TrackingRecHit*> theChosenHits;
95-
edmNew::copyDetSetRange(*recHitColl, theChosenHits, httopo->pxbDetIdLayerComparator(1));
104+
edmNew::copyDetSetRange(*recHitColl, theChosenHits, ttopo.pxbDetIdLayerComparator(1));
96105
return theChosenHits.size();
97106
}
98107

@@ -159,16 +168,14 @@ class HITrackingRegionForPrimaryVtxProducer : public TrackingRegionProducer {
159168
}
160169

161170
if (estTracks > regTracking) { // regional tracking
171+
const auto& field = es.getData(theFieldToken);
172+
const MultipleScatteringParametrisationMaker* msmaker = nullptr;
173+
if (thePrecise) {
174+
msmaker = &es.getData(theMSMakerToken);
175+
}
176+
162177
result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(
163-
theDirection,
164-
origin,
165-
thePtMin,
166-
theOriginRadius,
167-
halflength,
168-
etaB,
169-
phiB,
170-
RectangularEtaPhiTrackingRegion::UseMeasurementTracker::kNever,
171-
thePrecise));
178+
theDirection, origin, thePtMin, theOriginRadius, halflength, etaB, phiB, field, msmaker, thePrecise));
172179
} else { // global tracking
173180
LogTrace("heavyIonHLTVertexing") << " [HIVertexing: Global Tracking]";
174181
result.push_back(
@@ -196,6 +203,9 @@ class HITrackingRegionForPrimaryVtxProducer : public TrackingRegionProducer {
196203
bool theUseFixedError;
197204
edm::InputTag vertexCollName;
198205
edm::EDGetTokenT<reco::VertexCollection> vertexCollToken;
206+
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> theTtopoToken;
207+
edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> theFieldToken;
208+
edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> theMSMakerToken;
199209
};
200210

201211
#endif

0 commit comments

Comments
 (0)