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

In This Package:

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