CMS 3D CMS Logo

LuminosityBlockAuxiliary.h

Go to the documentation of this file.
00001 #ifndef DataFormats_Provenance_LuminosityBlockAuxiliary_h
00002 #define DataFormats_Provenance_LuminosityBlockAuxiliary_h
00003 
00004 #include <iosfwd>
00005 
00006 #include "DataFormats/Provenance/interface/ProcessHistoryID.h"
00007 #include "DataFormats/Provenance/interface/LuminosityBlockID.h"
00008 #include "DataFormats/Provenance/interface/RunID.h"
00009 #include "DataFormats/Provenance/interface/Timestamp.h"
00010 
00011 // Auxiliary luminosity block data that is persistent
00012 
00013 namespace edm
00014 {
00015   struct LuminosityBlockAuxiliary {
00016     LuminosityBlockAuxiliary() :
00017         processHistoryID_(),
00018         id_(),
00019         beginTime_(),
00020         endTime_() {}
00021     LuminosityBlockAuxiliary(LuminosityBlockID const& theId,
00022                              Timestamp const& theTime,
00023                              Timestamp const& theEndTime) :
00024         processHistoryID_(),
00025         id_(theId),
00026         beginTime_(theTime),
00027         endTime_(theEndTime) {}
00028     LuminosityBlockAuxiliary(RunNumber_t const& theRun,
00029                              LuminosityBlockNumber_t const& theLumi,
00030                              Timestamp const& theTime,
00031                              Timestamp const& theEndTime) :
00032         processHistoryID_(),
00033         id_(theRun, theLumi),
00034         beginTime_(theTime),
00035         endTime_(theEndTime) {}
00036     ~LuminosityBlockAuxiliary() {}
00037     void write(std::ostream& os) const;
00038     ProcessHistoryID& processHistoryID() const {return processHistoryID_;}
00039     LuminosityBlockNumber_t luminosityBlock() const {return id().luminosityBlock();}
00040     RunNumber_t run() const {return id().run();}
00041     LuminosityBlockID const& id() const {return id_;}
00042     Timestamp const& beginTime() const {return beginTime_;}
00043     Timestamp const& endTime() const {return endTime_;}
00044     void setEndTime(Timestamp const& time) {
00045       if (endTime_ == Timestamp::invalidTimestamp()) endTime_ = time;
00046     }
00047     bool mergeAuxiliary(LuminosityBlockAuxiliary const& newAux);
00048 
00049     // most recent process that processed this lumi block
00050     // is the last on the list, this defines what "latest" is
00051     mutable ProcessHistoryID processHistoryID_;
00052     // LuminosityBlock ID
00053     LuminosityBlockID id_;
00054     // Times from DAQ
00055     Timestamp beginTime_;
00056     Timestamp endTime_;
00057   };
00058 
00059   inline
00060   std::ostream&
00061   operator<<(std::ostream& os, const LuminosityBlockAuxiliary& p) {
00062     p.write(os);
00063     return os;
00064   }
00065 
00066 }
00067 #endif

Generated on Tue Jun 9 17:31:33 2009 for CMSSW by  doxygen 1.5.4