File indexing completed on 2024-04-06 12:03:15
0001 #ifndef CondTools_RPC_RPCInverseLBLinkMapESProducer_h
0002 #define CondTools_RPC_RPCInverseLBLinkMapESProducer_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/RPCInverseLBLinkMap.h"
0013 #include "CondFormats/RPCObjects/interface/RPCLBLinkMap.h"
0014
0015 namespace edm {
0016 class ParameterSet;
0017 class ConfigurationDescriptions;
0018 }
0019
0020 class RPCLBLinkMapRcd;
0021 class RPCInverseLBLinkMapRcd;
0022
0023 class RPCInverseLBLinkMapESProducer : public edm::ESProducer {
0024 public:
0025 explicit RPCInverseLBLinkMapESProducer(edm::ParameterSet const& _config);
0026
0027 static void fillDescriptions(edm::ConfigurationDescriptions& _descs);
0028
0029 std::shared_ptr<RPCInverseLBLinkMap> produce(RPCInverseLBLinkMapRcd const& _rcd);
0030
0031 private:
0032 using HostType = edm::ESProductHost<RPCInverseLBLinkMap, RPCLBLinkMapRcd>;
0033
0034 void setupRPCLBLinkMap(RPCLBLinkMapRcd const&, RPCInverseLBLinkMap*);
0035
0036 edm::ReusableObjectHolder<HostType> holder_;
0037
0038 edm::ESGetToken<RPCLBLinkMap, RPCLBLinkMapRcd> es_rpc_lb_map_token_;
0039 };
0040
0041 #endif