| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

FadcTraits.cc

Go to the documentation of this file.
00001 /*
00002  *  FadcTraits.cc
00003  *  FadcReadoutFormat
00004  *
00005  *  Created by Simon Patton on 7/21/10.
00006  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00007  *
00008  */
00009 #include "FadcReadoutFormat/FadcTraits.h"
00010 
00011 #include <map>
00012 
00013 #include "FadcReadoutFormat/FadcTraits_v1_2.h"
00014 #include "FadcReadoutFormat/FadcTraits_v1_5.h"
00015 
00016 using DybDaq::FadcTraits;
00017 
00018 // Components in this format
00019 const unsigned int FadcTraits::kHead = 0;
00020 const unsigned int FadcTraits::kData = FadcTraits::kHead + 1;
00021 const unsigned int FadcTraits::kFoot = FadcTraits::kData + 1;
00022 
00023 const unsigned int FadcTraits::kHeadTriggerNumber = 0;
00024 const unsigned int FadcTraits::kMajorVersion = FadcTraits::kHeadTriggerNumber + 1;
00025 const unsigned int FadcTraits::kMinorVersion = FadcTraits::kMajorVersion + 1;
00026 //
00027 const unsigned int FadcTraits::kTriggerType = FadcTraits::kMinorVersion + 1;
00028 const unsigned int FadcTraits::kNoData = FadcTraits::kTriggerType + 1;
00029 //
00030 const unsigned int FadcTraits::kChannelId = FadcTraits::kNoData + 1;
00031 const unsigned int FadcTraits::kHighDataByte = FadcTraits::kChannelId + 1;
00032 const unsigned int FadcTraits::kMiddleDataByte = FadcTraits::kHighDataByte + 1;
00033 const unsigned int FadcTraits::kLowDataByte = FadcTraits::kMiddleDataByte + 1;
00034 //
00035 const unsigned int FadcTraits::kFootTriggerNumber = FadcTraits::kLowDataByte + 1;
00036 const unsigned int FadcTraits::kFootDataLength = FadcTraits::kFootTriggerNumber + 1;
00037 
00038 // Improvements to 1.2
00039 const unsigned int FadcTraits::kHeadMarker = FadcTraits::kFootDataLength + 1;
00040 const unsigned int FadcTraits::kAdcDataMarker = FadcTraits::kHeadMarker + 1;
00041 const unsigned int FadcTraits::kFootMarker = FadcTraits::kAdcDataMarker + 1;
00042 
00043 // Added in 1.5
00044 const unsigned int FadcTraits::kProtectionStatus = FadcTraits::kFootMarker + 1;
00045 const unsigned int FadcTraits::kScaleEnabled = FadcTraits::kProtectionStatus + 1;
00046 const unsigned int FadcTraits::kDuringPrevious = FadcTraits::kScaleEnabled + 1;
00047 
00048 
00049 static std::map<const char*, FadcTraits*> m_allTraits;
00050 
00051 FadcTraits::FadcTraits() {
00052 }
00053 
00054 FadcTraits::~FadcTraits() {
00055 }
00056 
00057 const FadcTraits& FadcTraits::defaultTraits() {
00058     if (0 == m_allTraits.size()) {
00059         m_allTraits.insert(std::pair<const char*, FadcTraits*>(FadcTraits_v1_2::key(),new FadcTraits_v1_2()));
00060         m_allTraits.insert(std::pair<const char*, FadcTraits*>(FadcTraits_v1_5::key(),new FadcTraits_v1_5()));
00061     }
00062     return *m_allTraits[FadcTraits_v1_5::key()];
00063 }
00064 
00065 const FadcTraits* FadcTraits::readTraits(const char*& buffer) {
00066     unsigned int major = 0;
00067     const unsigned int minor = readUnsignedInt(buffer,
00068                                              defaultTraits(),
00069                                              FadcTraits::kMinorVersion);
00070     
00071     const FadcTraits* result = 0;
00072     if (0U == major && 0U == minor) {
00073         result = m_allTraits[FadcTraits_v1_2::key()];
00074     } else if (0U == major && 1U == minor) {
00075             result = m_allTraits[FadcTraits_v1_2::key()];
00076     }
00077     return result;
00078 }
00079 
00080 unsigned int FadcTraits::illegalMarker() const {
00081     return 0xffffffffU;
00082 }
00083 
00084 unsigned int FadcTraits::illegalField() const {
00085     return 0xffffffffU;
00086 }
00087 
00088 const char* FadcTraits::triggerTypeAsString(unsigned int triggerType) const {
00089     if (triggerType >= triggerTypeEnd()) {
00090         return "Unknown";
00091     }
00092     return triggerTypeStrings()[triggerType];
00093 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:07:56 2011 for FadcReadoutFormat by doxygen 1.4.7