PPM-DU analysis  2.3
conversion and analysis of the PPM-DU data
 All Classes Files Functions Variables Pages
/home/alex/Work/Research/Km3NeT/PPM-DU/ppm-du-v2.3/rawReader.h
Go to the documentation of this file.
1 #ifndef _rawReader_h_
2 #define _rawReader_h_
3 
4 #include "utl/BinIO.hpp"
5 #include <boost/cstdint.hpp>
6 #include <iostream>
7 #include <memory>
8 
9 #include "dom.h"
10 
54 typedef struct {
55  long long int timeStamp;
56  int firstBit;
57  int widthPat;
58 } MyEvent;
59 
60 typedef struct {
61  uint32_t runNumber;
62  uint32_t domId;
63  uint32_t sliceIndex;
64  uint64_t sliceTime;
65  uint32_t sliceStatus;
66 } sliceHead;
67 
68 class
69 hit {
70  public:
71  static const size_t SIZE_BYTES = 6u;
72 
73  public:
74  hit(uint8_t* data) : data(data) {}
75  uint16_t Channel();
76  uint16_t Type();
77  uint32_t TimeStamp();
78  uint16_t Pattern();
79  void HexDump();
80  void Dump();
81  uint8_t* data;
82 };
83 
84 class
85 frame {
86  public:
87  static const size_t PREAMBLE_SIZE_BYTES = 32u;
88  frame() : rawPreamble(0), rawData(0) {}
89  ~frame() { if (rawPreamble != 0) delete [] rawPreamble; if (rawData != 0) delete [] rawData; }
90  frame(std::istream& input) : rawPreamble(0), rawData(0) { Read(input); }
91  bool Read(std::istream& input);
92  uint32_t FrameSize() { return GetNumber<uint32_t>( 0u); }
93  uint16_t ItemType() { return GetNumber<uint16_t>( 4u); }
94  uint16_t FrameTarget() { return GetNumber<uint32_t>( 6u); }
95  uint64_t FrameTime() { return GetNumber<uint64_t>( 8u); }
96  uint32_t FrameIndex() { return GetNumber<uint32_t>(16u); }
97  uint8_t Status();
98  uint32_t NbItems();
99  uint16_t DomId() { return GetNumber<uint16_t>(24u); }
100  uint16_t StreamId() { return GetNumber<uint16_t>(26u); }
101  uint32_t RunNumber() { return GetNumber<uint32_t>(28u); }
102  hit CurHit(size_t iHit);
103  void HexDumpPreamble();
104  void DumpPreamble();
105  void HexDumpHits();
106  void DumpHits();
107  void HexDumpTail();
108  void HexDumpAll() { HexDumpPreamble(); HexDumpHits(); HexDumpTail(); }
109  void DumpAll() { DumpPreamble(); DumpHits(); HexDumpTail(); }
110  size_t DataSize_bytes() { return FrameSize() * 4u - PREAMBLE_SIZE_BYTES; }
111 
112  private:
113  template < typename T >
114  T GetNumber(size_t iFirstByte);
115 
116  uint8_t* rawPreamble;
117  uint8_t* rawData;
118 };
119 
120 
121 int GetFirstBit(size_t pattern, int firstBit);
122 int GetLastBit(size_t pattern, int firstBit);
123 void WriteSlice(dom& curDom);
124 long long int FillRaw(std::ifstream& str, std::vector<dom>& vSlice, long long int bitPosition, bool toWrite);
125 long long int GetFileLength(std::ifstream& str);
129 bool IsNoisySlice(const int signalNb, const double limitNb);
130 
131 template < typename T >
132 T frame::GetNumber(size_t iFirstByte) {
133  T n = reinterpret_cast<T*>(rawPreamble + iFirstByte)[0];
134  utl::BinIO::swap(n);
135  return n;
136 }
137 
138 #endif
uint16_t StreamId()
Definition: rawReader.h:100
int GetFirstBit(size_t pattern, int firstBit)
Definition: rawReader.cc:303
organisation of the data - dom level
Definition: dom.h:35
frame(std::istream &input)
Definition: rawReader.h:90
long long int timeStamp
Definition: rawReader.h:55
uint16_t FrameTarget()
Definition: rawReader.h:94
size_t DataSize_bytes()
Definition: rawReader.h:110
uint32_t RunNumber()
Definition: rawReader.h:101
uint8_t * data
Definition: rawReader.h:81
long long int FillRaw(std::ifstream &str, std::vector< dom > &vSlice, long long int bitPosition, bool toWrite)
Definition: rawReader.cc:323
used to read raw data
Definition: rawReader.h:68
uint32_t FrameSize()
Definition: rawReader.h:92
uint32_t domId
Definition: rawReader.h:62
uint32_t sliceIndex
Definition: rawReader.h:63
uint64_t sliceTime
Definition: rawReader.h:64
uint16_t DomId()
Definition: rawReader.h:99
used to read raw data
Definition: rawReader.h:84
long long int GetFileLength(std::ifstream &str)
Definition: rawReader.cc:406
~frame()
Definition: rawReader.h:89
void DumpAll()
Definition: rawReader.h:109
uint32_t sliceStatus
Definition: rawReader.h:65
bool IsNoisySlice(const int signalNb, const double limitNb)
Definition: rawReader.cc:414
void HexDumpAll()
Definition: rawReader.h:108
int firstBit
Definition: rawReader.h:56
uint16_t ItemType()
Definition: rawReader.h:93
uint32_t runNumber
Definition: rawReader.h:61
frame()
Definition: rawReader.h:88
int GetLastBit(size_t pattern, int firstBit)
Definition: rawReader.cc:313
uint64_t FrameTime()
Definition: rawReader.h:95
int widthPat
Definition: rawReader.h:57
hit(uint8_t *data)
Definition: rawReader.h:74
void WriteSlice(dom &curDom)
Definition: rawReader.cc:189
uint32_t FrameIndex()
Definition: rawReader.h:96