Belle II Software  release-06-01-15
RawCOPPER.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #ifndef RAWCOPPER_H
10 #define RAWCOPPER_H
11 
12 // Includes
13 #include <stdio.h>
14 
15 #include <rawdata/dataobjects/RawDataBlock.h>
16 #include <rawdata/dataobjects/RawDataBlockFormat.h>
17 #include <rawdata/dataobjects/RawCOPPERFormat.h>
18 #include <rawdata/dataobjects/RawCOPPERFormat_latest.h>
19 #include <rawdata/dataobjects/RawCOPPERFormat_v0.h>
20 #include <rawdata/dataobjects/RawCOPPERFormat_v1.h>
21 #include <rawdata/dataobjects/RawCOPPERFormat_v2.h>
22 #include <rawdata/dataobjects/PreRawCOPPERFormat_v1.h>
23 #include <rawdata/dataobjects/PreRawCOPPERFormat_v2.h>
24 #include <rawdata/dataobjects/PreRawCOPPERFormat_latest.h>
25 #include <rawdata/RawCOPPERPackerInfo.h>
26 
27 //#define USE_B2LFEE_FORMAT_BOTH_VER1_AND_2
28 
29 
30 // Divide ECL and KLM to barrel and endcap categories from Itoh-san's suggestion
31 // Updated on May 9, 2014
32 
34 //
35 // The latest DAQformat version number
36 #define LATEST_POSTREDUCTION_FORMAT_VER 4 // Since Aug. 18, 2020
37 //
39 
40 
41 namespace Belle2 {
52  class RawCOPPER : public RawDataBlock {
53  public:
55  RawCOPPER();
56 
58  //RawCOPPER(int* bufin, int nwords);
60  virtual ~RawCOPPER();
61 
62  //
63  // Get position of or pointer to data
64  //
65 
67  /* cppcheck-suppress missingOverride */
68  void SetBuffer(int* bufin, int nwords, int delete_flag, int num_events, int num_nodes) OVERRIDE_CPP17;
69 
71  // POINTER TO "DETECTOR BUFFER"
72  //( after removing "B2link headers" from "FINESSE buffer". THIS IS THE RAW DATA FROM A DETECTOR
75  int GetDetectorNwords(int n, int finesse_num);
76 
78  int Get1stDetectorNwords(int n);
79 
81  int Get2ndDetectorNwords(int n);
82 
84  int Get3rdDetectorNwords(int n);
85 
87  int Get4thDetectorNwords(int n);
88 
90  int* GetDetectorBuffer(int n, int finesse_num);
91 
93  int* Get1stDetectorBuffer(int n);
94 
96  int* Get2ndDetectorBuffer(int n);
97 
99  int* Get3rdDetectorBuffer(int n);
100 
102  int* Get4thDetectorBuffer(int n);
104 
106  /* cppcheck-suppress missingOverride */
107  virtual int GetBufferPos(int n) OVERRIDE_CPP17;
108 
110  virtual int* GetRawHdrBufPtr(int n);
111 
113  virtual int* GetRawTrlBufPtr(int n);
114 
116  int* GetFINESSEBuffer(int n, int finesse_num);
117 
119  int* Get1stFINESSEBuffer(int n);
120 
122  int* Get2ndFINESSEBuffer(int n);
123 
125  int* Get3rdFINESSEBuffer(int n);
126 
128  int* Get4thFINESSEBuffer(int n);
129 
130 
131  //
132  // Get information from "RawCOPPER header" attached by DAQ software
133  //
134 
136  int GetExpNo(int n);
137 
138  unsigned int GetExpRunSubrun(int n);
139 
140  int GetRunNo(int n);
141 
142  int GetSubRunNo(int n);
143 
144  unsigned int GetEveNo(int n);
145 
146  int GetDataType(int n);
147 
148  int GetTruncMask(int n);
149 
151  unsigned int GetErrorBitFlag(int n);
152 
154  void AddErrorBitFlag(int n, unsigned int error_bit_flag);
155 
156 
158  int GetPacketCRCError(int n);
159 
161  int GetEventCRCError(int n);
162 
164  int GetEventCRC16Value(int n, int finesse_num);
165 
167  unsigned int GetNodeID(int n);
168 
169  //
170  // Get information from 13words "COPPER header" attached by COPPER board
171  //
173  virtual unsigned int GetCOPPERCounter(int n);
174 
176  virtual int GetNumFINESSEBlock(int n);
177 
179  int GetOffsetFINESSE(int n, int finesse);
180 
182  int GetOffset1stFINESSE(int n);
183 
185  int GetOffset2ndFINESSE(int n);
186 
188  int GetOffset3rdFINESSE(int n);
189 
191  int GetOffset4thFINESSE(int n);
192 
194  int GetFINESSENwords(int n, int finesse);
195 
197  int Get1stFINESSENwords(int n);
198 
200  int Get2ndFINESSENwords(int n);
201 
203  int Get3rdFINESSENwords(int n);
204 
206  int Get4thFINESSENwords(int n);
207 
208  //
209  // Get information from "B2link(attached by FEE and HLSB) header"
210  //
212  // virtual int* GetFTSW2Words(int n);
213 
215  virtual int* GetExpRunSubrunBuf(int n);
216 
218  virtual unsigned int GetB2LFEE32bitEventNumber(int n);
219 
220  //
221  // read magic word to check data
222  //
224  unsigned int GetMagicDriverHeader(int n);
225 
227  unsigned int GetMagicFPGAHeader(int n);
228 
230  unsigned int GetMagicFPGATrailer(int n);
231 
233  unsigned int GetMagicDriverTrailer(int n);
234 
236  unsigned int GetTrailerChksum(int n);
237 
239  bool CheckCOPPERMagic(int n);
240 
241 #ifdef USE_B2LFEE_FORMAT_BOTH_VER1_AND_2
243  void CheckB2LFEEHeaderVersion(int n);
244 #endif
245 
247  unsigned int GetTTCtimeTRGType(int n);
248 
250  unsigned int GetTTUtime(int n);
251 
253  unsigned int FillTopBlockRawHeader(unsigned int m_node_id,
254  unsigned int prev_eve32, unsigned int prev_exprunsubrun_no, unsigned int* cur_exprunsubrun_no);
255 
257  unsigned int GetDriverChkSum(int n);
258 
260  unsigned int CalcDriverChkSum(int n);
261 
263  unsigned int CalcXORChecksum(int* buf, int nwords);
264 
266  void CheckData(int n,
267  unsigned int prev_evenum, unsigned int* cur_evenum,
268  unsigned int prev_copper_ctr, unsigned int* cur_copper_ctr,
269  unsigned int prev_exprunsubrun_no, unsigned int* cur_exprunsubrun_no);
270 
272  void CheckUtimeCtimeTRGType(int n);
273 
275  int GetTTCtime(int n);
276 
278  int GetTRGType(int n);
279 
281  void GetTTTimeVal(int n, struct timeval* tv);
282 
284  void SetVersion();
285 
287  void SetVersion(std::string class_name);
288 
290  void CheckVersionSetBuffer();
291 
293  void ShowBuffer();
294 
297  void PackDetectorBuf(int* detector_buf_1st, int nwords_1st,
298  int* detector_buf_2nd, int nwords_2nd,
299  int* detector_buf_3rd, int nwords_3rd,
300  int* detector_buf_4th, int nwords_4th,
301  RawCOPPERPackerInfo rawcprpacker_info);
302 
304  void PackDetectorBuf4DummyData(int* detector_buf_1st, int nwords_1st,
305  int* detector_buf_2nd, int nwords_2nd,
306  int* detector_buf_3rd, int nwords_3rd,
307  int* detector_buf_4th, int nwords_4th,
308  RawCOPPERPackerInfo rawcprpacker_info);
309 
311  void PackDetectorBuf(int* const(&detector_buf_ch)[MAX_PCIE40_CH],
312  int const(&nwords_ch)[MAX_PCIE40_CH],
313  RawCOPPERPackerInfo rawcprpacker_info);
314 
316  int GetMaxNumOfCh(int n);
317 
319  void CompareHeaderValue(int n, const unsigned int (&input_val)[MAX_PCIE40_CH] , std::vector<std::vector< unsigned int>>& result);
320 
322  std::string getInfoHTML() const;
323 
324  enum {
325  POS_FORMAT_VERSION = 1,
326  FORMAT_MASK = 0x0000FF00
327  };
328 
331 
333  int m_version;
334 
335  protected :
340 
341  };
342 
343 
344  inline int* RawCOPPER::GetRawHdrBufPtr(int n)
345  {
347  return m_access->GetRawHdrBufPtr(n);
348  }
349 
350  inline int* RawCOPPER::GetRawTrlBufPtr(int n)
351  {
353  return m_access->GetRawTrlBufPtr(n);
354  }
355 
356  inline unsigned int RawCOPPER::GetDriverChkSum(int n)
357  {
359  return m_access->GetDriverChkSum(n);
360  }
361 
362  inline int RawCOPPER::GetExpNo(int n)
363  {
365  return m_access->GetExpNo(n);
366  }
367 
368  inline unsigned int RawCOPPER::GetExpRunSubrun(int n)
369  {
371  return m_access->GetExpRunSubrun(n);
372  }
373 
374  inline int RawCOPPER::GetRunNo(int n)
375  {
377  return m_access->GetRunNo(n);
378  }
379 
380 
381  inline int RawCOPPER::GetSubRunNo(int n)
382  {
384  return m_access->GetSubRunNo(n);
385  }
386 
387  inline unsigned int RawCOPPER::GetEveNo(int n)
388  {
390  return m_access->GetEveNo(n);
391  }
392 
393 
394  inline unsigned int RawCOPPER::GetNodeID(int n)
395  {
397  return m_access->GetNodeID(n);
398  }
399 
400 
401  inline int RawCOPPER::GetDataType(int n)
402  {
404  return m_access->GetDataType(n);
405  }
406 
407  inline int RawCOPPER::GetTruncMask(int n)
408  {
410  return m_access->GetTruncMask(n);
411  }
412 
413  inline unsigned int RawCOPPER::GetErrorBitFlag(int n)
414  {
416  return m_access->GetErrorBitFlag(n);
417  }
418 
419  inline void RawCOPPER::AddErrorBitFlag(int n, unsigned int error_bit_flag)
420  {
422  return m_access->AddErrorBitFlag(n, error_bit_flag);
423  }
424 
426  {
428  return m_access->GetPacketCRCError(n);
429  }
430 
431  inline int RawCOPPER::GetEventCRCError(int n)
432  {
434  return m_access->GetEventCRCError(n);
435  }
436 
437  inline int RawCOPPER::GetEventCRC16Value(int n, int finesse_num)
438  {
440  return m_access->GetEventCRC16Value(n, finesse_num);
441  }
442 
443  inline unsigned int RawCOPPER::GetCOPPERCounter(int n)
444  {
446  return m_access->GetCOPPERCounter(n);
447  }
448 
450  {
452  return m_access->Get1stDetectorNwords(n);
453  }
454 
456  {
458  return m_access->Get2ndDetectorNwords(n);
459  }
460 
462  {
464  return m_access->Get3rdDetectorNwords(n);
465  }
466 
468  {
470  return m_access->Get4thDetectorNwords(n);
471  }
472 
474  {
476  return m_access->Get1stFINESSENwords(n);
477  }
478 
480  {
482  return m_access->Get2ndFINESSENwords(n);
483  }
484 
486  {
488  return m_access->Get3rdFINESSENwords(n);
489  }
490 
492  {
494  return m_access->Get4thFINESSENwords(n);
495  }
496 
498  {
500  return m_access->GetOffset1stFINESSE(n);
501  }
502 
504  {
506  return m_access->GetOffset2ndFINESSE(n);
507  }
508 
510  {
512  return m_access->GetOffset3rdFINESSE(n);
513  }
514 
516  {
518  return m_access->GetOffset4thFINESSE(n);
519  }
520 
522  {
524  return m_access->Get1stFINESSEBuffer(n);
525  }
526 
528  {
530  return m_access->Get2ndFINESSEBuffer(n);
531  }
532 
534  {
536  return m_access->Get3rdFINESSEBuffer(n);
537  }
538 
540  {
542  return m_access->Get4thFINESSEBuffer(n);
543  }
544 
546  {
548  return m_access->Get1stDetectorBuffer(n);
549  }
550 
552  {
554  return m_access->Get2ndDetectorBuffer(n);
555  }
556 
558  {
560  return m_access->Get3rdDetectorBuffer(n);
561  }
562 
564  {
566  return m_access->Get4thDetectorBuffer(n);
567  }
568 
569  inline int* RawCOPPER::GetExpRunSubrunBuf(int n)
570  {
572  return m_access->GetExpRunSubrunBuf(n);
573  }
574 
575  inline unsigned int RawCOPPER::GetMagicDriverHeader(int n)
576  {
578  return m_access->GetMagicDriverHeader(n);
579  }
580 
581  inline unsigned int RawCOPPER::GetMagicFPGAHeader(int n)
582  {
584  return m_access->GetMagicFPGAHeader(n);
585  }
586 
587  inline unsigned int RawCOPPER::GetMagicFPGATrailer(int n)
588  {
590  return m_access->GetMagicFPGATrailer(n);
591  }
592 
593  inline unsigned int RawCOPPER::GetMagicDriverTrailer(int n)
594  {
596  return m_access->GetMagicDriverTrailer(n);
597  }
598 
599  inline unsigned int RawCOPPER::GetTrailerChksum(int n)
600  {
602  return m_access->GetTrailerChksum(n);
603  }
604 
605  inline unsigned int RawCOPPER::GetTTCtimeTRGType(int n)
606  {
608  return m_access->GetTTCtimeTRGType(n);
609  }
610 
611  inline unsigned int RawCOPPER::GetTTUtime(int n)
612  {
614  return m_access->GetTTUtime(n);
615  }
616 
617  inline int RawCOPPER::GetTTCtime(int n)
618  {
620  return m_access->GetTTCtime(n);
621  }
622 
623  inline int RawCOPPER::GetTRGType(int n)
624  {
626  return m_access->GetTRGType(n);
627  }
628 
629  inline void RawCOPPER::GetTTTimeVal(int n, struct timeval* tv)
630  {
632  return m_access->GetTTTimeVal(n, tv);
633  }
634 
635  inline int RawCOPPER::GetBufferPos(int n)
636  {
638  return m_access->GetBufferPos(n);
639  }
640 
641  inline unsigned int RawCOPPER::CalcDriverChkSum(int n)
642  {
644  return m_access->CalcDriverChkSum(n);
645  }
646 
647 
649  {
651  return m_access->GetNumFINESSEBlock(n);
652  }
653 
654  inline int RawCOPPER::GetDetectorNwords(int n, int finesse_num)
655  {
657  return m_access->GetDetectorNwords(n, finesse_num);
658  }
659 
660  inline int RawCOPPER::GetFINESSENwords(int n, int finesse_num)
661  {
663  return m_access->GetFINESSENwords(n, finesse_num);
664  }
665 
666  inline int RawCOPPER::GetOffsetFINESSE(int n, int finesse_num)
667  {
669  return m_access->GetOffsetFINESSE(n, finesse_num);
670  }
671 
672  inline int* RawCOPPER::GetFINESSEBuffer(int n, int finesse_num)
673  {
675  return m_access->GetFINESSEBuffer(n, finesse_num);
676  }
677 
678  inline int* RawCOPPER::GetDetectorBuffer(int n, int finesse_num)
679  {
681  return m_access->GetDetectorBuffer(n, finesse_num);
682  }
683 
684  inline unsigned int RawCOPPER::GetB2LFEE32bitEventNumber(int n)
685  {
688  }
689 
690  inline unsigned int RawCOPPER::CalcXORChecksum(int* buf, int nwords)
691  {
693  return m_access->CalcXORChecksum(buf, nwords);
694  }
695 
696  inline void RawCOPPER::CheckData(int n,
697  unsigned int prev_evenum, unsigned int* cur_evenum_rawcprhdr,
698  unsigned int prev_copper_ctr, unsigned int* cur_copper_ctr,
699  unsigned int prev_exprunsubrun_no, unsigned int* cur_exprunsubrun_no)
700  {
701 
703  m_access->CheckData(n,
704  prev_evenum, cur_evenum_rawcprhdr,
705  prev_copper_ctr, cur_copper_ctr,
706  prev_exprunsubrun_no, cur_exprunsubrun_no);
707  return;
708  }
709 
710  inline bool RawCOPPER::CheckCOPPERMagic(int n)
711  {
713  return m_access->CheckCOPPERMagic(n);
714  }
715 
717  {
719  return m_access->CheckUtimeCtimeTRGType(n);
720  }
721 
722  inline unsigned int RawCOPPER::FillTopBlockRawHeader(unsigned int m_node_id, unsigned int prev_eve32,
723  unsigned int prev_exprunsubrun_no, unsigned int* cur_exprunsubrun_no)
724  {
726  return m_access->FillTopBlockRawHeader(m_node_id, prev_eve32,
727  prev_exprunsubrun_no, cur_exprunsubrun_no);
728  }
729 
730 #ifdef USE_B2LFEE_FORMAT_BOTH_VER1_AND_2
731  inline void RawCOPPER::CheckB2LFEEHeaderVersion(int n)
732  {
734  return m_access->CheckB2LFEEHeaderVersion(n);
735  }
736 #endif
737 
739  {
740  if (((m_buffer[ POS_FORMAT_VERSION ] & FORMAT_MASK) >> 8) != m_version
741  || m_access == NULL) {
742  SetVersion();
743  }
745  }
746 
747  inline int RawCOPPER::GetMaxNumOfCh(int n)
748  {
750  return m_access->GetMaxNumOfCh(n);
751  }
752 
754 }
755 
756 #endif
The Raw COPPER class This class stores data received by COPPER via belle2linkt Data from all detector...
virtual int Get4thFINESSENwords(int n)=0
get data size of FINESSE slot D buffer
virtual int GetDataType(int n)=0
get contents of header
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
virtual unsigned int GetEveNo(int n)=0
get subrun #(8bit)
virtual void AddErrorBitFlag(int n, unsigned int error_bit_flag)=0
Add Detected Error bitflag.
virtual int GetMaxNumOfCh(int n)=0
Get the max number of channels in a readout board.
virtual int * Get1stDetectorBuffer(int n)=0
get Detector buffer of slot A
virtual int * Get2ndDetectorBuffer(int n)=0
get Detector Buffer of slot B
virtual int Get2ndFINESSENwords(int n)=0
get data size of FINESSE slot B buffer
virtual int Get3rdFINESSENwords(int n)=0
get data size of FINESSE slot C buffer
virtual int GetTRGType(int n)=0
Get trgtype.
virtual int GetExpNo(int n)=0
get Experimental # from header
virtual int * GetExpRunSubrunBuf(int n)=0
get b2l block from "FEE b2link header"
virtual unsigned int GetNodeID(int n)=0
get node-ID from data
virtual int GetTruncMask(int n)=0
get contents of header
virtual unsigned int GetTrailerChksum(int n)=0
Get checksum in RawTrailer.
virtual int GetFINESSENwords(int n, int finesse)=0
get data size of FINESSE buffer
virtual int Get1stDetectorNwords(int n)=0
get Detector buffer length of slot A
virtual unsigned int GetMagicDriverTrailer(int n)=0
get magic word of COPPER driver trailer
virtual int Get2ndDetectorNwords(int n)=0
get Detector buffer length of slot B
virtual int GetOffsetFINESSE(int n, int finesse)
get # of offset words
virtual unsigned int CalcXORChecksum(int *buf, int nwords)
calc XOR checksum
virtual int Get4thDetectorNwords(int n)=0
get Detector buffer length of slot D
virtual bool CheckCOPPERMagic(int n)=0
Check if COPPER Magic words are correct.
virtual unsigned int GetB2LFEE32bitEventNumber(int n)=0
get b2l block from "FEE b2link header"
virtual int GetOffset1stFINESSE(int n)=0
get # of offset words for FINESSE slot A buffer position
virtual unsigned int GetExpRunSubrun(int n)=0
get Experimental # from header
virtual int * GetDetectorBuffer(int n, int finesse_num)
get Detector buffer
virtual unsigned int CalcDriverChkSum(int n)=0
calc COPPER driver's checksum value
virtual unsigned int GetMagicFPGAHeader(int n)=0
get magic word of COPPER FPGA header
virtual int GetTTCtime(int n)=0
Get ctime.
virtual unsigned int GetMagicDriverHeader(int n)=0
get magic word of COPPER driver header
virtual int GetNumFINESSEBlock(int n)=0
get # of FINNESEs which contains data
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
virtual unsigned int GetTTUtime(int n)=0
Check if COPPER Magic words are correct.
virtual unsigned int GetMagicFPGATrailer(int n)=0
get magic word of COPPER FPGA trailer
virtual int GetEventCRC16Value(int n, int finesse_num)
Get Event CRC16 value.
virtual unsigned int GetDriverChkSum(int n)=0
read COPPER driver's checksum value
virtual void GetTTTimeVal(int n, struct timeval *tv)=0
Get timeval.
virtual unsigned int GetErrorBitFlag(int n)=0
get contents of header
virtual int * Get3rdDetectorBuffer(int n)=0
get Detector Buffer of slot C
virtual unsigned int GetCOPPERCounter(int n)=0
get COPPER counter(not event number)
virtual int * GetFINESSEBuffer(int n, int finesse_num)
get FINESSE buffer pointer
virtual int * GetRawTrlBufPtr(int n)=0
get buffer pointer of rawcopper trailer
virtual unsigned int GetTTCtimeTRGType(int n)=0
Check if COPPER Magic words are correct.
virtual int GetSubRunNo(int n)=0
get run # (14bit)
virtual int * Get4thDetectorBuffer(int n)=0
get Detector Buffer of slot D
virtual void CheckUtimeCtimeTRGType(int n)=0
check data contents
virtual int GetEventCRCError(int n)
check CRC event Error
virtual int Get3rdDetectorNwords(int n)=0
get Detector buffer length of slot C
virtual int GetPacketCRCError(int n)
check CRC packet Error
virtual int GetDetectorNwords(int n, int finesse_num)=0
set buffer ( delete_flag : m_buffer is freeed( = 0 )/ not freeed( = 1 ) in Destructer )
virtual int GetRunNo(int n)=0
Exp# (10bit) run# (14bit) restart # (8bit)
virtual int Get1stFINESSENwords(int n)=0
get data size of FINESSE slot A buffer
struct to contain header information used by RawCOPPERFormat::Packer()
The Raw COPPER class This class stores data received by COPPER via belle2linkt Data from all detector...
Definition: RawCOPPER.h:52
void SetVersion()
read data, detect and set the version number of the data format
Definition: RawCOPPER.cc:34
RawCOPPERFormat * m_access
class to access
Definition: RawCOPPER.h:330
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: RawCOPPER.cc:313
void ShowBuffer()
show m_buffer
Definition: RawCOPPER.cc:169
ClassDefOverride(RawCOPPER, 3)
do not record
void PackDetectorBuf(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)
Packer for RawCOPPER class Pack data (format ver.
Definition: RawCOPPER.cc:183
virtual ~RawCOPPER()
Constructor using existing pointer to raw data buffer.
Definition: RawCOPPER.cc:28
void PackDetectorBuf4DummyData(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)
Pack dummy data (format ver. = -1 -> Select the latest format version)
Definition: RawCOPPER.cc:251
int m_version
do not record
Definition: RawCOPPER.h:333
RawCOPPER()
Default constructor.
Definition: RawCOPPER.cc:22
std::string getInfoHTML() const
Return a short summary of this object's contents in HTML format.
Definition: RawCOPPER.cc:285
void SetBuffer(int *bufin, int nwords, int delete_flag, int num_events, int num_nodes) OVERRIDE_CPP17
set buffer ( delete_flag : m_buffer is freeed( = 0 )/ not freeed( = 1 ) in Destructer )
Definition: RawCOPPER.cc:141
virtual int GetBufferPos(int n)
get position of data block in word
virtual void SetBuffer(int *bufin, int nwords, int delete_flag, int num_events, int num_nodes)
set buffer ( delete_flag : m_buffer is freeed( = 0 )/ not freeed( = 1 ) in Destructer )
The RawDataBlock class Base class for rawdata handling.
Definition: RawDataBlock.h:27
int m_num_events
number of events in this object
Definition: RawDataBlock.h:151
int m_num_nodes
number of nodes in this object
Definition: RawDataBlock.h:148
int * m_buffer
Buffer.
Definition: RawDataBlock.h:154
int m_nwords
do not record
Definition: RawDataBlock.h:145
unsigned int GetTTCtimeTRGType(int n)
Check if COPPER Magic words are correct.
Definition: RawCOPPER.h:605
virtual unsigned int GetB2LFEE32bitEventNumber(int n)
get b2l block from "FEE b2link header"
Definition: RawCOPPER.h:684
unsigned int GetTrailerChksum(int n)
Get checksum in RawTrailer.
Definition: RawCOPPER.h:599
unsigned int GetMagicDriverHeader(int n)
get magic word of COPPER driver header
Definition: RawCOPPER.h:575
int GetExpNo(int n)
get Experimental # from header
Definition: RawCOPPER.h:362
unsigned int GetExpRunSubrun(int n)
get Experimental # from header
Definition: RawCOPPER.h:368
int * Get2ndDetectorBuffer(int n)
get Detector Buffer of slot B
Definition: RawCOPPER.h:551
unsigned int GetEveNo(int n)
get subrun #(8bit)
Definition: RawCOPPER.h:387
unsigned int GetMagicDriverTrailer(int n)
get magic word of COPPER driver trailer
Definition: RawCOPPER.h:593
virtual int * GetRawHdrBufPtr(int n)
get buffer pointer of rawcopper header(Currently same as GetBufferPos)
Definition: RawCOPPER.h:344
bool CheckCOPPERMagic(int n)
Check if COPPER Magic words are correct.
Definition: RawCOPPER.h:710
unsigned int GetTTUtime(int n)
Check if COPPER Magic words are correct.
Definition: RawCOPPER.h:611
int * Get3rdFINESSEBuffer(int n)
get FINESSE buffer pointer for slot C
Definition: RawCOPPER.h:533
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)
check data contents
Definition: RawCOPPER.h:696
void CheckVersionSetBuffer()
Check the version number of data format.
Definition: RawCOPPER.h:738
int * Get3rdDetectorBuffer(int n)
get Detector Buffer of slot C
Definition: RawCOPPER.h:557
int GetOffsetFINESSE(int n, int finesse)
get # of offset words
Definition: RawCOPPER.h:666
int GetSubRunNo(int n)
get run # (14bit)
Definition: RawCOPPER.h:381
int GetOffset2ndFINESSE(int n)
get # of offset words for FINESSE slot B buffer position
Definition: RawCOPPER.h:503
virtual int GetBufferPos(int n) OVERRIDE_CPP17
get posistion of COPPER block in unit of word
Definition: RawCOPPER.h:635
unsigned int CalcXORChecksum(int *buf, int nwords)
calc XOR checksum
Definition: RawCOPPER.h:690
unsigned int GetMagicFPGATrailer(int n)
get magic word of COPPER FPGA trailer
Definition: RawCOPPER.h:587
virtual unsigned int GetCOPPERCounter(int n)
get COPPER counter(not event number)
Definition: RawCOPPER.h:443
int GetDetectorNwords(int n, int finesse_num)
get Detector buffer length
Definition: RawCOPPER.h:654
unsigned int FillTopBlockRawHeader(unsigned int m_node_id, unsigned int prev_eve32, unsigned int prev_exprunsubrun_no, unsigned int *cur_exprunsubrun_no)
should be called by DeSerializerCOPPER.cc and fill contents in RawHeader
Definition: RawCOPPER.h:722
virtual int * GetRawTrlBufPtr(int n)
get buffer pointer of rawcopper trailer
Definition: RawCOPPER.h:350
int Get4thDetectorNwords(int n)
get Detector buffer length of slot D
Definition: RawCOPPER.h:467
int * GetDetectorBuffer(int n, int finesse_num)
get Detector buffer
Definition: RawCOPPER.h:678
unsigned int GetMagicFPGAHeader(int n)
get magic word of COPPER FPGA header
Definition: RawCOPPER.h:581
int GetEventCRC16Value(int n, int finesse_num)
Get Event CRC16 value.
Definition: RawCOPPER.h:437
int * Get2ndFINESSEBuffer(int n)
get FINESSE buffer pointer for slot B
Definition: RawCOPPER.h:527
int Get1stDetectorNwords(int n)
get Detector buffer length of slot A
Definition: RawCOPPER.h:449
int GetOffset1stFINESSE(int n)
get # of offset words for FINESSE slot A buffer position
Definition: RawCOPPER.h:497
int GetDataType(int n)
get contents of header
Definition: RawCOPPER.h:401
int GetOffset4thFINESSE(int n)
get # of offset words for FINESSE slot D buffer position
Definition: RawCOPPER.h:515
int GetTruncMask(int n)
get contents of header
Definition: RawCOPPER.h:407
int GetFINESSENwords(int n, int finesse)
get data size of FINESSE buffer
Definition: RawCOPPER.h:660
int Get2ndDetectorNwords(int n)
get Detector buffer length of slot B
Definition: RawCOPPER.h:455
int GetOffset3rdFINESSE(int n)
get # of offset words for FINESSE slot C buffer position
Definition: RawCOPPER.h:509
void AddErrorBitFlag(int n, unsigned int error_bit_flag)
Get Detected Error bitflag.
Definition: RawCOPPER.h:419
unsigned int CalcDriverChkSum(int n)
calc COPPER driver's checksum value
Definition: RawCOPPER.h:641
int Get1stFINESSENwords(int n)
get data size of FINESSE slot A buffer
Definition: RawCOPPER.h:473
virtual int GetNumFINESSEBlock(int n)
get # of FINNESEs which contains data
Definition: RawCOPPER.h:648
int Get4thFINESSENwords(int n)
get data size of FINESSE slot D buffer
Definition: RawCOPPER.h:491
void CheckUtimeCtimeTRGType(int n)
check data contents
Definition: RawCOPPER.h:716
virtual int * GetExpRunSubrunBuf(int n)
get b2l block from "FEE b2link header"
Definition: RawCOPPER.h:569
int * Get1stDetectorBuffer(int n)
get Detector buffer of slot A
Definition: RawCOPPER.h:545
void GetTTTimeVal(int n, struct timeval *tv)
Get timeval.
Definition: RawCOPPER.h:629
int * GetFINESSEBuffer(int n, int finesse_num)
get FINESSE buffer pointer
Definition: RawCOPPER.h:672
int GetTTCtime(int n)
Get ctime.
Definition: RawCOPPER.h:617
int Get3rdFINESSENwords(int n)
get data size of FINESSE slot C buffer
Definition: RawCOPPER.h:485
int GetEventCRCError(int n)
check CRC event Error
Definition: RawCOPPER.h:431
int GetPacketCRCError(int n)
check CRC packet Error
Definition: RawCOPPER.h:425
int * Get4thFINESSEBuffer(int n)
get FINESSE buffer pointer for slot D
Definition: RawCOPPER.h:539
int Get2ndFINESSENwords(int n)
get data size of FINESSE slot B buffer
Definition: RawCOPPER.h:479
int * Get4thDetectorBuffer(int n)
get Detector Buffer of slot D
Definition: RawCOPPER.h:563
unsigned int GetNodeID(int n)
get node-ID from data
Definition: RawCOPPER.h:394
int GetTRGType(int n)
Get trgtype.
Definition: RawCOPPER.h:623
int Get3rdDetectorNwords(int n)
get Detector buffer length of slot C
Definition: RawCOPPER.h:461
int * Get1stFINESSEBuffer(int n)
get FINESSE buffer pointer for slot A
Definition: RawCOPPER.h:521
unsigned int GetDriverChkSum(int n)
read COPPER driver's checksum value
Definition: RawCOPPER.h:356
unsigned int GetErrorBitFlag(int n)
get contents of header
Definition: RawCOPPER.h:413
int GetRunNo(int n)
Exp# (10bit) run# (14bit) restart # (8bit)
Definition: RawCOPPER.h:374
int GetMaxNumOfCh(int n)
Get the max number of channels in a readout board.
Definition: RawCOPPER.h:747
Abstract base class for different kinds of events.