Belle II Software  release-08-01-10
RawCOPPERFormat Class Referenceabstract

The Raw COPPER class This class stores data received by COPPER via belle2linkt Data from all detectors except PXD are stored in this class. More...

#include <RawCOPPERFormat.h>

Inheritance diagram for RawCOPPERFormat:
Collaboration diagram for RawCOPPERFormat:

Public Types

enum  {
  POS_NWORDS = 0 ,
  POS_NODE_ID = 6
}
 
enum  {
  POS_FTSW_ID_OLD = 5 ,
  TEMP_POS_NWORDS_HEADER = 1 ,
  OLD_FTSW_NWORDS_HEADER = 6
}
 

Public Member Functions

virtual ~RawCOPPERFormat ()
 Constructor using existing pointer to raw data buffer. More...
 
virtual int GetDetectorNwords (int n, int finesse_num)=0
 set buffer ( delete_flag : m_buffer is freeed( = 0 )/ not freeed( = 1 ) in Destructer ) More...
 
virtual int Get1stDetectorNwords (int n)=0
 get Detector buffer length of slot A
 
virtual int Get2ndDetectorNwords (int n)=0
 get Detector buffer length of slot B
 
virtual int Get3rdDetectorNwords (int n)=0
 get Detector buffer length of slot C
 
virtual int Get4thDetectorNwords (int n)=0
 get Detector buffer length of slot D
 
virtual int * GetDetectorBuffer (int n, int finesse_num)
 get Detector buffer
 
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 * Get3rdDetectorBuffer (int n)=0
 get Detector Buffer of slot C
 
virtual int * Get4thDetectorBuffer (int n)=0
 get Detector Buffer of slot D
 
virtual int * GetRawHdrBufPtr (int n)
 get buffer pointer of rawcopper header(Currently same as GetBufferPos)
 
virtual int * GetRawTrlBufPtr (int n)=0
 get buffer pointer of rawcopper trailer
 
virtual int * GetFINESSEBuffer (int n, int finesse_num)
 get FINESSE buffer pointer
 
virtual int * Get1stFINESSEBuffer (int n)
 get FINESSE buffer pointer for slot A
 
virtual int * Get2ndFINESSEBuffer (int n)
 get FINESSE buffer pointer for slot B
 
virtual int * Get3rdFINESSEBuffer (int n)
 get FINESSE buffer pointer for slot C
 
virtual int * Get4thFINESSEBuffer (int n)
 get FINESSE buffer pointer for slot D
 
virtual int GetExpNo (int n)=0
 get Experimental # from header
 
virtual unsigned int GetExpRunSubrun (int n)=0
 get Experimental # from header
 
virtual int GetRunNo (int n)=0
 Exp# (10bit) run# (14bit) restart # (8bit)
 
virtual int GetSubRunNo (int n)=0
 get run # (14bit)
 
virtual unsigned int GetEveNo (int n)=0
 get subrun #(8bit)
 
virtual int GetDataType (int n)=0
 get contents of header
 
virtual int GetTruncMask (int n)=0
 get contents of header
 
virtual unsigned int GetErrorBitFlag (int n)=0
 get contents of header More...
 
virtual void AddErrorBitFlag (int n, unsigned int error_bit_flag)=0
 Add Detected Error bitflag.
 
virtual int GetPacketCRCError (int n)
 check CRC packet Error
 
virtual int GetEventCRCError (int n)
 check CRC event Error
 
virtual int GetEventCRC16Value (int n, int finesse_num)
 Get Event CRC16 value.
 
virtual unsigned int GetNodeID (int n)=0
 get node-ID from data
 
virtual unsigned int GetCOPPERCounter (int n)=0
 get COPPER counter(not event number)
 
virtual int GetNumFINESSEBlock (int n)=0
 get # of FINNESEs which contains data
 
virtual int GetOffsetFINESSE (int n, int finesse)
 get # of offset words
 
virtual int GetOffset1stFINESSE (int n)=0
 get # of offset words for FINESSE slot A buffer position
 
virtual int GetOffset2ndFINESSE (int n)
 get # of offset words for FINESSE slot B buffer position
 
virtual int GetOffset3rdFINESSE (int n)
 get # of offset words for FINESSE slot C buffer position
 
virtual int GetOffset4thFINESSE (int n)
 get # of offset words for FINESSE slot D buffer position
 
virtual int GetFINESSENwords (int n, int finesse)=0
 get data size of FINESSE buffer
 
virtual int Get1stFINESSENwords (int n)=0
 get data size of FINESSE slot A buffer
 
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 Get4thFINESSENwords (int n)=0
 get data size of FINESSE slot D buffer
 
virtual int * GetExpRunSubrunBuf (int n)=0
 get b2l block from "FEE b2link header" More...
 
virtual unsigned int GetB2LFEE32bitEventNumber (int n)=0
 get b2l block from "FEE b2link header"
 
virtual unsigned int GetMagicDriverHeader (int n)=0
 get magic word of COPPER driver header
 
virtual unsigned int GetMagicFPGAHeader (int n)=0
 get magic word of COPPER FPGA header
 
virtual unsigned int GetMagicFPGATrailer (int n)=0
 get magic word of COPPER FPGA trailer
 
virtual unsigned int GetMagicDriverTrailer (int n)=0
 get magic word of COPPER driver trailer
 
virtual unsigned int GetTrailerChksum (int n)=0
 Get checksum in RawTrailer.
 
