File indexing completed on 2025-06-03 00:12:15
0001 #include "FWCore/Framework/interface/ESProducer.h"
0002 #include "FWCore/Framework/interface/ESHandle.h"
0003 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0004 #include "FWCore/Utilities/interface/ESGetToken.h"
0005 #include "FWCore/Utilities/interface/ESInputTag.h"
0006 #include "L1Trigger/TrackerTFP/interface/LayerEncoding.h"
0007
0008 #include <memory>
0009
0010 namespace trackerTFP {
0011
0012
0013
0014
0015
0016
0017 class ProducerLayerEncoding : public edm::ESProducer {
0018 public:
0019 ProducerLayerEncoding(const edm::ParameterSet& iConfig);
0020 ~ProducerLayerEncoding() override = default;
0021 std::unique_ptr<LayerEncoding> produce(const DataFormatsRcd& rcd);
0022
0023 private:
0024 edm::ESGetToken<DataFormats, DataFormatsRcd> esGetToken_;
0025 };
0026
0027 ProducerLayerEncoding::ProducerLayerEncoding(const edm::ParameterSet& iConfig) {
0028 auto cc = setWhatProduced(this);
0029 esGetToken_ = cc.consumes();
0030 }
0031
0032 std::unique_ptr<LayerEncoding> ProducerLayerEncoding::produce(const DataFormatsRcd& rcd) {
0033 const DataFormats* dataFormats = &rcd.get(esGetToken_);
0034 return std::make_unique<LayerEncoding>(dataFormats);
0035 }
0036
0037 }
0038
0039 DEFINE_FWK_EVENTSETUP_MODULE(trackerTFP::ProducerLayerEncoding);