/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

EventTraits_v0_7.cc
Go to the documentation of this file.
00001 /*
00002  *  EventTraits_v0_7.cc
00003  *  RawFileReading
00004  *
00005  *  Created by Simon Patton on 4/14/11.
00006  *  Copyright 2011 DayaBay Collaboration. All rights reserved.
00007  *
00008  */
00009 
00010 #include "EventReadoutFormat/EventTraits_v0_7.h"
00011 
00012 #include "DaqReadoutFormat/BitsDefinition.h"
00013 #include "DaqReadoutFormat/DaqBuffer.h"
00014 
00015 using DybDaq::DaqTraits;
00016 using DybDaq::EventTraits_v0_7;
00017 using std::string;
00018 
00019 static const unsigned int m_markers[] = {
00020     0xaa1234aaU, // Event Header
00021     0xbb1234bbU  // ROM fragment Header
00022 };
00023 
00024 static const unsigned int m_headerLengths[] = {
00025     8U, // Event Header
00026     3U  // ROM fragment Header
00027 };
00028 
00029 static const unsigned int m_indices[] = {
00030         0U, // kMarker
00031         1U, // kMajorVersion
00032         1U, // kMinorVersion
00033         2U, // kEventHeaderSize
00034         2U, // kEventTotalSize
00035         3U, // kEventSite
00036         3U, // kEventDetector
00037         4U, // kEventRun
00038         5U, // kEventNumber
00039         6U, // kEventDataType
00040         7U, // kCbltWrapping
00041         7U, // kRawCblt
00042         7U, // kLtbMismatch
00043         7U, // kInvalidData
00044         1U, // kRomHeaderSize
00045         1U, // kRomTotalSize
00046         2U, // kRomSite
00047         2U, // kRomDetector
00048         2U, // kRomModuleType
00049         2U, // kRomSlot
00050         7U, // kRpcSortDisabled
00051         7U  // kDataSortTimeout
00052 };
00053 
00054 static const unsigned int m_shifts[] = {
00055         0U,  // kMarker
00056         24U, // kMajorVersion
00057         16U, // kMinorVersion
00058         24U, // kEventHeaderSize
00059         0U,  // kEventTotalSize
00060         20U, // kEventSite
00061         16U, // kEventDetector
00062         0U,  // kEventRun
00063         0U,  // kEventNumber
00064         28U, // kEventDataType
00065         17U, // kCbltWrapping
00066         16U, // kRawCblt
00067         1U,  // kLtbMismatch
00068         0U,  // kInvalidData
00069         24U, // kRomHeaderSize
00070         0U,  // kRomTotalSize
00071         20U, // kRomSite
00072         16U, // kRomDetector
00073         8U,  // kRomModuleType
00074         0U,  // kRomSlot
00075         18U, // kRpcSortDisabled
00076         15U  // kDataSortTimeout
00077 };
00078 
00079 static const unsigned int m_masks[] = {
00080         0xffffffffU, // kMarker
00081         0x000000ffU, // kMajorVersion
00082         0x000000ffU, // kMinorVersion
00083         0x000000ffU, // kEventHeaderSize
00084         0x00ffffffU, // kEventTotalSize
00085         0x0000000fU, // kEventSite
00086         0x0000000fU, // kEventDetector
00087         0xffffffffU, // kEventRun
00088         0xffffffffU, // kEventNumber
00089         0x0000000fU, // kEventDataType
00090         0x00000001U, // kCbltWrapping
00091         0x00000001U, // kRawCblt
00092         0x00000001U, // kLtbMismatch
00093         0x00000001U, // kInvalidData
00094         0x000000ffU, // kRomHeaderSize
00095         0x00ffffffU, // kRomTotalSize
00096         0x0000000fU, // kRomSite
00097         0x0000000fU, // kRomDetector
00098         0x000000ffU, // kRomModuleType
00099         0x000000ffU, // kRomSlot
00100         0x00000001U, // kRpcSortDisabled
00101         0x00000001U  // kDataSortTimeout
00102 };
00103 
00104 static const std::string m_description[] = {
00105     "Event Record Type",
00106     "Major Event Format Version",
00107     "Minor Event Format Version",
00108     "Event Header Size",
00109     "Total Event Size",
00110     "Event Site",
00111     "Event Detector",
00112     "Event Run",
00113     "Event Number",
00114     "Event Data Type",
00115     "CBLT Wrapping",
00116     "Raw CBLT Data",
00117     "LTB Mismatch",
00118     "Invalid Data",
00119     "ROM Header Size",
00120     "ROM Event Size",
00121     "ROM Site",
00122     "ROM Detector",
00123     "ROM Module Type",
00124     "ROM Slot",
00125     "RPC Event Assemble Sort Disabled",
00126     "SFO Data Stream Sort Timeout"
00127 };
00128 
00129 static const unsigned int kEventHeaderElements[] = {
00130         0U,  // kMarker
00131         1U,  // kMajorVersion
00132         2U,  // kMinorVersion
00133         3U,  // kEventHeaderSize
00134         4U,  // kEventTotalSize
00135         5U,  // kEventSite
00136         6U,  // kEventDetector
00137         7U,  // kEventRun
00138         8U,  // kEventNumber
00139         9U,  // kEventDataType
00140         20U, // kRpcSortDisable
00141         10U, // kCbltWrapping
00142         11U, // kRawCblt
00143         21U, // kDataSortTimeout
00144         12U, // kLtbMismatch
00145         13U  // kInvalidData
00146 };
00147 
00148 static const unsigned int kRomHeaderElements[] = {
00149         0U,  // kMarker
00150         14U, // kRomHeaderSize
00151         15U, // kRomTotalSize
00152         16U, // kRomSite
00153         17U, // kRomDetector
00154         18U, // kRomModuleType
00155         19U  // kRomSlot
00156 };
00157 
00158 static const unsigned int* m_componentFields[] = {
00159     kEventHeaderElements, // Event Header
00160     kRomHeaderElements    // ROM fragment Header
00161 };
00162 
00163 static const unsigned int m_componentFieldsEnd[] = {
00164     16U, // Event Header
00165     7U   // ROM fragment Header
00166 };
00167 
00168 static DaqTraits::Definitions* m_definitions[] = {
00169     0, // Event Header
00170     0  // ROM fragment Header
00171 };
00172 
00173 static const char* m_sites[] = {
00174     "TST",
00175     "EH1",
00176     "EH2",
00177     "EH3",
00178     "MID",
00179     "FIL",
00180     "SAB",
00181     "UNK"
00182 };
00183 
00184 static const char* m_detectors[] = {
00185     "TST",
00186     "AD1",
00187     "AD2",
00188     "AD3",
00189     "AD4",
00190     "WPI",
00191     "WPO",
00192     "RPC"
00193 };
00194 
00195 static const char* m_dataTypes[] = {
00196     "NORMAL",
00197     "CALIBRATION",
00198     "ELECTRONICS_CALIBRATION",
00199     "PEDESTAL"
00200 };
00201 
00202 static const unsigned int m_moduleTypes[] = {
00203     1U, // kFeeModule
00204     2U, // kFadcModule
00205     3U, // kLtbModule
00206     4U, // kRpcRomModule
00207     5U, // kRpcRtmModule
00208     6U  // kMtbModule
00209 };
00210 
00211 static const char* m_moduleTypeStrings[] = {
00212     "UNK",
00213     "PMT_FEE",
00214     "Flash_ADC",
00215     "Local_Trigger",
00216     "RPC_ROM",
00217     "RPC_RTM",
00218     "Master_Trigger"
00219 };
00220 
00221 const char* EventTraits_v0_7::key() {
00222         return "Event Format 0.7";
00223 }
00224 
00225 EventTraits_v0_7::EventTraits_v0_7() {
00226 }
00227 
00228 EventTraits_v0_7::~EventTraits_v0_7() {
00229 }
00230 
00231 unsigned int EventTraits_v0_7::majorVersion() const {
00232         return 0U;
00233 }
00234 
00235 unsigned int EventTraits_v0_7::minorVersion() const {
00236         return 7U;
00237 }
00238 
00239 const string EventTraits_v0_7::versionString() const {
00240         return key();
00241 }
00242 
00243 unsigned int EventTraits_v0_7::headerSize(const unsigned int marker) const {
00244         if (marker >= markersEnd()) {
00245                 return illegalMarker();
00246         }
00247         return m_headerLengths[marker];
00248 }
00249 
00250 void EventTraits_v0_7::initializeHeader(const unsigned int markerToInit,
00251                                         char* buffer) const {
00252     for (unsigned int count = 0;
00253          count != headerSize(markerToInit);
00254          ++count) {
00255         *((unsigned int*)(buffer + (count * DaqBuffer::kBytesInInt))) = 0x00000000U; // Header four bytes
00256     }
00257     *((unsigned int*)buffer) = marker(markerToInit);
00258     if (markerToInit == kEventHeader) {
00259         *(((unsigned int*)buffer) + index(EventTraits::kEventDetector)) = 0xC0000000U;
00260     }
00261 }
00262 
00263 unsigned int EventTraits_v0_7::markersEnd() const {
00264     return kRomHeader + 1;
00265 }
00266 
00267 const unsigned int* EventTraits_v0_7::markers() const {
00268     return m_markers;
00269 }
00270 
00271 unsigned int EventTraits_v0_7::fieldsEnd() const {
00272         return kDataSortTimeout + 1;
00273 }
00274 
00275 const unsigned int* EventTraits_v0_7::indices() const {
00276         return m_indices;
00277 }
00278 
00279 const unsigned int* EventTraits_v0_7::shifts() const {
00280         return m_shifts;
00281 }
00282 
00283 const unsigned int* EventTraits_v0_7::masks() const {
00284         return m_masks;
00285 }
00286 
00287 const std::string* EventTraits_v0_7::descriptions() const {
00288     return m_description;
00289 }
00290 
00291 DaqTraits::Definitions* EventTraits_v0_7::definitions(unsigned int component) const {
00292     return m_definitions[component];
00293 }
00294 
00295 void EventTraits_v0_7::setDefinitions(DaqTraits::Definitions* definitions,
00296                                       unsigned int component) {
00297     m_definitions[component] = definitions;
00298 }
00299 
00300 const unsigned int* EventTraits_v0_7::componentFields(unsigned int component) const {
00301     return m_componentFields[component];
00302 }
00303 
00304 const unsigned int EventTraits_v0_7::componentFieldsEnd(unsigned int component) const {
00305     return m_componentFieldsEnd[component];
00306 }
00307 
00308 unsigned int EventTraits_v0_7::maxSite() const {
00309         return 7U;
00310 }
00311 
00312 const char** EventTraits_v0_7::siteStrings() const {
00313     return m_sites;
00314 }
00315 
00316 unsigned int EventTraits_v0_7::maxDetector() const {
00317         return 7U;
00318 }
00319 
00320 const char** EventTraits_v0_7::detectorStrings() const {
00321     return m_detectors;
00322 }
00323 
00324 unsigned int EventTraits_v0_7::maxDataType() const {
00325         return 3U;
00326 }
00327 
00328 const char** EventTraits_v0_7::dataTypeStrings() const {
00329     return m_dataTypes;
00330 }
00331 
00332 unsigned int EventTraits_v0_7::maxModuleType() const {
00333     return kMtbModule;
00334 }
00335 
00336 const unsigned int* EventTraits_v0_7::moduleTypes() const {
00337         return m_moduleTypes;
00338 }
00339 
00340 const char** EventTraits_v0_7::moduleTypeStrings() const {
00341     return m_moduleTypeStrings;
00342 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:53:15 for EventReadoutFormat by doxygen 1.7.4