File indexing completed on 2024-04-06 12:28:51
0001 #include "FWCore/Framework/interface/ESProducer.h"
0002 #include "FWCore/Framework/interface/ModuleFactory.h"
0003 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0004 #include "FWCore/ParameterSet/interface/ParameterDescription.h"
0005 #include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
0006 #include "RecoTracker/Record/interface/TrackerMultipleScatteringRecord.h"
0007
0008 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
0009 #include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h"
0010 #include "MagneticField/Engine/interface/MagneticField.h"
0011 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0012
0013 class MultipleScatteringParametrisationMakerESProducer : public edm::ESProducer {
0014 public:
0015 MultipleScatteringParametrisationMakerESProducer(edm::ParameterSet const& iConfig);
0016
0017 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0018
0019 std::unique_ptr<MultipleScatteringParametrisationMaker> produce(const TrackerMultipleScatteringRecord& iRecord);
0020
0021 private:
0022 edm::ESGetToken<GeometricSearchTracker, TrackerRecoGeometryRecord> trackerToken_;
0023 edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> bfieldToken_;
0024 };
0025
0026 MultipleScatteringParametrisationMakerESProducer::MultipleScatteringParametrisationMakerESProducer(
0027 edm::ParameterSet const& iConfig) {
0028 auto cc = setWhatProduced(this);
0029 trackerToken_ = cc.consumes();
0030 bfieldToken_ = cc.consumes();
0031 }
0032
0033 void MultipleScatteringParametrisationMakerESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0034 edm::ParameterSetDescription desc;
0035 descriptions.addWithDefaultLabel(desc);
0036 }
0037
0038 std::unique_ptr<MultipleScatteringParametrisationMaker> MultipleScatteringParametrisationMakerESProducer::produce(
0039 const TrackerMultipleScatteringRecord& iRecord) {
0040 return std::make_unique<MultipleScatteringParametrisationMaker>(iRecord.get(trackerToken_),
0041 iRecord.get(bfieldToken_));
0042 }
0043
0044 DEFINE_FWK_EVENTSETUP_MODULE(MultipleScatteringParametrisationMakerESProducer);