Belle II Software  release-05-02-19
RawCOPPERFormat.h
1 //+
2 // File : RawCOPPERFormat.h
3 // Description : Module to handle raw data from COPPER
4 //
5 // Author : Satoru Yamada, IPNS, KEK
6 // Date : 2 - Aug - 2013
7 //-
8 #ifndef RAWCOPPERFORMAT_H
9 #define RAWCOPPERFORMAT_H
10 
11 // Includes
12 #include <stdio.h>
13 #include <string>
14 #include <vector>
15 #include <rawdata/RawCOPPERPackerInfo.h>
16 #include <rawdata/dataobjects/RawDataBlockFormat.h>
17 
18 /* #include <framework/datastore/DataStore.h> */
19 /* #include <TObject.h> */
20 
21 //#define USE_B2LFEE_FORMAT_BOTH_VER1_AND_2
22 
23 #define DETECTOR_MASK 0xFF000000 // tentative
24 #define COPPERID_MASK 0x00FFFFFF // tentative
25 #define SVD_ID 0x01000000 // tentative
26 #define CDC_ID 0x02000000 // tentative
27 #define TOP_ID 0x03000000 // tentative
28 #define ARICH_ID 0x04000000 // tentative
29 #define BECL_ID 0x05000000 // tentative
30 #define EECL_ID 0x06000000 // tentative
31 #define BKLM_ID 0x07000000 // tentative
32 #define EKLM_ID 0x08000000 // tentative
33 #define TRGDATA_ID 0x10000000 // tentative
34 #define CDCTRGDATA_ID 0x11000000 // tentative
35 #define TOPTRGDATA_ID 0x12000000 // tentative
36 #define ECLTRGDATA_ID 0x13000000 // tentative
37 #define KLMTRGDATA_ID 0x14000000 // tentative
38 #define GDLTRGDATA_ID 0x15000000 // tentative
39 
40 
41 namespace Belle2 {
52  // class RawCOPPERFormat : public TObject {
54  public:
55  /* //! Default constructor */
57 
59  //RawCOPPERFormat(int* bufin, int nwords);
61  virtual ~RawCOPPERFormat() {}
62 
63  //
64  // Functions for RawDataBlock
65  //
67  /* void SetBuffer(int* bufin, int nwords, int delete_flag, int num_events, int num_nodes); */
68 
69  /* //! Get total length of m_buffer */
70  /* virtual int TotalBufNwords(); */
71 
72  /* //! get nth buffer pointer */
73  /* virtual int* GetBuffer(int n); */
74 
75  /* //! get pointer to buffer(m_buffer) */
76  /* virtual int* GetWholeBuffer(); */
77 
78  /* //! get # of data blocks = (# of nodes)*(# of events) */
79  /* virtual int GetNumEntries() { return m_num_events * m_num_nodes; } */
80 
81  /* //! get # of data sources(e.g. # of COPPER boards) in m_buffer */
82  /* virtual int GetNumNodes() { return m_num_nodes; } */
83 
84  /* //! get # of events in m_buffer */
85  /* virtual int GetNumEvents() { return m_num_events; } */
86 
87  /* //! get size of a data block */
88  /* virtual int GetBlockNwords(int n); */
89 
90  /* //! print out data */
91  /* virtual void PrintData(int* buf, int nwords); */
92 
93  /* enum { */
94  /* POS_NWORDS = 0, */
95  /* POS_NODE_ID = 6 */
96  /* }; */
97 
98  /* enum { */
99  /* // Tentatively needed to distinguish new and old FTSW format, which will be changed in Nov. 2013 */
100  /* POS_FTSW_ID_OLD = 5, */
101  /* TEMP_POS_NWORDS_HEADER = 1, */
102  /* OLD_FTSW_NWORDS_HEADER = 6 */
103  /* }; */
104 
105  //
106  // Functions for RawCOPPER
107  //
108 
109  // POINTER TO "DETECTOR BUFFER"
110  //( after removing "B2link headers" from "FINESSE buffer". THIS IS THE RAW DATA FROM A DETECTOR
111 
113  virtual int GetDetectorNwords(int n, int finesse_num) = 0;
114 
116  virtual int Get1stDetectorNwords(int n) = 0;
117 
119  virtual int Get2ndDetectorNwords(int n) = 0;
120 
122  virtual int Get3rdDetectorNwords(int n) = 0;
123 
125  virtual int Get4thDetectorNwords(int n) = 0;
126 
128  virtual int* GetDetectorBuffer(int n, int finesse_num);
129 
131  virtual int* Get1stDetectorBuffer(int n) = 0;
132 
134  virtual int* Get2ndDetectorBuffer(int n) = 0;
135 
137  virtual int* Get3rdDetectorBuffer(int n) = 0;
138 
140  virtual int* Get4thDetectorBuffer(int n) = 0;
142 
143  /* //! get posistion of COPPER block in unit of word */
144  /* virtual int GetBufferPos(int n) = 0; */
145 
147  virtual int* GetRawHdrBufPtr(int n);
148 
150  virtual int* GetRawTrlBufPtr(int n) = 0;
151 
153  virtual int* GetFINESSEBuffer(int n, int finesse_num);
154 
156  virtual int* Get1stFINESSEBuffer(int n);
157 
159  virtual int* Get2ndFINESSEBuffer(int n);
160 
162  virtual int* Get3rdFINESSEBuffer(int n);
163 
165  virtual int* Get4thFINESSEBuffer(int n);
166 
167 
168 
169  //
170  // Get information from "RawCOPPERFormat header" attached by DAQ software
171  //
172 
174  virtual int GetExpNo(int n) = 0;
175 
176  virtual unsigned int GetExpRunSubrun(int n) = 0;
177 
178  virtual int GetRunNo(int n) = 0;
179 
180  virtual int GetSubRunNo(int n) = 0;
181 
182  virtual unsigned int GetEveNo(int n) = 0;
183 
184  virtual int GetDataType(int n) = 0;
185 
186  virtual int GetTruncMask(int n) = 0;
187 
189  virtual unsigned int GetErrorBitFlag(int n) = 0;
190 
192  virtual void AddErrorBitFlag(int n, unsigned int error_bit_flag) = 0;
193 
195  virtual int GetPacketCRCError(int n);
196 
198  virtual int GetEventCRCError(int n);
199 
201  virtual int GetEventCRC16Value(int n, int finesse_num);
202 
204  virtual unsigned int GetNodeID(int n) = 0;
205 
206  //
207  // Get information from 13words "COPPER header" attached by COPPER board
208  //
210  virtual unsigned int GetCOPPERCounter(int n) = 0;
211 
213  virtual int GetNumFINESSEBlock(int n) = 0;
214 
216  virtual int GetOffsetFINESSE(int n, int finesse);
217 
219  virtual int GetOffset1stFINESSE(int n) = 0;
220 
222  virtual int GetOffset2ndFINESSE(int n);
223 
225  virtual int GetOffset3rdFINESSE(int n);
226 
228  virtual int GetOffset4thFINESSE(int n);
229 
231  virtual int GetFINESSENwords(int n, int finesse) = 0;
232 
234  virtual int Get1stFINESSENwords(int n) = 0;
235 
237  virtual int Get2ndFINESSENwords(int n) = 0;
238 
240  virtual int Get3rdFINESSENwords(int n) = 0;
241 
243  virtual int Get4thFINESSENwords(int n) = 0;
244 
245  //
246  // Get information from "B2link(attached by FEE and HLSB) header"
247  //
249  // virtual int* GetFTSW2Words(int n) = 0;
250 
252  virtual int* GetExpRunSubrunBuf(int n) = 0;
253 
255  virtual unsigned int GetB2LFEE32bitEventNumber(int n) = 0;
256 
257  //
258  // read magic word to check data
259  //
261  virtual unsigned int GetMagicDriverHeader(int n) = 0;
262 
264  virtual unsigned int GetMagicFPGAHeader(int n) = 0;
265 
267  virtual unsigned int GetMagicFPGATrailer(int n) = 0;
268 
270  virtual unsigned int GetMagicDriverTrailer(int n) = 0;
271 
273  virtual unsigned int GetTrailerChksum(int n) = 0 ;
274 
276  virtual bool CheckCOPPERMagic(int n) = 0;
277 
278 #ifdef USE_B2LFEE_FORMAT_BOTH_VER1_AND_2
279  virtual void CheckB2LFEEHeaderVersion(int n) = 0;
281 #endif
282 
284  virtual unsigned int GetTTCtimeTRGType(int n) = 0;
285 
287  virtual unsigned int GetTTUtime(int n) = 0;
288 
290  virtual unsigned int FillTopBlockRawHeader(unsigned int m_node_id,
291  unsigned int prev_eve32, unsigned int prev_exprunsubrun_no, unsigned int* cur_exprunsubrun_no) = 0;
292 
294  virtual unsigned int GetDriverChkSum(int n) = 0;
295 
297  virtual unsigned int CalcDriverChkSum(int n) = 0;
298 
299 
301  virtual void CheckData(int n,
302  unsigned int prev_evenum, unsigned int* cur_evenum,
303  unsigned int prev_copper_ctr, unsigned int* cur_copper_ctr,
304  unsigned int prev_exprunsubrun_no, unsigned int* cur_exprunsubrun_no) = 0;
305 
307  virtual void CheckUtimeCtimeTRGType(int n) = 0;
308 
310  virtual int GetTTCtime(int n) = 0;
311 
313  virtual int GetTRGType(int n) = 0;
314 
316  virtual void GetTTTimeVal(int n, struct timeval* tv) = 0;
317 
319  virtual unsigned int CalcXORChecksum(int* buf, int nwords);
320 
322  virtual int* PackDetectorBuf(int* packed_buf_nwords,
323  int* detector_buf_1st, int nwords_1st,
324  int* detector_buf_2nd, int nwords_2nd,
325  int* detector_buf_3rd, int nwords_3rd,
326  int* detector_buf_4th, int nwords_4th,
327  RawCOPPERPackerInfo rawcprpacker_info) = 0;
328 
330  virtual int* PackDetectorBuf(int* packed_buf_nwords,
331  int* const(&detector_buf_ch)[MAX_PCIE40_CH],
332  int const(&nwords_ch)[MAX_PCIE40_CH],
333  RawCOPPERPackerInfo rawcpr_info);
334 
336  virtual int GetMaxNumOfCh(int n) = 0;
337 
339  virtual void CompareHeaderValue(int n, const unsigned int (&input_val)[MAX_PCIE40_CH] ,
340  std::vector<std::vector< unsigned int> >& result);
341 
343  virtual void GetNodeName(int n, char* node_name, int bufsize);
344 
346  virtual void GetNodeName(char* node_name, unsigned int node_id, int bufsize);
347 
348 
349  protected :
350 
351  /* /// number of words of buffer */
352  /* int m_nwords; */
353 
354  /* /// number of nodes in this object */
355  /* int m_num_nodes; */
356 
357  /* /// number of events in this object */
358  /* int m_num_events; */
359 
360  /* /// Buffer to access data */
361  /* int* m_buffer; //! not recorded */
362 
364  // ClassDef(RawCOPPERFormat, 3);
365 
366  };
367 
368 
369 
371  {
372  int pos_nwords = GetBufferPos(n);
373  return &(m_buffer[ pos_nwords ]);
374  }
375 
376 
378  {
380  }
381 
383  {
385  }
386 
388  {
390  }
391 
392 
393 
395  {
396  int pos_nwords = GetOffset1stFINESSE(n);
397  if (pos_nwords >= m_nwords) {
398  printf("[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n", m_nwords, pos_nwords);
399  for (int i = 0; i < m_nwords; i++) {
400  printf("%.8x ", m_buffer[ i ]);
401  if ((i % 10) == 9) printf("\n");
402  }
403  B2FATAL("Data size is smaller than data position info. Exiting...");
404  }
405  return &(m_buffer[ pos_nwords]);
406  }
407 
409  {
410  int pos_nwords = GetOffset2ndFINESSE(n);
411  if (pos_nwords >= m_nwords) {
412  printf("[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n", m_nwords, pos_nwords);
413  for (int i = 0; i < m_nwords; i++) {
414  printf("%.8x ", m_buffer[ i ]);
415  if ((i % 10) == 9) printf("\n");
416  }
417  B2FATAL("Data size is smaller than data position info. Exiting...");
418  }
419  return &(m_buffer[ pos_nwords]);
420  }
421 
423  {
424  int pos_nwords = GetOffset3rdFINESSE(n);
425  if (pos_nwords >= m_nwords) {
426  printf("[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n", m_nwords, pos_nwords);
427  for (int i = 0; i < m_nwords; i++) {
428  printf("%.8x ", m_buffer[ i ]);
429  if ((i % 10) == 9) printf("\n");
430  }
431  B2FATAL("Data size is smaller than data position info. Exiting...");
432  }
433  return &(m_buffer[ pos_nwords]);
434  }
435 
437  {
438  int pos_nwords = GetOffset4thFINESSE(n);
439  if (pos_nwords >= m_nwords) {
440  printf("[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n", m_nwords, pos_nwords);
441  for (int i = 0; i < m_nwords; i++) {
442  printf("%.8x ", m_buffer[ i ]);
443  if ((i % 10) == 9) printf("\n");
444  }
445  B2FATAL("Data size is smaller than data position info. Exiting...");
446  }
447  return &(m_buffer[ pos_nwords]);
448  }
449 
450 
452 }
453 
454 #endif
Belle2::RawCOPPERFormat::Get1stFINESSENwords
virtual int Get1stFINESSENwords(int n)=0
get data size of FINESSE slot A buffer
Belle2::RawCOPPERFormat::GetSubRunNo
virtual int GetSubRunNo(int n)=0
get run # (14bit)
Belle2::RawCOPPERPackerInfo
struct to contain header information used by RawCOPPERFormat::Packer()
Definition: RawCOPPERPackerInfo.h:12
Belle2::RawCOPPERFormat::GetOffset3rdFINESSE
virtual int GetOffset3rdFINESSE(int n)
get # of offset words for FINESSE slot C buffer position
Definition: RawCOPPERFormat.h:382
Belle2::RawCOPPERFormat::Get3rdDetectorBuffer
virtual int * Get3rdDetectorBuffer(int n)=0
get Detector Buffer of slot C
Belle2::RawCOPPERFormat::FillTopBlockRawHeader
virtual unsigned int FillTopBlockRawHeader(unsigned int m_node_id, unsigned int prev_eve32, unsigned int prev_exprunsubrun_no, unsigned int *cur_exprunsubrun_no)=0
should be called by DeSerializerCOPPER.cc and fill contents in RawHeader
Belle2::RawCOPPERFormat::GetDetectorNwords
virtual int GetDetectorNwords(int n, int finesse_num)=0
set buffer ( delete_flag : m_buffer is freeed( = 0 )/ not freeed( = 1 ) in Destructer )
Belle2::RawCOPPERFormat::CheckUtimeCtimeTRGType
virtual void CheckUtimeCtimeTRGType(int n)=0
check data contents
Belle2::RawDataBlockFormat::m_nwords
int m_nwords
number of words of buffer
Definition: RawDataBlockFormat.h:89
Belle2::RawCOPPERFormat::GetNodeID
virtual unsigned int GetNodeID(int n)=0
get node-ID from data
Belle2::RawCOPPERFormat::GetEventCRCError
virtual int GetEventCRCError(int n)
check CRC event Error
Definition: RawCOPPERFormat.cc:134
Belle2::RawDataBlockFormat::m_buffer
int * m_buffer
Buffer.
Definition: RawDataBlockFormat.h:98
Belle2::RawDataBlockFormat::GetBufferPos
virtual int GetBufferPos(int n)
get position of data block in word
Definition: RawDataBlockFormat.cc:30
Belle2::RawCOPPERFormat::GetExpRunSubrunBuf
virtual int * GetExpRunSubrunBuf(int n)=0
get b2l block from "FEE b2link header"
Belle2::RawCOPPERFormat::GetErrorBitFlag
virtual unsigned int GetErrorBitFlag(int n)=0
get contents of header
Belle2::RawCOPPERFormat::GetTTTimeVal
virtual void GetTTTimeVal(int n, struct timeval *tv)=0
Get timeval.
Belle2::RawCOPPERFormat::GetFINESSEBuffer
virtual int * GetFINESSEBuffer(int n, int finesse_num)
get FINESSE buffer pointer
Definition: RawCOPPERFormat.cc:65
Belle2::RawCOPPERFormat::GetEventCRC16Value
virtual int GetEventCRC16Value(int n, int finesse_num)
Get Event CRC16 value.
Definition: RawCOPPERFormat.cc:145
Belle2::RawCOPPERFormat::GetTRGType
virtual int GetTRGType(int n)=0
Get trgtype.
Belle2::RawCOPPERFormat::Get2ndDetectorNwords
virtual int Get2ndDetectorNwords(int n)=0
get Detector buffer length of slot B
Belle2::RawCOPPERFormat::GetB2LFEE32bitEventNumber
virtual unsigned int GetB2LFEE32bitEventNumber(int n)=0
get b2l block from "FEE b2link header"
Belle2::RawCOPPERFormat::GetMagicDriverTrailer
virtual unsigned int GetMagicDriverTrailer(int n)=0
get magic word of COPPER driver trailer
Belle2::RawCOPPERFormat::Get4thFINESSENwords
virtual int Get4thFINESSENwords(int n)=0
get data size of FINESSE slot D buffer
Belle2::RawCOPPERFormat::GetEveNo
virtual unsigned int GetEveNo(int n)=0
get subrun #(8bit)
Belle2::RawCOPPERFormat::GetOffset2ndFINESSE
virtual int GetOffset2ndFINESSE(int n)
get # of offset words for FINESSE slot B buffer position
Definition: RawCOPPERFormat.h:377
Belle2::RawCOPPERFormat::GetDriverChkSum
virtual unsigned int GetDriverChkSum(int n)=0
read COPPER driver's checksum value
Belle2::RawCOPPERFormat::GetTTCtimeTRGType
virtual unsigned int GetTTCtimeTRGType(int n)=0
Check if COPPER Magic words are correct.
Belle2::RawCOPPERFormat::CheckCOPPERMagic
virtual bool CheckCOPPERMagic(int n)=0
Check if COPPER Magic words are correct.
Belle2::RawCOPPERFormat::Get4thFINESSEBuffer
virtual int * Get4thFINESSEBuffer(int n)
get FINESSE buffer pointer for slot D
Definition: RawCOPPERFormat.h:436
Belle2::RawCOPPERFormat::Get2ndDetectorBuffer
virtual int * Get2ndDetectorBuffer(int n)=0
get Detector Buffer of slot B
Belle2::RawCOPPERFormat::AddErrorBitFlag
virtual void AddErrorBitFlag(int n, unsigned int error_bit_flag)=0
Add Detected Error bitflag.
Belle2::RawDataBlockFormat
The RawDataBlockFormat class Format information for rawdata handling.
Definition: RawDataBlockFormat.h:25
Belle2::RawCOPPERFormat::CalcXORChecksum
virtual unsigned int CalcXORChecksum(int *buf, int nwords)
calc XOR checksum
Definition: RawCOPPERFormat.cc:24
Belle2::RawCOPPERFormat::PackDetectorBuf
virtual int * PackDetectorBuf(int *packed_buf_nwords, int *detector_buf_1st, int nwords_1st, int *detector_buf_2nd, int nwords_2nd, int *detector_buf_3rd, int nwords_3rd, int *detector_buf_4th, int nwords_4th, RawCOPPERPackerInfo rawcprpacker_info)=0
Pack data (format ver. = -1 -> Select the latest format version)
Belle2::RawCOPPERFormat::GetNodeName
virtual void GetNodeName(int n, char *node_name, int bufsize)
Get hostname of a node from the RawCOPPER header.
Definition: RawCOPPERFormat.cc:182
Belle2::RawCOPPERFormat::Get4thDetectorBuffer
virtual int * Get4thDetectorBuffer(int n)=0
get Detector Buffer of slot D
Belle2::RawCOPPERFormat::GetCOPPERCounter
virtual unsigned int GetCOPPERCounter(int n)=0
get COPPER counter(not event number)
Belle2::RawCOPPERFormat::Get1stFINESSEBuffer
virtual int * Get1stFINESSEBuffer(int n)
get FINESSE buffer pointer for slot A
Definition: RawCOPPERFormat.h:394
Belle2::RawCOPPERFormat::Get2ndFINESSENwords
virtual int Get2ndFINESSENwords(int n)=0
get data size of FINESSE slot B buffer
Belle2::RawCOPPERFormat::Get2ndFINESSEBuffer
virtual int * Get2ndFINESSEBuffer(int n)
get FINESSE buffer pointer for slot B
Definition: RawCOPPERFormat.h:408
Belle2::RawCOPPERFormat::GetTrailerChksum
virtual unsigned int GetTrailerChksum(int n)=0
Get checksum in RawTrailer.
Belle2::RawCOPPERFormat::GetOffset4thFINESSE
virtual int GetOffset4thFINESSE(int n)
get # of offset words for FINESSE slot D buffer position
Definition: RawCOPPERFormat.h:387
Belle2::RawCOPPERFormat::Get3rdFINESSEBuffer
virtual int * Get3rdFINESSEBuffer(int n)
get FINESSE buffer pointer for slot C
Definition: RawCOPPERFormat.h:422
Belle2::RawCOPPERFormat::GetDetectorBuffer
virtual int * GetDetectorBuffer(int n, int finesse_num)
get Detector buffer
Definition: RawCOPPERFormat.cc:94
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::RawCOPPERFormat::GetExpRunSubrun
virtual unsigned int GetExpRunSubrun(int n)=0
get Experimental # from header
Belle2::RawCOPPERFormat::GetFINESSENwords
virtual int GetFINESSENwords(int n, int finesse)=0
get data size of FINESSE buffer
Belle2::RawCOPPERFormat::GetMagicFPGATrailer
virtual unsigned int GetMagicFPGATrailer(int n)=0
get magic word of COPPER FPGA trailer
Belle2::RawCOPPERFormat::Get3rdDetectorNwords
virtual int Get3rdDetectorNwords(int n)=0
get Detector buffer length of slot C
Belle2::RawCOPPERFormat::Get1stDetectorNwords
virtual int Get1stDetectorNwords(int n)=0
get Detector buffer length of slot A
Belle2::RawCOPPERFormat::GetRawTrlBufPtr
virtual int * GetRawTrlBufPtr(int n)=0
get buffer pointer of rawcopper trailer
Belle2::RawCOPPERFormat::GetRunNo
virtual int GetRunNo(int n)=0
Exp# (10bit) run# (14bit) restart # (8bit)
Belle2::RawCOPPERFormat::GetOffsetFINESSE
virtual int GetOffsetFINESSE(int n, int finesse)
get # of offset words
Definition: RawCOPPERFormat.cc:36
Belle2::RawCOPPERFormat::Get3rdFINESSENwords
virtual int Get3rdFINESSENwords(int n)=0
get data size of FINESSE slot C buffer
Belle2::RawCOPPERFormat::Get4thDetectorNwords
virtual int Get4thDetectorNwords(int n)=0
get Detector buffer length of slot D
Belle2::RawCOPPERFormat::GetOffset1stFINESSE
virtual int GetOffset1stFINESSE(int n)=0
get # of offset words for FINESSE slot A buffer position
Belle2::RawCOPPERFormat::GetRawHdrBufPtr
virtual int * GetRawHdrBufPtr(int n)
get buffer pointer of rawcopper header(Currently same as GetBufferPos)
Definition: RawCOPPERFormat.h:370
Belle2::RawCOPPERFormat::GetTTUtime
virtual unsigned int GetTTUtime(int n)=0
Check if COPPER Magic words are correct.
Belle2::RawCOPPERFormat::CompareHeaderValue
virtual void CompareHeaderValue(int n, const unsigned int(&input_val)[MAX_PCIE40_CH], std::vector< std::vector< unsigned int > > &result)
Compare value from different channels and make a statistics table.
Definition: RawCOPPERFormat.cc:170
Belle2::RawCOPPERFormat::GetNumFINESSEBlock
virtual int GetNumFINESSEBlock(int n)=0
get # of FINNESEs which contains data
Belle2::RawCOPPERFormat::Get1stDetectorBuffer
virtual int * Get1stDetectorBuffer(int n)=0
get Detector buffer of slot A
Belle2::RawCOPPERFormat::GetTruncMask
virtual int GetTruncMask(int n)=0
get contents of header
Belle2::RawCOPPERFormat::GetExpNo
virtual int GetExpNo(int n)=0
get Experimental # from header
Belle2::RawCOPPERFormat::GetDataType
virtual int GetDataType(int n)=0
get contents of header
Belle2::RawCOPPERFormat::GetPacketCRCError
virtual int GetPacketCRCError(int n)
check CRC packet Error
Definition: RawCOPPERFormat.cc:122
Belle2::RawCOPPERFormat::CalcDriverChkSum
virtual unsigned int CalcDriverChkSum(int n)=0
calc COPPER driver's checksum value
Belle2::RawCOPPERFormat
The Raw COPPER class This class stores data received by COPPER via belle2linkt Data from all detector...
Definition: RawCOPPERFormat.h:53
Belle2::RawCOPPERFormat::CheckData
virtual void CheckData(int n, unsigned int prev_evenum, unsigned int *cur_evenum, unsigned int prev_copper_ctr, unsigned int *cur_copper_ctr, unsigned int prev_exprunsubrun_no, unsigned int *cur_exprunsubrun_no)=0
check data contents
Belle2::RawCOPPERFormat::GetMagicFPGAHeader
virtual unsigned int GetMagicFPGAHeader(int n)=0
get magic word of COPPER FPGA header
Belle2::RawCOPPERFormat::~RawCOPPERFormat
virtual ~RawCOPPERFormat()
Constructor using existing pointer to raw data buffer.
Definition: RawCOPPERFormat.h:61
Belle2::RawCOPPERFormat::GetMaxNumOfCh
virtual int GetMaxNumOfCh(int n)=0
Get the max number of channels in a readout board.
Belle2::RawCOPPERFormat::GetTTCtime
virtual int GetTTCtime(int n)=0
Get ctime.
Belle2::RawCOPPERFormat::GetMagicDriverHeader
virtual unsigned int GetMagicDriverHeader(int n)=0
get magic word of COPPER driver header