mu2e_artdaq_core  v1_02_16
 All Classes Functions
DataBlock.hh
1 #ifndef mu2e_artdaq_core_Overlays_DataBlock_hh
2 #define mu2e_artdaq_core_Overlays_DataBlock_hh
3 
5 // DataBlock
6 //
7 // Class representing a mu2e "DataBlock", or DataHeaderPacket and its
8 // associated DataPackets. Each Fragment is made up of all DataBlocks
9 // from the ROCs connected to one DTC for one timestamp.
10 //
12 
13 #include "mu2e-artdaq-core/Overlays/DTCFragment.hh"
14 
15 #include <cstddef>
16 #include <cstdint>
17 
18 namespace mu2e {
19 class DataBlock
20 {
21 public:
22  DataBlock();
23  DataBlock(packet_t* ptr);
24  virtual ~DataBlock() {}
25 
26  packet_t* headerPacket() { return header_; }
27  packet_t* dataBegin() { return data_; }
28  packet_t* dataEnd() { return data_ + getPacketCount(); }
29  packet_t* dataPacket(uint16_t index);
30 
31  uint16_t getPacketCount();
32  uint8_t getROCID();
33 
34 private:
35  packet_t* header_;
36  packet_t* data_;
37 
38 }; // class DataBlock
39 
40 } // namespace mu2e
41 
42 #endif