RunTimes.h

Go to the documentation of this file.
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