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

In This Package:

FadcTraits_v1_5.cc

Go to the documentation of this file.
00001 /*
00002  *  FadcTraits_v1_5.cc
00003  *  CbltReadoutFormat
00004  *
00005  *  Created by Simon Patton on 9/2/10.
00006  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00007  *
00008  */
00009 
00010 #include "FadcReadoutFormat/FadcTraits_v1_5.h"
00011 
00012 #include "DaqReadoutFormat/BitsDefinition.h"
00013 
00014 using DybDaq::DaqTraits;
00015 using DybDaq::FadcTraits_v1_5;
00016 using std::string;
00017 
00018 static const unsigned int m_indices[] = {
00019     0U, // kHeadTriggerNumber
00020     0U, // kMajorVersion
00021     0U, // kMinorVersion
00022     0U, // kTriggerType
00023     0U, // kNoData
00024     0U, // kChannelId
00025     0U, // kHighDataByte
00026     0U, // kMiddleDataByte
00027     0U, // kLowDataByte
00028     0U, // kFootTriggerNumber
00029     0U, // kFootDataLength
00030     0U, // kHeadMarker
00031     0U, // kAdcDataMarker
00032     0U, // kFootMarker
00033     0U, // kProtectionStatus
00034     0U, // kScaleEnabled
00035     0U  // kDuringPrevious
00036 };
00037 
00038 static const unsigned int m_shifts[] = {
00039     0U,  // kHeadTriggerNumber
00040     0U,  // kMajorVersion
00041     24U, // kMinorVersion
00042     16U, // kTriggerType
00043     15U, // kNoData
00044     24U, // kChannelId
00045     16U, // kHighDataByte
00046     8U,  // kMiddleDataByte
00047     0U,  // kLowDataByte
00048     16U, // kFootTriggerNumber
00049     0U,  // kFootDataLength
00050     28U, // kHeadMarker
00051     29U, // kAdcDataMarker
00052     28U, // kFootMarker
00053     10U, // kProtectionStatus
00054     9U,  // kScaleEnabled
00055     8U   // kDuringPrevious
00056 };
00057 
00058 static const unsigned int m_masks[] = {
00059     0x000000ffU, // kHeadTriggerNumber
00060     0x00000000U, // kMajorVersion
00061     0x0000000fU, // kMinorVersion
00062     0x0000000fU, // kTriggerType
00063     0x00000000U, // kNoData
00064     0x0000000fU, // kChannelId
00065     0x000000ffU, // kHighDataByte
00066     0x000000ffU, // kMiddleDataByte
00067     0x000000ffU, // kLowDataByte
00068     0x000000ffU, // kFootTriggerNumber
00069     0x0000ffffU, // kFootDataLength
00070     0x0000000fU, // kHeadMarker
00071     0x00000007U, // kAdcDataMarker
00072     0x0000000fU, // kFootMarker
00073     0x00000001U, // kProtectionStatus
00074     0x00000001U, // kScaleEnabled
00075     0x00000001U  // kDuringPrevious
00076 };
00077 
00078 static const std::string m_description[] = {
00079     "FADC Trigger Number",
00080     "FADC Major Format Version",
00081     "FADC Minor Format Version",
00082     "FADC Trigger Type",
00083     "FADC Has No Data",
00084     "FADC Channel Id",
00085     "FADC High Data Byte",
00086     "FADC Middle Data Byte",
00087     "FADC Low Data Byte",
00088     "FADC Trigger Number",
00089     "FADC Data Length",
00090     "FADC Head Marker (0x4)",
00091     "FADC ADC Data Marker (0x3)",
00092     "FADC Foot Marker (0xa)"
00093     "FADC Protection Status",
00094     "FADC Scale Enabled",
00095     "FADC During Previous"
00096 };
00097 
00098 static const unsigned int kFdcHeadElements[] = {
00099     11U, // kHeadMarker
00100     4U,  // kMinorVersion
00101     3U,  // kTriggerType
00102     14U, // kProtectionStatus
00103     15U, // kScaleEnabled
00104     16U, // kDuringPrevious
00105     0U   // kHeadTriggerNumber
00106 };
00107 
00108 static const unsigned int kFdcDataElements[] = {
00109     12U, // kAdcDataMarker
00110     5U,  // kChannelId
00111     6U,  // kHighDataByte
00112     7U,  // kMiddleDataByte
00113     8U   // kLowDataByte
00114 };
00115 
00116 static const unsigned int kFdcFootElements[] = {
00117     13U, // kFootMarker
00118     9U,  // kFootTriggerNumber
00119     10U  // kFootDataLength
00120 };
00121 
00122 static const unsigned int* m_componentFields[] = {
00123     kFdcHeadElements, // FADC Head
00124     kFdcDataElements, // FADC Data
00125     kFdcFootElements  // FADC Foot
00126 };
00127 
00128 static const unsigned int m_componentFieldsEnd[] = {
00129     7U, // FADC Head
00130     5U, // FADC Data
00131     3U  // FADC Foot
00132 };
00133 
00134 static DaqTraits::Definitions* m_definitions[] = {
00135     0, // FADC Head
00136     0, // FADC Data
00137     0  // FADC Foot
00138 };
00139 
00140 static const char* m_triggerTypes[] = {
00141     "self",
00142     "external",
00143 };
00144 
00145 const char* FadcTraits_v1_5::key() {
00146         return "FADC Format 1.5";
00147 }
00148 
00149 FadcTraits_v1_5::FadcTraits_v1_5() {
00150 }
00151 
00152 FadcTraits_v1_5::~FadcTraits_v1_5() {
00153 }
00154 
00155 unsigned int FadcTraits_v1_5::majorVersion() const {
00156         return 1U;
00157 }
00158 
00159 unsigned int FadcTraits_v1_5::minorVersion() const {
00160         return 5U;
00161 }
00162 
00163 const string FadcTraits_v1_5::versionString() const {
00164         return key();
00165 }
00166 
00167 unsigned int FadcTraits_v1_5::headSize() const {
00168     return 1U;
00169 }
00170 
00171 unsigned int FadcTraits_v1_5::dataSize() const {
00172     return 1U;
00173 }
00174 
00175 unsigned int FadcTraits_v1_5::footSize() const {
00176     return 1U;
00177 }
00178 
00179 void FadcTraits_v1_5::initializeHead(char* buffer) const {
00180     *((unsigned int*)buffer)       = 0x40000000U; // Head four bytes
00181 }
00182 
00183 void FadcTraits_v1_5::initializeData(char* buffer) const {
00184     *((unsigned int*)buffer)       = 0x60000000U; // Data four bytes
00185 }
00186 
00187 void FadcTraits_v1_5::initializeFoot(char* buffer) const {
00188     *((unsigned int*)buffer)       = 0xa0000000U; // Foot four bytes
00189 }
00190 
00191 unsigned int FadcTraits_v1_5::markersEnd() const {
00192     return 0U;
00193 }
00194 
00195 const unsigned int* FadcTraits_v1_5::markers() const {
00196     return 0;
00197 }
00198 
00199 unsigned int FadcTraits_v1_5::fieldsEnd() const {
00200         return kDuringPrevious + 1;
00201 }
00202 
00203 const unsigned int* FadcTraits_v1_5::indices() const {
00204         return m_indices;
00205 }
00206 
00207 const unsigned int* FadcTraits_v1_5::shifts() const {
00208         return m_shifts;
00209 }
00210 
00211 const unsigned int* FadcTraits_v1_5::masks() const {
00212         return m_masks;
00213 }
00214 
00215 const std::string* FadcTraits_v1_5::descriptions() const {
00216     return m_description;
00217 }
00218 
00219 DaqTraits::Definitions* FadcTraits_v1_5::definitions(unsigned int component) const {
00220     return m_definitions[component];
00221 }
00222 
00223 void FadcTraits_v1_5::setDefinitions(DaqTraits::Definitions* definitions,
00224                                      unsigned int component) {
00225     m_definitions[component] = definitions;
00226 }
00227 
00228 const unsigned int* FadcTraits_v1_5::componentFields(unsigned int component) const {
00229     return m_componentFields[component];
00230 }
00231 
00232 const unsigned int FadcTraits_v1_5::componentFieldsEnd(unsigned int component) const {
00233     return m_componentFieldsEnd[component];
00234 }
00235 
00236 unsigned int FadcTraits_v1_5::triggerTypeEnd() const {
00237     return 2U;
00238 }
00239 
00240 const char** FadcTraits_v1_5::triggerTypeStrings() const {
00241     return m_triggerTypes;
00242 }
| 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