Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-03 00:12:13

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 "DataFormats/Provenance/interface/ParameterSetID.h"
0007 #include "L1Trigger/TrackerDTC/interface/LayerEncoding.h"
0008 
0009 #include <memory>
0010 
0011 namespace trackerDTC {
0012 
0013   /*! \class  trackerDTC::ProducerLayerEncoding
0014    *  \brief  Class to produce layer encoding used between DTC and TFP in Hybrid
0015    *  \author Thomas Schuh
0016    *  \date   2021, April
0017    */
0018   class ProducerLayerEncoding : public edm::ESProducer {
0019   public:
0020     ProducerLayerEncoding(const edm::ParameterSet& iConfig);
0021     ~ProducerLayerEncoding() override = default;
0022     std::unique_ptr<LayerEncoding> produce(const tt::SetupRcd& rcd);
0023 
0024   private:
0025     edm::ESGetToken<tt::Setup, tt::SetupRcd> esGetToken_;
0026   };
0027 
0028   ProducerLayerEncoding::ProducerLayerEncoding(const edm::ParameterSet& iConfig) {
0029     auto cc = setWhatProduced(this);
0030     esGetToken_ = cc.consumes();
0031   }
0032 
0033   std::unique_ptr<LayerEncoding> ProducerLayerEncoding::produce(const tt::SetupRcd& rcd) {
0034     const tt::Setup* setup = &rcd.get(esGetToken_);
0035     return std::make_unique<LayerEncoding>(setup);
0036   }
0037 
0038 }  // namespace trackerDTC
0039 
0040 DEFINE_FWK_EVENTSETUP_MODULE(trackerDTC::ProducerLayerEncoding);