Back to home page

Project CMSSW displayed by LXR

 
 

    


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   /*! \class  trackerTFP::ProducerLayerEncoding
0013    *  \brief  Class to produce KF layer encoding
0014    *  \author Thomas Schuh
0015    *  \date   2020, July
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 }  // namespace trackerTFP
0038 
0039 DEFINE_FWK_EVENTSETUP_MODULE(trackerTFP::ProducerLayerEncoding);