Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-06-02 02:22:44

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 }  // namespace edm
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  // CondTools_RPC_RPCInverseLBLinkMapESProducer_h