![]() |
![]() |
00001 #ifndef FWCore_Utilities_InputTag_h 00002 #define FWCore_Utilities_InputTag_h 00003 00004 #include <string> 00005 #include <iosfwd> 00006 00007 #include "FWCore/Utilities/interface/TypeID.h" 00008 #include "FWCore/Utilities/interface/BranchType.h" 00009 00010 namespace edm { 00011 00012 class InputTag { 00013 public: 00014 InputTag(); 00015 InputTag(std::string const& label, std::string const& instance, std::string const& processName = ""); 00016 InputTag(char const* label, char const* instance, char const* processName = ""); 00021 InputTag(std::string const& s); 00022 ~InputTag(); 00023 std::string encode() const; 00024 00025 std::string const& label() const {return label_;} 00026 std::string const& instance() const {return instance_;} 00029 std::string const& process() const {return process_;} 00030 00031 bool operator==(InputTag const& tag) const; 00032 00033 TypeID& typeID() const {return typeID_;} 00034 00035 BranchType& branchType() const {return branchType_;} 00036 00037 size_t& cachedOffset() const {return cachedOffset_;} 00038 00039 int& fillCount() const {return fillCount_;} 00040 00041 void const*& productRegistry() const {return productRegistry_;} 00042 00043 private: 00044 std::string label_; 00045 std::string instance_; 00046 std::string process_; 00047 mutable BranchType branchType_; 00048 mutable TypeID typeID_; 00049 mutable size_t cachedOffset_; 00050 mutable int fillCount_; 00051 mutable void const* productRegistry_; 00052 }; 00053 00054 std::ostream& operator<<(std::ostream& ost, InputTag const& tag); 00055 00056 } 00057 00058 #endif 00059