00001 #ifndef __RUNTIMES_H__ 00002 #define __RUNTIMES_H__ 00003 00004 #include <vector> 00005 #include <map> 00006 #include <string> 00007 00008 #include "PHTimeStamp.h" 00009 00013 class RunTimes 00014 { 00015 public: 00016 00017 RunTimes(); 00018 virtual ~RunTimes(); 00019 00020 void MinRunNumber(int minrunnumber); 00021 int MinRunNumber() const { return fMinRunNumber; } 00022 00023 void Output(); 00024 00025 void Reset(void); 00026 00027 const PHTimeStamp RunEnd(int runNumber); 00028 00029 void RunList(const PHTimeStamp& t1, const PHTimeStamp& t2, 00030 std::vector<int>& runnumbers); 00031 00032 int RunNumber(const PHTimeStamp& ts); 00033 00034 const PHTimeStamp RunStart(int runNumber); 00035 00036 protected: 00037 00038 virtual bool Init() { return false; } 00039 00040 class RunLite 00041 { 00042 00043 public: 00044 RunLite(int number, const PHTimeStamp& start, const PHTimeStamp& end); 00045 00046 const PHTimeStamp End(void) const 00047 { 00048 return fEnd; 00049 } 00050 00051 int Number(void) const 00052 { 00053 return fNumber; 00054 } 00055 00056 void Print(void) const; 00057 00058 const PHTimeStamp Start(void) const 00059 { 00060 return fStart; 00061 } 00062 00063 void Set(int number, const PHTimeStamp& start, const PHTimeStamp& end); 00064 00065 public: 00066 PHTimeStamp fStart; 00067 PHTimeStamp fEnd; 00068 int fNumber; 00069 }; 00070 00071 std::map<int, RunLite* > fTimes; 00072 std::string fFilename; 00073 bool fInit; 00074 int fMinRunNumber; 00075 }; 00076 00077 #endif 00078