00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "EventReadoutFormat/EventTraits.h"
00010
00011 #include <map>
00012 #include "EventReadoutFormat/EventTraits_v0_6.h"
00013
00014 using DybDaq::EventTraits;
00015 using DybDaq::EventTraits_v0_6;
00016
00017 const unsigned int EventTraits::kEventHeader = 0;
00018 const unsigned int EventTraits::kRomHeader = EventTraits::kEventHeader + 1;
00019
00020
00021
00022 const unsigned int EventTraits::kMarker = 0;
00023 const unsigned int EventTraits::kMajorVersion = EventTraits::kMarker + 1;
00024 const unsigned int EventTraits::kMinorVersion = EventTraits::kMajorVersion + 1;
00025 const unsigned int EventTraits::kEventHeaderSize = EventTraits::kMinorVersion + 1;
00026 const unsigned int EventTraits::kEventTotalSize = EventTraits::kEventHeaderSize + 1;
00027 const unsigned int EventTraits::kEventSite = EventTraits::kEventTotalSize + 1;
00028 const unsigned int EventTraits::kEventDetector = EventTraits::kEventSite + 1;
00029 const unsigned int EventTraits::kEventRun = EventTraits::kEventDetector + 1;
00030 const unsigned int EventTraits::kEventNumber = EventTraits::kEventRun + 1;
00031 const unsigned int EventTraits::kEventDataType = EventTraits::kEventNumber + 1;
00032 const unsigned int EventTraits::kCbltWrapping = EventTraits::kEventDataType + 1;
00033 const unsigned int EventTraits::kRawCblt = EventTraits::kCbltWrapping + 1;
00034 const unsigned int EventTraits::kLtbMismatch = EventTraits::kRawCblt + 1;
00035 const unsigned int EventTraits::kInvalidData = EventTraits::kLtbMismatch + 1;
00036 const unsigned int EventTraits::kRomHeaderSize = EventTraits::kInvalidData + 1;
00037 const unsigned int EventTraits::kRomTotalSize = EventTraits::kRomHeaderSize + 1;
00038 const unsigned int EventTraits::kRomSite = EventTraits::kRomTotalSize + 1;
00039 const unsigned int EventTraits::kRomDetector = EventTraits::kRomSite + 1;
00040 const unsigned int EventTraits::kRomModuleType = EventTraits::kRomDetector + 1;
00041 const unsigned int EventTraits::kRomSlot = EventTraits::kRomModuleType + 1;
00042
00043
00044
00045 const unsigned int EventTraits::kFeeModule = 0;
00046 const unsigned int EventTraits::kFadcModule = EventTraits::kFeeModule + 1;
00047 const unsigned int EventTraits::kLtbModule = EventTraits::kFadcModule + 1;
00048 const unsigned int EventTraits::kRpcRomModule = EventTraits::kLtbModule + 1;
00049 const unsigned int EventTraits::kRpcRtmModule = EventTraits::kRpcRomModule + 1;
00050 const unsigned int EventTraits::kMtbModule = EventTraits::kRpcRtmModule + 1;
00051
00052 static std::map<const char*, EventTraits*> m_allTraits;
00053
00054 EventTraits::EventTraits() {
00055 }
00056
00057 EventTraits::~EventTraits() {
00058 }
00059
00060 const EventTraits& EventTraits::defaultTraits() {
00061 if (0 == m_allTraits.size()) {
00062 m_allTraits.insert(std::pair<const char*, EventTraits*>(EventTraits_v0_6::key(),new EventTraits_v0_6()));
00063 }
00064 return *m_allTraits[EventTraits_v0_6::key()];
00065 }
00066
00067 const EventTraits* EventTraits::readTraits(const char*&) {
00068 return &defaultTraits();
00069 }
00070
00071 unsigned int EventTraits::illegalMarker() const {
00072 return 0xffffffffU;
00073 }
00074
00075 unsigned int EventTraits::illegalField() const {
00076 return 0xffffffffU;
00077 }
00078
00079 const char* EventTraits::siteAsString(const unsigned int site) const {
00080 return siteStrings()[site];
00081 }
00082
00083 const char* EventTraits::detectorAsString(const unsigned int detector) const {
00084 return detectorStrings()[detector];
00085 }
00086
00087 const char* EventTraits::dataTypeAsString(const unsigned int dataType) const {
00088 return dataTypeStrings()[dataType];
00089 }
00090
00091 unsigned int EventTraits::moduleType(const unsigned int module) const {
00092 if (module > maxModuleType()) {
00093 return 0;
00094 }
00095 return moduleTypes()[module];
00096 }
00097
00098 const char* EventTraits::moduleTypeAsString(const unsigned int moduleType) const {
00099 return moduleTypeStrings()[moduleType];
00100 }
00101