00001 #ifndef DataFormats_Provenance_RunLumiEntryInfo_h 00002 #define DataFormats_Provenance_RunLumiEntryInfo_h 00003 00004 /*---------------------------------------------------------------------- 00005 00006 RunLumiEntryInfo: The event dependent portion of the description of a product 00007 and how it came into existence, plus the product identifier and the status. 00008 00009 ----------------------------------------------------------------------*/ 00010 #include <iosfwd> 00011 #include <vector> 00012 00013 #include "DataFormats/Provenance/interface/BranchID.h" 00014 #include "DataFormats/Provenance/interface/ProductStatus.h" 00015 00016 /* 00017 RunLumiEntryInfo 00018 */ 00019 namespace edm { 00020 class RunLumiEntryInfo { 00021 public: 00022 RunLumiEntryInfo(); 00023 ~RunLumiEntryInfo(); 00024 00025 void write(std::ostream& os) const; 00026 00027 BranchID const& branchID() const {return branchID_;} 00028 ProductStatus const& productStatus() const {return productStatus_;} 00029 00030 private: 00031 BranchID branchID_; 00032 ProductStatus productStatus_; 00033 }; 00034 00035 inline 00036 bool 00037 operator < (RunLumiEntryInfo const& a, RunLumiEntryInfo const& b) { 00038 return a.branchID() < b.branchID(); 00039 } 00040 00041 inline 00042 std::ostream& 00043 operator<<(std::ostream& os, RunLumiEntryInfo const& p) { 00044 p.write(os); 00045 return os; 00046 } 00047 00048 // Only the 'salient attributes' are testing in equality comparison. 00049 bool operator==(RunLumiEntryInfo const& a, RunLumiEntryInfo const& b); 00050 inline bool operator!=(RunLumiEntryInfo const& a, RunLumiEntryInfo const& b) { return !(a==b); } 00051 00052 typedef RunLumiEntryInfo LumiEntryInfo; 00053 typedef RunLumiEntryInfo RunEntryInfo; 00054 } 00055 #endif