00001 //Dear emacs, this is -*- c++ -*- 00002 00013 #ifndef EFORMAT_RUNNUMBER_H 00014 #define EFORMAT_RUNNUMBER_H 00015 00016 #include <stdint.h> 00017 00018 namespace eformat { 00019 00023 enum RunType { PHYSICS = 0x00, 00024 CALIBRATION = 0x01, 00025 COSMICS = 0x02, 00026 TEST = 0x0f}; 00027 00031 typedef enum RunType RunType; 00032 00033 namespace helper { 00034 00038 class RunNumber { 00039 00040 public: 00047 RunNumber (eformat::RunType type, uint32_t n) 00048 : m_type(type), m_n(n) {} 00049 00057 RunNumber (uint32_t rn); 00058 00062 inline eformat::RunType type (void) const { return m_type; } 00063 00067 inline uint32_t number (void) const { return m_n; } 00068 00073 uint32_t code (void) const; 00074 00075 private: //representation 00076 00077 eformat::RunType m_type; 00078 uint32_t m_n; 00079 00080 }; 00081 00082 } 00083 00084 } 00085 00086 #endif /* EFORMAT_RUNNUMBER_H */