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

In This Package:

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