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

In This Package:

FileTraits_v0_7.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_7.h"
00011 
00012 #include "DaqReadoutFormat/BitsDefinition.h"
00013 
00014 using DybDaq::DaqTraits;
00015 using DybDaq::FileTraits;
00016 using DybDaq::FileTraits_v0_7;
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     2U,  // file_name_string
00033     3U,  // metadata_strings
00034     6U,  // run_parameters_record
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     4U,  // kCalibrationAxis
00060     5U,  // kCalibrationSourceId
00061     6U,  // kCalibrationZPosition
00062     7U,  // kCalibrationDuration
00063     12U, // kCalibrationLedFrequency
00064     14U, // 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     3U,  // kCalibrationAdNumber
00076     8U,  // kCalibrationLedNumber1
00077     9U,  // kCalibrationLedNumber2
00078     10U, // kCalibrationLedVoltage1
00079     11U, // kCalibrationLedVoltage2
00080     13U  // kCalibrationLedPulseSeparation
00081 };
00082 
00083 static const unsigned int m_shifts[] = {
00084     0U, // kMarker
00085     0U, // kRecordSize
00086     0U, // kMajorVersion
00087     0U, // kMinorVersion
00088     0U, // kFileNumber
00089     0U, // kFileOpenDate
00090     0U, // kFileOpenTime
00091     0U, // kDataBlockLimit
00092     0U, // kMegabyteLimit
00093     0U, // kFirstNameLength
00094     0U, // kMetadataCount
00095     0U, // kFirstMetadataLength
00096     0U, // kFileRunNumber
00097     0U, // kRecordEnabled
00098     0U, // kRunTriggerType
00099     0U, // kRunDetectorMask
00100     0U, // kCalibrationDetectorId
00101     0U, // kCalibrationAxis
00102     0U, // kCalibrationSourceId
00103     0U, // kCalibrationZPosition
00104     0U, // kCalibrationDuration
00105     0U, // kCalibrationLedFrequency
00106     0U, // kCalibrationLtbMode
00107     0U, // kBlockNumber
00108     0U, // kBlockLength
00109     0U, // kFileCloseDate
00110     0U, // kFileCloseTime;
00111     0U, // kFileEventCount
00112     0U, // kRunPayloadSize
00113     0U, // kRunEventCount
00114     0U, // kRunPayloadSize
00115     0U, // kFileEndStatus
00116     0U, // kEndFileMarker
00117     0U, // kCalibrationAdNumber
00118     0U, // kCalibrationLedNumber1
00119     0U, // kCalibrationLedNumber2
00120     0U, // kCalibrationLedVoltage1
00121     0U, // kCalibrationLedVoltage2
00122     0U  // kCalibrationLedPulseSeparation
00123 };
00124 
00125 static const unsigned int m_masks[] = {
00126     0xffffffffU, // kMarker
00127     0xffffffffU, // kRecordSize
00128     0x00000000U, // kMajorVersion
00129     0xffffffffU, // kMinorVersion
00130     0xffffffffU, // kFileNumber
00131     0xffffffffU, // kFileOpenDate
00132     0xffffffffU, // kFileOpenTime
00133     0xffffffffU, // kDataBlockLimit
00134     0xffffffffU, // kMegabyteLimit
00135     0xffffffffU, // kFirstNameLength
00136     0xffffffffU, // kMetadataCount
00137     0xffffffffU, // kFirstMetadataLength
00138     0xffffffffU, // kFileRunNumber
00139     0x00000001U, // kRecordEnabled
00140     0xffffffffU, // kRunTriggerType
00141     0xffffffffU, // kRunDetectorMask
00142     0xffffffffU, // kCalibrationDetectorId
00143     0xffffffffU, // kCalibrationAxis
00144     0xffffffffU, // kCalibrationSourceId
00145     0xffffffffU, // kCalibrationZPosition
00146     0xffffffffU, // kCalibrationDuration
00147     0xffffffffU, // kCalibrationLedFrequency
00148     0xffffffffU, // kCalibrationLtbMode
00149     0xffffffffU, // kBlockNumber
00150     0xffffffffU, // kBlockLength
00151     0xffffffffU, // kFileCloseDate
00152     0xffffffffU, // kFileCloseTime;
00153     0xffffffffU, // kFileEventCount
00154     0xffffffffU, // kRunPayloadSize
00155     0xffffffffU, // kRunEventCount
00156     0xffffffffU, // kRunPayloadSize
00157     0xffffffffU, // kFileEndStatus
00158     0xffffffffU, // kEndFileMarker
00159     0xffffffffU, // kCalibrationAdNumber
00160     0xffffffffU, // kCalibrationLedNumber1
00161     0xffffffffU, // kCalibrationLedNumber2
00162     0xffffffffU, // kCalibrationLedVoltage1
00163     0xffffffffU, // kCalibrationLedVoltage2
00164     0xffffffffU  // kCalibrationLedPulseSeparation
00165 };
00166 
00167 static const std::string m_description[] = {
00168     "File Record Type",
00169     "File Record Size",
00170     "Major File Format Version",
00171     "Minor File Format Version",
00172     "File Sequence Number",
00173     "File Open Date",
00174     "File Open Time",
00175     "File Data Block Limit",
00176     "File Payload MB Limit",
00177     "Length of first File Name",
00178     "Number of Metadata entries",
00179     "Length of first Metadata",
00180     "Run Number",
00181     "Run Enabled",
00182     "Run Tigger Type",
00183     "Run Detector Mask",
00184     "Calibration Detector Id",
00185     "Calibration Axis",
00186     "Calibration Source Id",
00187     "Calibration Z Position",
00188     "Calibration Duration",
00189     "Calibration LED Frequency",
00190     "Calibration LTB Mode",
00191         "Data Block Number",
00192         "Data Block Length",
00193     "File Close Date",
00194     "File Close Time",
00195     "File Data Block Count",
00196     "File Payload size in MB",
00197     "Run Data Block Count",
00198     "Run Payload size in MB ",
00199     "End of File Status",
00200     "End of File Marker",
00201     "Calibration AD Number",
00202     "Calibration LED 1",
00203     "Calibration LED 2",
00204     "Calibration LED 1 Voltage",
00205     "Calibration LED 2 Voltage",
00206     "Calibration LED Pulse Sep."
00207 };
00208 
00209 static const unsigned int kFileStartElements[] = {
00210     0U, // kMarker
00211     1U, // kRecordSize
00212     3U, // kMinorVersion
00213     4U, // kFileNumber
00214     5U, // kFileOpenDate
00215     6U, // kFileOpenTime
00216     7U, // kDataBlockLimit
00217     8U  // kMegabyteLimit
00218 };
00219 
00220 static const unsigned int kFileNameElements[] = {
00221     0U, // kMarker
00222     1U, // kRecordSize
00223     9U  // kFirstNameLength
00224 };
00225 
00226 static const unsigned int kMetadataElements[] = {
00227     0U,  // kMarker
00228     1U,  // kRecordSize
00229     10U, // kMetadataCount
00230     11U  // kFirstMetadataLength
00231 };
00232 
00233 static const unsigned int kRunParameterElements[] = {
00234     0U,  // kMarker
00235     1U,  // kRecordSize
00236     12U, // kFileRunNumber
00237     13U, // kRecordEnabled
00238     14U, // kRunTriggerType
00239     15U  // kRunDetectorMask
00240 };
00241 
00242 static const unsigned int kCalibrationElements[] = {
00243     0U,  // kMarker
00244     1U,  // kRecordSize
00245     16U, // kCalibrationDetectorId
00246     17U, // kCalibrationAxis
00247     18U, // kCalibrationSourceId
00248     19U, // kCalibrationZPosition
00249     20U, // kCalibrationDuration
00250     21U, // kCalibrationLedFrequency
00251     22U, // kCalibrationLtbMode
00252     33U, // kCalibrationAdNumber
00253     34U, // kCalibrationLedNumber1
00254     35U, // kCalibrationLedNumber2
00255     36U, // kCalibrationLedVoltage1
00256     37U, // kCalibrationLedVoltage2
00257     38U  // kCalibrationLedPulseSeparation
00258 };
00259 
00260 static const unsigned int kDataSeparatorElements[] = {
00261     0U,  // kMarker
00262     1U,  // kRecordSize
00263     23U, // kBlockNumber
00264     24U  // kBlockLength
00265 };
00266 
00267 static const unsigned int kFileEndElements[] = {
00268     0U,  // kMarker
00269     1U,  // kRecordSize
00270     25U, // kFileCloseDate
00271     26U, // kFileCloseTime;
00272     27U, // kFileEventCount
00273     28U, // kRunPayloadSize
00274     29U, // kRunEventCount
00275     30U, // kRunPayloadSize
00276     31U, // kFileEndStatus
00277     32U  // kEndFileMarker
00278 };
00279 
00280 static const unsigned int* m_componentFields[] = {
00281     kFileStartElements,     // file_start_record
00282     kFileNameElements,      // file_name_string
00283     kMetadataElements,      // metadata_strings
00284     kRunParameterElements,  // run_parameters_record
00285     kCalibrationElements,   // calibration_parameters_record
00286     kDataSeparatorElements, // data_separator
00287     kFileEndElements        // file_end_record
00288 };
00289 
00290 static const unsigned int m_componentFieldsEnd[] = {
00291     8U,  // file_start_record
00292     3U,  // file_name_string
00293     4U,  // metadata_strings
00294     6U,  // run_parameters_record
00295     15U, // calibration_parameters_record
00296     4U,  // data_separator
00297     10U  // file_end_record
00298 };
00299 
00300 static DaqTraits::Definitions* m_definitions[] = {
00301     0, // file_start_record
00302     0, // file_name_string
00303     0, // metadata_strings
00304     0, // run_parameters_record
00305     0, // calibration_parameters_record
00306     0, // data_separator
00307     0  // file_end_record
00308 };
00309 
00310 static const char* m_detectors[] = {
00311     "TST-TST",
00312     "DBN-AD1",
00313     "DBN-AD2",
00314     "UNK",
00315     "UNK",
00316     "DBN-WPI",
00317     "DBN-WPO",
00318     "DBN-RPC",
00319     "UNK",
00320     "LAN-AD1",
00321     "LAN-AD2",
00322     "UNK",
00323     "UNK",
00324     "LAN-WPI",
00325     "LAN-WPO",
00326     "LAN-RPC",
00327     "UNK",
00328     "FAR-AD1",
00329     "FAR-AD2",
00330     "FAR-AD3",
00331     "FAR-AD4",
00332     "FAR-WPI",
00333     "FAR-WPO",
00334     "FAR-RPC"
00335 };
00336 
00337 const char* FileTraits_v0_7::key() {
00338     return "File Format 0.7";
00339 }
00340 
00341 FileTraits_v0_7::FileTraits_v0_7() {
00342 }
00343 
00344 FileTraits_v0_7::~FileTraits_v0_7() {
00345 }
00346 
00347 unsigned int FileTraits_v0_7::majorVersion() const {
00348     return 0U;
00349 }
00350 
00351 unsigned int FileTraits_v0_7::minorVersion() const {
00352     return 7U;
00353 }
00354 
00355 const string FileTraits_v0_7::versionString() const {
00356     return key();
00357 }
00358 
00359 unsigned int FileTraits_v0_7::markersEnd() const {
00360     return kEndFileMarker + 1;
00361 }
00362 
00363 const unsigned int* FileTraits_v0_7::recordSizes() const {
00364     return m_recordSizes;
00365 }
00366 
00367 unsigned int FileTraits_v0_7::detectorListEnd() const {
00368     return 24U;
00369 }
00370 
00371 const char** FileTraits_v0_7::detectorStrings() const {
00372     return m_detectors;
00373 }
00374 
00375 
00376 const unsigned int* FileTraits_v0_7::markers() const {
00377     return m_markers;
00378 }
00379 
00380 unsigned int FileTraits_v0_7::fieldsEnd() const {
00381     return kCalibrationLedPulseSeparation + 1;
00382 }
00383 
00384 const unsigned int* FileTraits_v0_7::indices() const {
00385     return m_indices;
00386 }
00387 
00388 const unsigned int* FileTraits_v0_7::shifts() const {
00389     return m_shifts;
00390 }
00391 
00392 const unsigned int* FileTraits_v0_7::masks() const {
00393     return m_masks;
00394 }
00395 
00396 const std::string* FileTraits_v0_7::descriptions() const {
00397     return m_description;
00398 }
00399 
00400 DaqTraits::Definitions* FileTraits_v0_7::definitions(unsigned int component) const {
00401     return m_definitions[component];
00402 }
00403 
00404 void FileTraits_v0_7::setDefinitions(DaqTraits::Definitions* definitions,
00405                                      unsigned int component) {
00406     m_definitions[component] = definitions;
00407 }
00408 
00409 const unsigned int* FileTraits_v0_7::componentFields(unsigned int component) const {
00410     return m_componentFields[component];
00411 }
00412 
00413 const unsigned int FileTraits_v0_7::componentFieldsEnd(unsigned int component) const {
00414     return m_componentFieldsEnd[component];
00415 }
| 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