virtual bool CheckCOPPERMagic (int n)=0
 Check if COPPER Magic words are correct.
 
virtual unsigned int GetTTCtimeTRGType (int n)=0
 Check if COPPER Magic words are correct.
 
virtual unsigned int GetTTUtime (int n)=0
 Check if COPPER Magic words are correct.
 
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 GetDriverChkSum (int n)=0
 read COPPER driver's checksum value
 
virtual unsigned int CalcDriverChkSum (int n)=0
 calc COPPER driver's checksum value
 
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 void CheckUtimeCtimeTRGType (int n)=0
 check data contents
 
virtual int GetTTCtime (int n)=0
 Get ctime.
 
virtual int GetTRGType (int n)=0
 Get trgtype.
 
virtual void GetTTTimeVal (int n, struct timeval *tv)=0
 Get timeval.
 
virtual unsigned int CalcXORChecksum (int *buf, int nwords)
 calc XOR checksum
 
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)
 
virtual int * PackDetectorBuf (int *packed_buf_nwords, int *const(&detector_buf_ch)[MAX_PCIE40_CH], int const(&nwords_ch)[MAX_PCIE40_CH], RawCOPPERPackerInfo rawcpr_info)
 Pack data for PCIe40 data-format.
 
virtual int GetMaxNumOfCh (int n)=0
 Get the max number of channels in a readout board.
 
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.
 
virtual void GetNodeName (int n, char *node_name, int bufsize)
 Get hostname of a node from the RawCOPPER header.
 
virtual void GetNodeName (char *node_name, unsigned int node_id, int bufsize)
 Get hostname of a node from an argument.
 
virtual bool CheckOnlineRemovedDataBit (int n, int finesse_num)
 Check if COPPER Magic words are correct.
 
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 )
 
virtual int TotalBufNwords ()
 Get total length of m_buffer.
 
virtual int GetBufferPos (int n)
 get position of data block in word
 
virtual int * GetBuffer (int n)
 get nth buffer pointer
 
virtual int * GetWholeBuffer ()
 get pointer to buffer(m_buffer)
 
virtual int GetNumEntries ()
 get # of data blocks = (# of nodes)*(# of events)
 
virtual int GetNumNodes ()
 get # of data sources(e.g. # of COPPER boards) in m_buffer
 
virtual int GetNumEvents ()
 get # of events in m_buffer
 
virtual int GetPreAllocFlag ()
 get malloc_flag
 
virtual int GetBlockNwords (int n)
 get size of a data block
 
virtual int CheckFTSWID (int n)
 get FTSW ID to check whether this data block is FTSW data or not
 
virtual int CheckTLUID (int n)
 get FTSW ID to check whether this data block is FTSW data or not
 
virtual void CopyBlock (int n, int *buf_to)
 Copy one datablock to buffer.
 
virtual void PrintData (int *buf, int nwords)
 print data
 

Protected Attributes

int m_nwords
 number of words of buffer
 
int m_num_nodes
 number of nodes in this object
 
int m_num_events
 number of events in this object
 
int * m_buffer
 Buffer.
 
int m_use_prealloc_buf
 not recorded More...
 

Detailed Description

The Raw COPPER class This class stores data received by COPPER via belle2linkt Data from all detectors except PXD are stored in this class.

Definition at line 54 of file RawCOPPERFormat.h.

Constructor & Destructor Documentation

◆ ~RawCOPPERFormat()

virtual ~RawCOPPERFormat ( )
inlinevirtual

Constructor using existing pointer to raw data buffer.

Destructor

Definition at line 62 of file RawCOPPERFormat.h.

62 {}

Member Function Documentation

◆ GetDetectorNwords()

virtual int GetDetectorNwords ( int  n,
int  finesse_num 
)
pure virtual

set buffer ( delete_flag : m_buffer is freeed( = 0 )/ not freeed( = 1 ) in Destructer )

get Detector buffer length

Implemented in RawCOPPERFormat_v0, PreRawCOPPERFormat_v2, PreRawCOPPERFormat_v1, PreRawCOPPERFormat_latest, PostRawCOPPERFormat_v2, PostRawCOPPERFormat_v1, and PostRawCOPPERFormat_latest.

◆ GetErrorBitFlag()

virtual unsigned int GetErrorBitFlag ( int  n)
pure virtual

get contents of header

Get Detected Error bitflag

Implemented in RawCOPPERFormat_v2, RawCOPPERFormat_v1, RawCOPPERFormat_v0, and RawCOPPERFormat_latest.

◆ GetExpRunSubrunBuf()

virtual int* GetExpRunSubrunBuf ( int  n)
pure virtual

get b2l block from "FEE b2link header"

get b2l block from "FEE b2link header"

Implemented in RawCOPPERFormat_v0, PreRawCOPPERFormat_v2, PreRawCOPPERFormat_v1, PreRawCOPPERFormat_latest, PostRawCOPPERFormat_v2, PostRawCOPPERFormat_v1, and PostRawCOPPERFormat_latest.

Member Data Documentation

◆ m_use_prealloc_buf

int m_use_prealloc_buf
protectedinherited

not recorded

flag for deleting m_buffer in destructer( 0:delete, 1: not delete) When using pre-allocated buffer, the buffer should be reused and not deleted in the destructer

Definition at line 102 of file RawDataBlockFormat.h.


The documentation for this class was generated from the following files: