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

In This Package:

FileTraits_v0_6.cc

Go to the documentation of this file.
00001 /*
00002  *  FileTraits.cc
00003  *  RawFileReading
00004  *
00005  *  Created by Simon Patton on 7/19/10.
00006  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00007  *
00008  */
00009 
00010 #include "FileReadoutFormat/FileTraits_v0_6.h"
00011 
00012 #include "DaqReadoutFormat/BitsDefinition.h"
00013 
00014 using DybDaq::DaqTraits;
00015 using DybDaq::FileTraits;
00016 using DybDaq::FileTraits_v0_6;
00017 using std::string;
00018 
00019 static const unsigned int m_markers[] = {
00020         0x1234aaaaU, // file_start_record
00021         0x1234aabbU, // file_name_string
00022         0x1234aabcU, // metadata_strings
00023         0x1234bbbbU, // run_parameters_record
00024         0x1234bbddU, // calibration_parameters_record
00025         0x1234ccccU, // data_separator
00026         0x1234ddddU, // file_end_record
00027     0x1234eeeeU  // file_end_marker
00028 };
00029 
00030 static const unsigned int m_recordSizes[] = {
00031         8U,  // file_start_record
00032         6U,  // file_name_string
00033         2U,  // file_name_string
00034         3U,  // metadata_strings
00035         21U, // calibration_parameters_record
00036         4U,  // data_separator
00037         10U, // file_end_record
00038     0U   // file_end_marker
00039 };
00040 
00041 static const unsigned int m_indices[] = {
00042         0U, // kMarker
00043         1U, // kRecordSize
00044     2U, // kMajorVersion
00045     2U, // kMinorVersion
00046     3U, // kFileNumber
00047     4U, // kFileOpenDate
00048     5U, // kFileOpenTime
00049     6U, // kDataBlockLimit
00050     7U, // kMegabyteLimit
00051     2U, // kFirstNameLength
00052     2U, // kMetadataCount
00053     3U, // kFirstMetadataLength
00054     2U, // kFileRunNumber
00055     3U, // kRecordEnabled
00056     4U, // kRunTriggerType
00057     5U, // kRunDetectorMask
00058     2U, // kCalibrationDetectorId
00059     3U, // kCalibrationAxis
00060     4U, // kCalibrationSourceId
00061     5U, // kCalibrationZPosition
00062     6U, // kCalibrationDuration
00063     7U, // kCalibrationLedFrequency
00064     8U, // kCalibrationLtbMode
00065         2U, // kBlockNumber
00066         3U, // kBlockLength
00067     2U, // kFileCloseDate
00068     3U, // kFileCloseTime;
00069     4U, // kFileEventCount
00070     5U, // kRunPayloadSize
00071     6U, // kRunEventCount
00072     7U, // kRunPayloadSize
00073     8U, // kFileEndStatus
00074     9U  // kEndFileMarker
00075 };
00076 
00077 static const unsigned int m_shifts[] = {
00078         0U, // kMarker
00079         0U, // kRecordSize
00080     0U, // kMajorVersion
00081     0U, // kMinorVersion
00082     0U, // kFileNumber
00083     0U, // kFileOpenDate
00084     0U, // kFileOpenTime
00085     0U, // kDataBlockLimit
00086     0U, // kMegabyteLimit
00087     0U, // kFirstNameLength
00088     0U, // kMetadataCount
00089     0U, // kFirstMetadataLength
00090     0U, // kFileRunNumber
00091     0U, // kRecordEnabled
00092     0U, // kRunTriggerType
00093     0U, // kRunDetectorMask
00094     0U, // kCalibrationDetectorId
00095     0U, // kCalibrationAxis
00096     0U, // kCalibrationSourceId
00097     0U, // kCalibrationZPosition
00098     0U, // kCalibrationDuration
00099     0U, // kCalibrationLedFrequency
00100     0U, // kCalibrationLtbMode
00101         0U, // kBlockNumber
00102         0U, // kBlockLength
00103     0U, // kFileCloseDate
00104     0U, // kFileCloseTime;
00105     0U, // kFileEventCount
00106     0U, // kRunPayloadSize
00107     0U, // kRunEventCount
00108     0U, // kRunPayloadSize
00109     0U, // kFileEndStatus
00110     0U  // kEndFileMarker
00111 };
00112 
00113 static const unsigned int m_masks[] = {
00114         0xffffffffU, // kMarker
00115         0xffffffffU, // kRecordSize
00116     0x00000000U, // kMajorVersion
00117     0xffffffffU, // kMinorVersion
00118     0xffffffffU, // kFileNumber
00119     0xffffffffU, // kFileOpenDate
00120     0xffffffffU, // kFileOpenTime
00121     0xffffffffU, // kDataBlockLimit
00122     0xffffffffU, // kMegabyteLimit
00123     0xffffffffU, // kFirstNameLength
00124     0xffffffffU, // kMetadataCount
00125     0xffffffffU, // kFirstMetadataLength
00126     0xffffffffU, // kFileRunNumber
00127     0x00000001U, // kRecordEnabled
00128     0xffffffffU, // kRunTriggerType
00129     0xffffffffU, // kRunDetectorMask
00130     0xffffffffU, // kCalibrationDetectorId
00131     0xffffffffU, // kCalibrationAxis
00132     0xffffffffU, // kCalibrationSourceId
00133     0xffffffffU, // kCalibrationZPosition
00134     0xffffffffU, // kCalibrationDuration
00135     0xffffffffU, // kCalibrationLedFrequency
00136     0xffffffffU, // kCalibrationLtbMode
00137         0xffffffffU, // kBlockNumber
00138         0xffffffffU, // kBlockLength
00139     0xffffffffU, // kFileCloseDate
00140     0xffffffffU, // kFileCloseTime;
00141     0xffffffffU, // kFileEventCount
00142     0xffffffffU, // kRunPayloadSize
00143     0xffffffffU, // kRunEventCount
00144     0xffffffffU, // kRunPayloadSize
00145     0xffffffffU, // kFileEndStatus
00146     0xffffffffU  // kEndFileMarker
00147 };
00148 
00149 static const std::string m_description[] = {
00150     "File Record Type",
00151     "File Record Size",
00152     "Major File Format Version",
00153     "Minor File Format Version",
00154     "File Sequence Number",
00155     "File Open Date",
00156     "File Open Time",
00157     "File Data Block Limit",
00158     "File Payload MB Limit",
00159     "Length of first File Name",
00160     "Number of Metadata entries",
00161     "Length of first Metadata",
00162     "Run Number",
00163     "Run Enabled",
00164     "Run Tigger Type",
00165     "Run Detector Mask",
00166     "Calibration Detector Id",
00167     "Calibration Axis",
00168     "Calibration Source Id",
00169     "Calibration Z Position",
00170     "Calibration Duration",
00171     "Calibration LED Frequency",
00172     "Calibration LTB Mode",
00173         "Data Block Number",
00174         "Data Block Length",
00175     "File Close Date",
00176     "File Close Time",
00177     "File Data Block Count",
00178     "File Payload size in MB",
00179     "Run Data Block Count",
00180     "Run Payload size in MB ",
00181     "End of File Status",
00182     "End of File Marker"
00183 };
00184 
00185 static const unsigned int kFileStartElements[] = {
00186     0U, // kMarker
00187     1U, // kRecordSize
00188     3U, // kMinorVersion
00189     4U, // kFileNumber
00190     5U, // kFileOpenDate
00191     6U, // kFileOpenTime
00192     7U, // kDataBlockLimit
00193     8U  // kMegabyteLimit
00194 };
00195 
00196 static const unsigned int kFileNameElements[] = {
00197     0U, // kMarker
00198     1U, // kRecordSize
00199     9U  // kFirstNameLength
00200 };
00201 
00202 static const unsigned int kMetadataElements[] = {
00203     0U,  // kMarker
00204     1U,  // kRecordSize
00205     10U, // kMetadataCount
00206     11U  // kFirstMetadataLength
00207 };
00208 
00209 static const unsigned int kRunParameterElements[] = {
00210     0U,  // kMarker
00211     1U,  // kRecordSize
00212     12U, // kFileRunNumber
00213     13U, // kRecordEnabled
00214     14U, // kRunTriggerType
00215     15U  // kRunDetectorMask
00216 };
00217 
00218 static const unsigned int kCalibrationElements[] = {
00219     0U,  // kMarker
00220     1U,  // kRecordSize
00221     16U, // kCalibrationDetectorId
00222     17U, // kCalibrationAxis
00223     18U, // kCalibrationSourceId
00224     19U, // kCalibrationZPosition
00225     20U, // kCalibrationDuration
00226     21U, // kCalibrationLedFrequency
00227     22U  // kCalibrationLtbMode
00228 };
00229 
00230 static const unsigned int kDataSeparatorElements[] = {
00231     0U,  // kMarker
00232     1U,  // kRecordSize
00233     23U, // kBlockNumber
00234     24U  // kBlockLength
00235 };
00236 
00237 static const unsigned int kFileEndElements[] = {
00238     0U,  // kMarker
00239     1U,  // kRecordSize
00240     25U, // kFileCloseDate
00241     26U, // kFileCloseTime;
00242     27U, // kFileEventCount
00243     28U, // kRunPayloadSize
00244     29U, // kRunEventCount
00245     30U, // kRunPayloadSize
00246     31U, // kFileEndStatus
00247     32U  // kEndFileMarker
00248 };
00249 
00250 static const unsigned int* m_componentFields[] = {
00251     kFileStartElements,     // file_start_record
00252     kFileNameElements,      // file_name_string
00253     kMetadataElements,      // metadata_strings
00254     kRunParameterElements,  // run_parameters_record
00255     kCalibrationElements,   // calibration_parameters_record
00256     kDataSeparatorElements, // data_separator
00257     kFileEndElements        // file_end_record
00258 };
00259 
00260 static const unsigned int m_componentFieldsEnd[] = {
00261     8U, // file_start_record
00262     3U, // file_name_string
00263     4U, // metadata_strings
00264     6U, // run_parameters_record
00265     9U, // calibration_parameters_record
00266     4U, // data_separator
00267     10U // file_end_record
00268 };
00269 
00270 static DaqTraits::Definitions* m_definitions[] = {
00271     0, // file_start_record
00272     0, // file_name_string
00273     0, // metadata_strings
00274     0, // run_parameters_record
00275     0, // calibration_parameters_record
00276     0, // data_separator
00277     0  // file_end_record
00278 };
00279 
00280 static const char* m_detectors[] = {
00281     "TST-TST",
00282     "DYB-AD1",
00283     "DYB-AD2",
00284     "UNK",
00285     "UNK",
00286     "DYB-WPI",
00287     "DYB-WPO",
00288     "DYB-RPC",
00289     "UNK",
00290     "LAN-AD1",
00291     "LAN-AD2",
00292     "UNK",
00293     "UNK",
00294     "LAN-WPI",
00295     "LAN-WPO",
00296     "LAN-RPC",
00297     "UNK",
00298     "FAR-AD1",
00299     "FAR-AD2",
00300     "FAR-AD3",
00301     "FAR-AD4",
00302     "FAR-WPI",
00303     "FAR-WPO",
00304     "FAR-RPC"
00305 };
00306 
00307 FileTraits_v0_6::FileTraits_v0_6() {
00308 }
00309 
00310 FileTraits_v0_6::~FileTraits_v0_6() {
00311 }
00312 
00313 const char* FileTraits_v0_6::key() {
00314         return "File Format 0.6";
00315 }
00316 
00317 unsigned int FileTraits_v0_6::majorVersion() const {
00318         return 0U;
00319 }
00320 
00321 unsigned int FileTraits_v0_6::minorVersion() const {
00322         return 6U;
00323 }
00324 
00325 const string FileTraits_v0_6::versionString() const {
00326         return key();
00327 }
00328 
00329 unsigned int FileTraits_v0_6::markersEnd() const {
00330     return kEndFileMarker + 1;
00331 }
00332 
00333 const unsigned int* FileTraits_v0_6::recordSizes() const {
00334     return m_recordSizes;
00335 }
00336 
00337 unsigned int FileTraits_v0_6::detectorListEnd() const {
00338     return 24U;
00339 }
00340 
00341 const char** FileTraits_v0_6::detectorStrings() const {
00342     return m_detectors;
00343 }
00344 
00345 const unsigned int* FileTraits_v0_6::markers() const {
00346     return m_markers;
00347 }
00348 
00349 unsigned int FileTraits_v0_6::fieldsEnd() const {
00350         return kEndFileMarker + 1;
00351 }
00352 
00353 const unsigned int* FileTraits_v0_6::indices() const {
00354         return m_indices;
00355 }
00356 
00357 const unsigned int* FileTraits_v0_6::shifts() const {
00358         return m_shifts;
00359 }
00360 
00361 const unsigned int* FileTraits_v0_6::masks() const {
00362         return m_masks;
00363 }
00364 
00365 const std::string* FileTraits_v0_6::descriptions() const {
00366     return m_description;
00367 }
00368 
00369 DaqTraits::Definitions* FileTraits_v0_6::definitions(unsigned int component) const {
00370     return m_definitions[component];
00371 }
00372 
00373 void FileTraits_v0_6::setDefinitions(DaqTraits::Definitions* definitions,
00374                                      unsigned int component) {
00375     m_definitions[component] = definitions;
00376 }
00377 
00378 const unsigned int* FileTraits_v0_6::componentFields(unsigned int component) const {
00379     return m_componentFields[component];
00380 }
00381 
00382 const unsigned int FileTraits_v0_6::componentFieldsEnd(unsigned int component) const {
00383     return m_componentFieldsEnd[component];
00384 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:08:33 2011 for FileReadoutFormat by doxygen 1.4.7