|
1 | | -#include "FastSimulation/TrackerSetup/plugins/TrackerInteractionGeometryESProducer.h" |
2 | | -#include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h" |
3 | | - |
4 | | -#include "FWCore/Framework/interface/ESHandle.h" |
| 1 | +#include "FWCore/Framework/interface/ESProducer.h" |
5 | 2 | #include "FWCore/Framework/interface/ModuleFactory.h" |
| 3 | +#include "FWCore/ParameterSet/interface/ParameterSet.h" |
| 4 | +#include "FastSimulation/TrackerSetup/interface/TrackerInteractionGeometry.h" |
| 5 | +#include "FastSimulation/TrackerSetup/interface/TrackerInteractionGeometryRecord.h" |
| 6 | +#include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h" |
6 | 7 |
|
7 | 8 | #include <memory> |
| 9 | +#include <string> |
8 | 10 |
|
9 | | -TrackerInteractionGeometryESProducer::TrackerInteractionGeometryESProducer(const edm::ParameterSet& p) { |
10 | | - setWhatProduced(this); |
11 | | - _label = p.getUntrackedParameter<std::string>("trackerGeometryLabel", ""); |
| 11 | +class TrackerInteractionGeometryESProducer : public edm::ESProducer { |
| 12 | +public: |
| 13 | + TrackerInteractionGeometryESProducer(const edm::ParameterSet& p); |
| 14 | + ~TrackerInteractionGeometryESProducer() override = default; |
| 15 | + std::unique_ptr<TrackerInteractionGeometry> produce(const TrackerInteractionGeometryRecord&); |
12 | 16 |
|
13 | | - theTrackerMaterial = p.getParameter<edm::ParameterSet>("TrackerMaterial"); |
14 | | -} |
| 17 | +private: |
| 18 | + edm::ESGetToken<GeometricSearchTracker, TrackerRecoGeometryRecord> geoSearchToken_; |
| 19 | + std::string label_; |
| 20 | + edm::ParameterSet theTrackerMaterial_; |
| 21 | +}; |
15 | 22 |
|
16 | | -TrackerInteractionGeometryESProducer::~TrackerInteractionGeometryESProducer() {} |
| 23 | +TrackerInteractionGeometryESProducer::TrackerInteractionGeometryESProducer(const edm::ParameterSet& p) { |
| 24 | + auto cc = setWhatProduced(this); |
| 25 | + label_ = p.getUntrackedParameter<std::string>("trackerGeometryLabel", ""); |
| 26 | + geoSearchToken_ = cc.consumes(edm::ESInputTag("", label_)); |
| 27 | + theTrackerMaterial_ = p.getParameter<edm::ParameterSet>("TrackerMaterial"); |
| 28 | +} |
17 | 29 |
|
18 | 30 | std::unique_ptr<TrackerInteractionGeometry> TrackerInteractionGeometryESProducer::produce( |
19 | 31 | const TrackerInteractionGeometryRecord& iRecord) { |
20 | | - edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker; |
21 | | - |
22 | | - iRecord.getRecord<TrackerRecoGeometryRecord>().get(_label, theGeomSearchTracker); |
23 | | - return std::make_unique<TrackerInteractionGeometry>(theTrackerMaterial, &(*theGeomSearchTracker)); |
| 32 | + const GeometricSearchTracker* theGeomSearchTracker = &iRecord.get(geoSearchToken_); |
| 33 | + return std::make_unique<TrackerInteractionGeometry>(theTrackerMaterial_, theGeomSearchTracker); |
24 | 34 | } |
25 | 35 |
|
26 | 36 | DEFINE_FWK_EVENTSETUP_MODULE(TrackerInteractionGeometryESProducer); |
0 commit comments