File indexing completed on 2024-04-06 12:10:56
0001 #ifndef EventFilter_Phase2TrackerRawToDigi_Phase2TrackerPhase2TrackerFEDHeader_H
0002 #define EventFilter_Phase2TrackerRawToDigi_Phase2TrackerPhase2TrackerFEDHeader_H
0003
0004 #include "EventFilter/Phase2TrackerRawToDigi/interface/Phase2TrackerFEDDAQHeader.h"
0005 #include "EventFilter/Phase2TrackerRawToDigi/interface/Phase2TrackerFEDDAQTrailer.h"
0006 #include <cstdint>
0007 #include <vector>
0008
0009 namespace Phase2Tracker {
0010
0011
0012 class Phase2TrackerFEDHeader {
0013 public:
0014 Phase2TrackerFEDHeader() {}
0015
0016 explicit Phase2TrackerFEDHeader(const uint8_t* headerPointer);
0017
0018
0019 inline uint8_t getDataFormatVersion() const { return dataFormatVersion_; }
0020 inline READ_MODE getDebugMode() const { return debugMode_; }
0021
0022 inline uint8_t getEventType() const { return eventType_; }
0023 inline FEDReadoutMode getReadoutMode() const { return readoutMode_; }
0024 inline uint8_t getConditionData() const { return conditionData_; }
0025 inline uint8_t getDataType() const { return dataType_; }
0026
0027 inline uint64_t getGlibStatusCode() const { return glibStatusCode_; }
0028 inline uint16_t getNumberOfCBC() const { return numberOfCBC_; }
0029
0030
0031 const uint8_t* getPointerToData() const { return pointerToData_; }
0032
0033 std::vector<bool> frontendStatus() const;
0034
0035 inline uint8_t getTrackerHeaderSize() const { return trackerHeaderSize_; }
0036
0037
0038
0039 std::vector<uint8_t> CBCStatus() const;
0040
0041 private:
0042
0043
0044
0045 uint8_t dataFormatVersion() const;
0046
0047
0048 READ_MODE debugMode() const;
0049
0050
0051 uint8_t eventType() const;
0052
0053 FEDReadoutMode readoutMode() const;
0054 uint8_t conditionData() const;
0055 uint8_t dataType() const;
0056
0057 uint64_t glibStatusCode() const;
0058
0059 uint16_t numberOfCBC() const;
0060
0061 const uint8_t* pointerToData();
0062
0063 private:
0064 void init();
0065 const uint8_t* trackerHeader_;
0066 const uint8_t* pointerToData_;
0067 uint8_t trackerHeaderSize_;
0068 uint64_t header_first_word_;
0069 uint64_t header_second_word_;
0070 uint8_t dataFormatVersion_;
0071 READ_MODE debugMode_;
0072 uint8_t eventType_;
0073 FEDReadoutMode readoutMode_;
0074 uint8_t conditionData_;
0075 uint8_t dataType_;
0076 uint64_t glibStatusCode_;
0077 uint16_t numberOfCBC_;
0078
0079 };
0080 }
0081 #endif