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

In This Package:

FeeTraits_v0_0.cc

Go to the documentation of this file.
00001 /*
00002  *  FeeTraits_v0_0.cc
00003  *  CbltReadoutFormat
00004  *
00005  *  Created by Simon Patton on 7/21/10.
00006  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00007  *
00008  */
00009 
00010 #include "FeeReadoutFormat/FeeTraits_v0_0.h"
00011 
00012 #include "DaqReadoutFormat/BitsDefinition.h"
00013 
00014 using DybDaq::DaqTraits;
00015 using DybDaq::FeeTraits_v0_0;
00016 using std::string;
00017 
00018 static const unsigned int m_indices[] = {
00019     0U, // kHeadTriggerNumber
00020     0U, // kTriggerType
00021     0U, // kChecked
00022     0U, // kError
00023     0U, // kChargeChannelId
00024     0U, // kPeakCycle
00025     0U, // kHighRangeAdc
00026     0U, // kAdc
00027     1U, // kTimeChannelId
00028     1U, // kHitNumber
00029     1U, // kTdc
00030     0U, // kFootTriggerNumber
00031     0U  // kFootDataLength
00032 };
00033 
00034 static const unsigned int m_shifts[] = {
00035     0U,  // kHeadTriggerNumber
00036     16U, // kTriggerType
00037     9U,  // kChecked
00038     8U,  // kError
00039     24U, // kChargeChannelId
00040     16U, // kPeakCycle
00041     12U, // kHighRangeAdc
00042     0U,  // kAdc
00043     24U, // kTimeChannelId
00044     17U, // kHitNumber
00045     0U,  // kTdc
00046     16U, // kFootTriggerNumber
00047     0U   // kFootDataLength
00048 };
00049 
00050 static const unsigned int m_masks[] = {
00051     0x000000ffU, // kHeadTriggerNumber
00052     0x0000000fU, // kTriggerType
00053     0x00000001U, // kChecked
00054     0x00000001U, // kError
00055     0x0000000fU, // kChargeChannelId
00056     0x0000001fU, // kPeakCycle
00057     0x00000001U, // kHighRangeAdc
00058     0x00000fffU, // kAdc
00059     0x0000000fU, // kTimeChannelId
00060     0x0000007fU, // kHitNumber
00061     0x0001ffffU, // kTdc
00062     0x000000ffU, // kFootTriggerNumber
00063     0x000003ffU  // kFootDataLength
00064 };
00065 
00066 static const std::string m_description[] = {
00067     "FEE Trigger Number",
00068     "FEE Trigger Type",
00069     "FEE Check",
00070     "FEE ADC Channel Id",
00071     "FEE ADC Peak Cycle",
00072     "FEE ADC is High Range",
00073     "FEE ADC Charge",
00074     "FEE TDC Channel Id",
00075     "FEE TDC Hit Number",
00076     "FEE TDC Time",
00077     "FEE Trigger Number",
00078     "FEE Data Length",
00079     "FEE Additional Format Version",
00080     "FEE Format Stamp",
00081     "FEE ADC 'Pedestal'"
00082 };
00083 
00084 static const unsigned int kFeeHeadElements[] = {
00085     1U,  // kTriggerType
00086     2U,  // kChecked
00087     3U,  // kError
00088     0U   // kHeadTriggerNumber
00089 };
00090 
00091 static const unsigned int kFeeHitElements[] = {
00092     4U, // kChargeChannelId
00093     5U, // kPeakCycle
00094     6U, // kHighRangeAdc
00095     7U, // kAdc
00096     8U, // kTimeChannelId
00097     9U, // kHitNumber
00098     10U // kTdc
00099 };
00100 
00101 static const unsigned int kFeeFootElements[] = {
00102     11U, // kFootTriggerNumber
00103     12U  // kFootDataLength
00104 };
00105 
00106 static const unsigned int* m_componentFields[] = {
00107     kFeeHeadElements, // FEE Head
00108     kFeeHitElements,  // FEE Hit
00109     kFeeFootElements  // FEE Foot
00110 };
00111 
00112 static const unsigned int m_componentFieldsEnd[] = {
00113     4U, // FEE Head
00114     7U, // FEE Hit
00115     2U  // FEE Foot
00116 };
00117 
00118 static DaqTraits::Definitions* m_definitions[] = {
00119     0, // FEE Head
00120     0, // FEE Hit
00121     0  // FEE Foot
00122 };
00123 
00124 static const char* m_triggerTypes[] = {
00125     "local",
00126     "cross",
00127 };
00128 
00129 const char* FeeTraits_v0_0::key() {
00130         return "FEE Format 0.0";
00131 }
00132 
00133 FeeTraits_v0_0::FeeTraits_v0_0() {
00134 }
00135 
00136 FeeTraits_v0_0::~FeeTraits_v0_0() {
00137 }
00138 
00139 unsigned int FeeTraits_v0_0::majorVersion() const {
00140         return 0U;
00141 }
00142 
00143 unsigned int FeeTraits_v0_0::minorVersion() const {
00144         return 0U;
00145 }
00146 
00147 const string FeeTraits_v0_0::versionString() const {
00148         return key();
00149 }
00150 
00151 unsigned int FeeTraits_v0_0::headSize() const {
00152     return 1U;
00153 }
00154 
00155 unsigned int FeeTraits_v0_0::hitSize() const {
00156     return 2U;
00157 }
00158 
00159 unsigned int FeeTraits_v0_0::footSize() const {
00160     return 1U;
00161 }
00162 
00163 void FeeTraits_v0_0::initializeHead(char* buffer) const {
00164     *((unsigned int*)buffer)       = 0x40000000U; // Head four bytes
00165 }
00166 
00167 void FeeTraits_v0_0::initializeHit(char* buffer) const {
00168     *((unsigned int*)buffer)       = 0x60000000U; // ADC four bytes
00169     *((unsigned int*)(buffer + 4)) = 0x80000000U; // TDC four bytes
00170 }
00171 
00172 void FeeTraits_v0_0::initializeFoot(char* buffer) const {
00173     *((unsigned int*)buffer)       = 0xa0000000U; // Foot four bytes
00174 }
00175 
00176 unsigned int FeeTraits_v0_0::markersEnd() const {
00177     return 0U;
00178 }
00179 
00180 const unsigned int* FeeTraits_v0_0::markers() const {
00181     return 0;
00182 }
00183 
00184 unsigned int FeeTraits_v0_0::fieldsEnd() const {
00185         return kFootDataLength + 1;
00186 }
00187 
00188 const unsigned int* FeeTraits_v0_0::indices() const {
00189         return m_indices;
00190 }
00191 
00192 const unsigned int* FeeTraits_v0_0::shifts() const {
00193         return m_shifts;
00194 }
00195 
00196 const unsigned int* FeeTraits_v0_0::masks() const {
00197         return m_masks;
00198 }
00199 
00200 const std::string* FeeTraits_v0_0::descriptions() const {
00201     return m_description;
00202 }
00203 
00204 DaqTraits::Definitions* FeeTraits_v0_0::definitions(unsigned int component) const {
00205     return m_definitions[component];
00206 }
00207 
00208 void FeeTraits_v0_0::setDefinitions(DaqTraits::Definitions* definitions,
00209                                     unsigned int component) {
00210     m_definitions[component] = definitions;
00211 }
00212 
00213 const unsigned int* FeeTraits_v0_0::componentFields(unsigned int component) const {
00214     return m_componentFields[component];
00215 }
00216 
00217 const unsigned int FeeTraits_v0_0::componentFieldsEnd(unsigned int component) const {
00218     return m_componentFieldsEnd[component];
00219 }
00220 
00221 unsigned int FeeTraits_v0_0::triggerTypeEnd() const {
00222     return 2U;
00223 }
00224 
00225 const char** FeeTraits_v0_0::triggerTypeStrings() const {
00226     return m_triggerTypes;
00227 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:08:02 2011 for FeeReadoutFormat by doxygen 1.4.7