Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:12

0001 #ifndef FWCore_Utilities_ESProductTag_h
0002 #define FWCore_Utilities_ESProductTag_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     FWCore/Utilities
0006 // Class  :     ESProductTag
0007 //
0008 /**\class ESProductTag ESProductTag.h "ESProductTag.h"
0009 
0010  Description: Contains all information to uniquely identify a product in the EventSetup system
0011 
0012  Usage:
0013     The strings used to initialize an ESProductTag are the same as those for an ESInputTag.
0014 
0015 */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Wed, 18 Sep 2019 16:01:26 GMT
0019 //
0020 
0021 // system include files
0022 
0023 // user include files
0024 #include "FWCore/Utilities/interface/ESInputTag.h"
0025 
0026 // forward declarations
0027 namespace edm {
0028   template <typename ESProduct, typename ESRecord>
0029   class ESProductTag {
0030   public:
0031     using Type = ESProduct;
0032     using Record = ESRecord;
0033 
0034     ESProductTag(std::string iModuleLabel, std::string iDataLabel)
0035         : tag_{std::move(iModuleLabel), std::move(iDataLabel)} {}
0036 
0037     ESProductTag(ESInputTag iTag) : tag_{std::move(iTag)} {}
0038 
0039     // ---------- const member functions ---------------------
0040     ESInputTag const& inputTag() const noexcept { return tag_; }
0041     // ---------- static member functions --------------------
0042 
0043     // ---------- member functions ---------------------------
0044 
0045   private:
0046     // ---------- member data --------------------------------
0047     ESInputTag tag_;
0048   };
0049 }  // namespace edm
0050 
0051 #endif