File indexing completed on 2024-04-06 12:05:02
0001 #ifndef DataFormats_Provenance_LuminosityBlockAuxiliary_h
0002 #define DataFormats_Provenance_LuminosityBlockAuxiliary_h
0003
0004 #include <iosfwd>
0005
0006 #include "DataFormats/Provenance/interface/ProcessHistoryID.h"
0007 #include "DataFormats/Provenance/interface/LuminosityBlockID.h"
0008 #include "DataFormats/Provenance/interface/RunID.h"
0009 #include "DataFormats/Provenance/interface/Timestamp.h"
0010
0011
0012
0013 namespace edm {
0014 class LuminosityBlockAux;
0015 class LuminosityBlockAuxiliary {
0016 public:
0017 friend void conversion(LuminosityBlockAux const&, LuminosityBlockAuxiliary&);
0018 LuminosityBlockAuxiliary() : processHistoryID_(), id_(), beginTime_(), endTime_() {}
0019 LuminosityBlockAuxiliary(LuminosityBlockID const& theId, Timestamp const& theTime, Timestamp const& theEndTime)
0020 : processHistoryID_(), id_(theId), beginTime_(theTime), endTime_(theEndTime) {}
0021 LuminosityBlockAuxiliary(RunNumber_t const& theRun,
0022 LuminosityBlockNumber_t const& theLumi,
0023 Timestamp const& theTime,
0024 Timestamp const& theEndTime)
0025 : processHistoryID_(), id_(theRun, theLumi), beginTime_(theTime), endTime_(theEndTime) {}
0026 void write(std::ostream& os) const;
0027 ProcessHistoryID const& processHistoryID() const { return processHistoryID_; }
0028 void setProcessHistoryID(ProcessHistoryID const& phid) { processHistoryID_ = phid; }
0029 LuminosityBlockNumber_t luminosityBlock() const { return id().luminosityBlock(); }
0030 RunNumber_t run() const { return id().run(); }
0031 LuminosityBlockID const& id() const { return id_; }
0032 LuminosityBlockID& id() { return id_; }
0033 Timestamp const& beginTime() const { return beginTime_; }
0034 void setBeginTime(Timestamp const& time) {
0035 if (beginTime_ == Timestamp::invalidTimestamp())
0036 beginTime_ = time;
0037 }
0038 Timestamp const& endTime() const { return endTime_; }
0039 void setEndTime(Timestamp const& time) {
0040 if (endTime_ == Timestamp::invalidTimestamp())
0041 endTime_ = time;
0042 }
0043 void mergeAuxiliary(LuminosityBlockAuxiliary const& newAux);
0044
0045 bool sameIdentity(LuminosityBlockAuxiliary const& iRHS) const {
0046 return iRHS.processHistoryID_ == processHistoryID_ && iRHS.id_ == id_;
0047 }
0048
0049 private:
0050
0051
0052
0053 ProcessHistoryID processHistoryID_;
0054
0055 LuminosityBlockID id_;
0056
0057 Timestamp beginTime_;
0058 Timestamp endTime_;
0059 };
0060
0061 inline std::ostream& operator<<(std::ostream& os, const LuminosityBlockAuxiliary& p) {
0062 p.write(os);
0063 return os;
0064 }
0065
0066 }
0067 #endif