Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:15

0001 #ifndef CondTools_RPC_RPCInverseTwinMuxLinkMapESProducer_h
0002 #define CondTools_RPC_RPCInverseTwinMuxLinkMapESProducer_h
0003 
0004 #include <memory>
0005 
0006 #include "FWCore/Framework/interface/ESProducer.h"
0007 #include "FWCore/Framework/interface/ESProductHost.h"
0008 #include "FWCore/Framework/interface/ESHandle.h"
0009 #include "FWCore/Utilities/interface/ESGetToken.h"
0010 #include "FWCore/Utilities/interface/ReusableObjectHolder.h"
0011 
0012 #include "CondFormats/RPCObjects/interface/RPCInverseAMCLinkMap.h"
0013 #include "CondFormats/RPCObjects/interface/RPCAMCLinkMap.h"
0014 
0015 namespace edm {
0016   class ParameterSet;
0017   class ConfigurationDescriptions;
0018 }  // namespace edm
0019 
0020 class RPCTwinMuxLinkMapRcd;
0021 class RPCInverseTwinMuxLinkMapRcd;
0022 
0023 class RPCInverseTwinMuxLinkMapESProducer : public edm::ESProducer {
0024 public:
0025   explicit RPCInverseTwinMuxLinkMapESProducer(edm::ParameterSet const& _config);
0026 
0027   static void fillDescriptions(edm::ConfigurationDescriptions& _descs);
0028 
0029   std::shared_ptr<RPCInverseAMCLinkMap> produce(RPCInverseTwinMuxLinkMapRcd const& _rcd);
0030 
0031 private:
0032   using HostType = edm::ESProductHost<RPCInverseAMCLinkMap, RPCTwinMuxLinkMapRcd>;
0033 
0034   void setupRPCTwinMuxLinkMap(RPCTwinMuxLinkMapRcd const&, RPCInverseAMCLinkMap*);
0035 
0036   edm::ReusableObjectHolder<HostType> holder_;
0037 
0038   edm::ESGetToken<RPCAMCLinkMap, RPCTwinMuxLinkMapRcd> es_rpc_tm_l_map_token_;
0039 };
0040 
0041 #endif  // CondTools_RPC_RPCInverseTwinMuxLinkMapESProducer_h