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 }
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