Belle II Software development
RawFTSWFormat_v1 Class Reference

The Raw FTSW class ver.1 . More...

#include <RawFTSWFormat_v1.h>

Inheritance diagram for RawFTSWFormat_v1:
RawFTSWFormat RawDataBlockFormat

Public Types

enum  {
  POS_NWORDS = 0 ,
  POS_HDR_NWORDS = 1 ,
  POS_NUMEVE_NUMNODES = 2 ,
  POS_EXP_RUN_NO = 3 ,
  POS_EVE_NO = 4 ,
  POS_NA_1 = 5 ,
  POS_NODE_ID = 6 ,
  POS_NA_2 = 7 ,
  POS_TT_CTIME_TRGTYPE = 8 ,
  POS_TT_UTIME = 9 ,
  POS_FTSW_3 = 10 ,
  POS_FTSW_4 = 11 ,
  POS_RSVD_1 = 12 ,
  POS_MAGIC_1 = 13
}
 
enum  {
  EXP_MASK = 0xFFC00000 ,
  EXP_SHIFT = 22 ,
  RUNNO_MASK = 0x003FFF00 ,
  RUNNO_SHIFT = 8 ,
  SUBRUNNO_MASK = 0x000000FF ,
  TTCTIME_MASK = 0x7FFFFFF0 ,
  TTCTIME_SHIFT = 4 ,
  TRGTYPE_MASK = 0xF
}
 
enum  { SIZE_FTSW_PACKET = 14 }
 
enum  { FTSW_MAGIC_TRAILER = 0x7FFF0000 }
 
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

 RawFTSWFormat_v1 ()
 Default constructor.
 
virtual ~RawFTSWFormat_v1 ()
 Constructor using existing pointer to raw data buffer.
 
int GetNwordsHeader (int n) OVERRIDE_CPP17
 Get # of words of header.
 
unsigned int GetFTSWNodeID (int n) OVERRIDE_CPP17
 Get Node # ( should be "TTD " )
 
unsigned int GetEveNo (int n) OVERRIDE_CPP17
 Get event #.
 
unsigned int GetTTCtimeTRGType (int n) OVERRIDE_CPP17
 Get a word containing ctime and trigger type info.
 
unsigned int GetTTUtime (int n) OVERRIDE_CPP17
 get unixtime of the trigger
 
int GetTTCtime (int n) OVERRIDE_CPP17
 Get ctime of the trigger.
 
int GetTRGType (int n) OVERRIDE_CPP17
 Get trgtype.
 
void GetTTTimeVal (int n, struct timeval *tv) OVERRIDE_CPP17
 Get timeval from ctime and utime.
 
void GetTTTimeSpec (int n, struct timespec *ts) OVERRIDE_CPP17
 Get timespec from ctime and utime.
 
unsigned long long int GetTTTimeNs (int n) OVERRIDE_CPP17
 Get time in ns since epoch from ctime and utime.
 
unsigned int GetMagicTrailer (int n) OVERRIDE_CPP17
 Get magic number for data corruption check.
 
void CheckData (int n, unsigned int prev_evenum, unsigned int *cur_evenum, unsigned int prev_exprunsubrun_no, unsigned int *cur_exprunsubrun_no) OVERRIDE_CPP17
 check the data contents
 
unsigned int GetExpRunSubrun (int n) OVERRIDE_CPP17
 Exp# (10bit) run# (14bit) restart # (8bit)
 
int GetRunNo (int n) OVERRIDE_CPP17
 Get run #.
 
int GetSubRunNo (int n) OVERRIDE_CPP17
 Get subrun #.
 
int GetRunNoSubRunNo (int n) OVERRIDE_CPP17
 get a word cotaining run # and subrun #
 
int GetExpNo (int n) OVERRIDE_CPP17
 Get Exp #.
 
int Get15bitTLUTag (int n) OVERRIDE_CPP17
 DESY test only.
 
virtual void GetPCTimeVal (int n, struct timeval *tv)
 Get stored information of getimeofday in a PC.
 
virtual int GetIsHER (int n)
 HER injection = 1 or LER injection = 0.
 
virtual unsigned int GetTimeSinceLastInjection (int n)
 Get time since the last injection.
 
virtual unsigned int GetTimeSincePrevTrigger (int n)
 Get time since the previous trigger.
 
virtual unsigned int GetBunchNumber (int n)
 Get a bunch number.
 
virtual unsigned int GetFrameCount (int n)
 Get a frame count.
 
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
 

Detailed Description

The Raw FTSW class ver.1 .

This class stores the RAW data containing FTSW data(event #, trg time ).

Definition at line 24 of file RawFTSWFormat_v1.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited

Definition at line 75 of file RawDataBlockFormat.h.

75 {
76 POS_NWORDS = 0,
77 POS_NODE_ID = 6
78 };

◆ anonymous enum

anonymous enum
inherited

Definition at line 80 of file RawDataBlockFormat.h.

80 {
81 // Tentatively needed to distinguish new and old FTSW format, which will be changed in Nov. 2013
82 POS_FTSW_ID_OLD = 5,
83 TEMP_POS_NWORDS_HEADER = 1,
84 OLD_FTSW_NWORDS_HEADER = 6
85 };

◆ anonymous enum

anonymous enum

Definition at line 112 of file RawFTSWFormat_v1.h.

112 {
113 POS_NWORDS = 0,
114 POS_HDR_NWORDS = 1,
115 POS_NUMEVE_NUMNODES = 2,
116 POS_EXP_RUN_NO = 3,
117 POS_EVE_NO = 4,
118 POS_NA_1 = 5,
119 POS_NODE_ID = 6,
120 POS_NA_2 = 7,
121 POS_TT_CTIME_TRGTYPE = 8,
122 POS_TT_UTIME = 9,
123 POS_FTSW_3 = 10,
124 POS_FTSW_4 = 11,
125 POS_RSVD_1 = 12,
126 POS_MAGIC_1 = 13
127 };

◆ anonymous enum

anonymous enum

Definition at line 129 of file RawFTSWFormat_v1.h.

129 {
130 EXP_MASK = 0xFFC00000,
131 EXP_SHIFT = 22,
132 RUNNO_MASK = 0x003FFF00,
133 RUNNO_SHIFT = 8,
134 SUBRUNNO_MASK = 0x000000FF,
135 TTCTIME_MASK = 0x7FFFFFF0,
136 TTCTIME_SHIFT = 4,
137 TRGTYPE_MASK = 0xF
138 };

◆ anonymous enum

anonymous enum

Definition at line 140 of file RawFTSWFormat_v1.h.

140 {
141 SIZE_FTSW_PACKET = 14
142 };

◆ anonymous enum

anonymous enum

Definition at line 145 of file RawFTSWFormat_v1.h.

145 {
146 FTSW_MAGIC_TRAILER = 0x7FFF0000
147 };

Constructor & Destructor Documentation

◆ RawFTSWFormat_v1()

Default constructor.

Definition at line 15 of file RawFTSWFormat_v1.cc.

16{
17}

◆ ~RawFTSWFormat_v1()

~RawFTSWFormat_v1 ( )
virtual

Constructor using existing pointer to raw data buffer.

Destructor

Definition at line 19 of file RawFTSWFormat_v1.cc.

20{
21}

Member Function Documentation

◆ CheckData()

void CheckData ( int  n,
unsigned int  prev_evenum,
unsigned int *  cur_evenum,
unsigned int  prev_exprunsubrun_no,
unsigned int *  cur_exprunsubrun_no 
)
virtual

check the data contents

Implements RawFTSWFormat.

Definition at line 93 of file RawFTSWFormat_v1.cc.

96{
97 int err_flag = 0;
98 char err_buf[500];
99 *cur_evenum = GetEveNo(n);
100 *cur_exprunsubrun_no = GetExpRunSubrun(n);
101
102
103#ifndef NO_DATA_CHECK
104 if (prev_exprunsubrun_no == *cur_exprunsubrun_no) {
105 if ((unsigned int)(prev_evenum + 1) != *cur_evenum) {
106 sprintf(err_buf, "[FATAL] ERROR_EVENT : Event # jump : i %d prev 0x%x cur 0x%x : Exiting...\n %s %s %d\n",
107 n, prev_evenum, *cur_evenum, __FILE__, __PRETTY_FUNCTION__, __LINE__);
108 printf("%s", err_buf);
109 err_flag = 1;
110 }
111 }
112#endif
113
114 if (GetBlockNwords(n) != SIZE_FTSW_PACKET) {
115 sprintf(err_buf, "[FATAL] ERROR_EVENT : invalid FTSW packet length : block %d nwords %d must be %d : Exiting...\n %s %s %d\n",
116 n, GetBlockNwords(n), SIZE_FTSW_PACKET, __FILE__, __PRETTY_FUNCTION__, __LINE__);
117 printf("%s", err_buf);
118 err_flag = 1;
119 }
120
121 if (GetMagicTrailer(n) != FTSW_MAGIC_TRAILER) {
122 sprintf(err_buf, "[FATAL] ERROR_EVENT : invalid magic word : block %d magic word 0x%x must be 0x%x : Exiting...\n %s %s %d\n",
123 n, GetMagicTrailer(n), FTSW_MAGIC_TRAILER, __FILE__, __PRETTY_FUNCTION__, __LINE__);
124 printf("%s", err_buf);
125 err_flag = 1;
126 }
127
128 if (err_flag == 1) {
129 printf("[DEBUG] ========== dump a data block : block # %d==========\n", n);
130 printf("[DEBUG] ");
131 for (int k = 0 ; k < GetBlockNwords(n); k++) {
132 printf("0x%.8x ", (GetBuffer(n))[k]);
133 if (k % 10 == 9) printf("\n[DEBUG] ");
134 }
135 fflush(stderr);
136 B2FATAL(err_buf);
137 }
138
139 return;
140}
virtual int GetBlockNwords(int n)
get size of a data block
virtual int * GetBuffer(int n)
get nth buffer pointer
unsigned int GetEveNo(int n) OVERRIDE_CPP17
Get event #.
unsigned int GetMagicTrailer(int n) OVERRIDE_CPP17
Get magic number for data corruption check.
unsigned int GetExpRunSubrun(int n) OVERRIDE_CPP17
Exp# (10bit) run# (14bit) restart # (8bit)

◆ CheckFTSWID()

int CheckFTSWID ( int  n)
virtualinherited

get FTSW ID to check whether this data block is FTSW data or not

Definition at line 73 of file RawDataBlockFormat.cc.

74{
75 int pos = POS_NODE_ID;
76 if (m_buffer[ GetBufferPos(n) + TEMP_POS_NWORDS_HEADER ] == OLD_FTSW_NWORDS_HEADER) {
77 pos = POS_FTSW_ID_OLD;
78 }
79
80 if ((m_buffer[ GetBufferPos(n) + pos ] & 0xffffff00) == 0x54544400) { // "TTD" + format version ( 0x20=DESY, 0x31=2018/7/11)
81 return 1;
82 } else {
83 return 0;
84 }
85}
virtual int GetBufferPos(int n)
get position of data block in word

◆ CheckTLUID()

int CheckTLUID ( int  n)
virtualinherited

get FTSW ID to check whether this data block is FTSW data or not

Definition at line 88 of file RawDataBlockFormat.cc.

89{
90 int pos = POS_NODE_ID;
91 if (m_buffer[ GetBufferPos(n) + TEMP_POS_NWORDS_HEADER ] == OLD_FTSW_NWORDS_HEADER) {
92 pos = POS_FTSW_ID_OLD;
93 }
94 if (m_buffer[ GetBufferPos(n) + pos ] == 0x544c5520) { // "TLU "
95 return 1;
96 } else {
97 return 0;
98 }
99}

◆ CopyBlock()

void CopyBlock ( int  n,
int *  buf_to 
)
virtualinherited

Copy one datablock to buffer.

Definition at line 173 of file RawDataBlockFormat.cc.

174{
175 memcpy(buf_to, GetBuffer(n), GetBlockNwords(n) * sizeof(int));
176 return;
177}

◆ Get15bitTLUTag()

int Get15bitTLUTag ( int  n)
virtual

DESY test only.

Reimplemented from RawFTSWFormat.

Definition at line 24 of file RawFTSWFormat_v1.cc.

25{
26 return (int)((unsigned int)(m_buffer[ GetBufferPos(n) + POS_FTSW_4 ]) & 0x00007FFF);
27}

◆ GetBlockNwords()

int GetBlockNwords ( int  n)
virtualinherited

get size of a data block

Definition at line 107 of file RawDataBlockFormat.cc.

108{
109 int size;
110 if (n == (m_num_events * m_num_nodes) - 1) {
111 size = m_nwords - GetBufferPos(n);
112 } else {
113 size = GetBufferPos(n + 1) - GetBufferPos(n);
114 }
115 return size;
116}
int m_num_events
number of events in this object
int m_num_nodes
number of nodes in this object
int m_nwords
number of words of buffer

◆ GetBuffer()

int * GetBuffer ( int  n)
virtualinherited

get nth buffer pointer

Definition at line 124 of file RawDataBlockFormat.cc.

125{
126 int pos_nwords = GetBufferPos(n);
127 return &(m_buffer[ pos_nwords ]);
128}

◆ GetBufferPos()

int GetBufferPos ( int  n)
virtualinherited

get position of data block in word

Definition at line 30 of file RawDataBlockFormat.cc.

31{
32 if (m_buffer == NULL || m_nwords <= 0) {
33 char err_buf[500];
34 sprintf(err_buf, "[FATAL] RawPacket buffer(%p) is not available or length(%d) is not set.\n %s %s %d\n",
35 m_buffer, m_nwords, __FILE__, __PRETTY_FUNCTION__, __LINE__);
36 printf("%s", err_buf); fflush(stdout);
37 B2FATAL(err_buf);
38 }
39
40 if (n >= (m_num_events * m_num_nodes)) {
41 char err_buf[500];
42 sprintf(err_buf, "[FATAL] Invalid COPPER block No. (%d : max %d ) is specified. Exiting... \n %s %s %d\n",
43 n, (m_num_events * m_num_nodes), __FILE__, __PRETTY_FUNCTION__, __LINE__);
44 printf("%s", err_buf); fflush(stdout);
45 B2FATAL(err_buf);
46 }
47
48 int pos_nwords = 0;
49 for (int i = 1; i <= n ; i++) {
50 if (m_buffer[ pos_nwords ] <= 0) {
51 char err_buf[500];
52 sprintf(err_buf,
53 "[FATAL] ERROR_EVENT : length of this data block is strange ( %d words ). Maybe data is corrupted or RawHeader info has not been filled yet. Exiting...",
54 m_buffer[ pos_nwords ]);
55 printf("%s", err_buf);
56 B2FATAL(err_buf);
57 } else {
58 pos_nwords += m_buffer[ pos_nwords ];
59 }
60 if (pos_nwords >= m_nwords) {
61 char err_buf[500];
62 sprintf(err_buf, "[FATAL] ERROR_EVENT : value of pos_nwords(%d) is larger than m_nwords(%d). Exiting...\n %s %s %d\n",
63 pos_nwords, m_nwords, __FILE__, __PRETTY_FUNCTION__, __LINE__);
64 printf("%s", err_buf); fflush(stdout);
65 B2FATAL(err_buf); // to reduce multiple error messages
66 }
67 }
68 return pos_nwords;
69
70}

◆ GetBunchNumber()

unsigned int GetBunchNumber ( int  n)
virtualinherited

Get a bunch number.

Reimplemented in RawFTSWFormat_latest, and RawFTSWFormat_v2.

Definition at line 72 of file RawFTSWFormat.cc.

73{
74 char err_buf[500];
75 sprintf(err_buf,
76 "[FATAL] This function is not supported in the version of RawFTSW format that you're using. n=%d : %s %s %d: Exiting...\n",
77 n, __FILE__, __PRETTY_FUNCTION__, __LINE__);
78 printf("%s\n", err_buf); fflush(stdout);
79 B2FATAL(err_buf);
80 return -1;
81}

◆ GetEveNo()

unsigned int GetEveNo ( int  n)
virtual

Get event #.

Implements RawFTSWFormat.

Definition at line 83 of file RawFTSWFormat_v1.cc.

84{
85 return m_buffer[ GetBufferPos(n) + POS_EVE_NO ];
86}

◆ GetFrameCount()

unsigned int GetFrameCount ( int  n)
virtualinherited

Get a frame count.

Reimplemented in RawFTSWFormat_latest, and RawFTSWFormat_v2.

Definition at line 83 of file RawFTSWFormat.cc.

84{
85 char err_buf[500];
86 sprintf(err_buf,
87 "[FATAL] This function is not supported in the version of RawFTSW format that you're using. n=%d : %s %s %d: Exiting...\n",
88 n, __FILE__, __PRETTY_FUNCTION__, __LINE__);
89 printf("%s\n", err_buf); fflush(stdout);
90 B2FATAL(err_buf);
91 return -1;
92}

◆ GetFTSWNodeID()

unsigned int GetFTSWNodeID ( int  n)
virtual

Get Node # ( should be "TTD " )

Implements RawFTSWFormat.

Definition at line 78 of file RawFTSWFormat_v1.cc.

79{
80 return (unsigned int)(m_buffer[ GetBufferPos(n) + POS_NODE_ID ]);
81}

◆ GetIsHER()

int GetIsHER ( int  n)
virtualinherited

HER injection = 1 or LER injection = 0.

Reimplemented in RawFTSWFormat_latest, and RawFTSWFormat_v2.

Definition at line 36 of file RawFTSWFormat.cc.

37{
38 char err_buf[500];
39 sprintf(err_buf,
40 "[FATAL] This function is not supported in the version of RawFTSW format that you're using. n=%d : %s %s %d: Exiting...\n",
41 n, __FILE__, __PRETTY_FUNCTION__, __LINE__);
42 printf("%s\n", err_buf); fflush(stdout);
43 B2FATAL(err_buf);
44 return -1;
45}

◆ GetMagicTrailer()

unsigned int GetMagicTrailer ( int  n)
virtual

Get magic number for data corruption check.

Implements RawFTSWFormat.

Definition at line 88 of file RawFTSWFormat_v1.cc.

89{
90 return m_buffer[ GetBufferPos(n) + POS_MAGIC_1 ];
91}

◆ GetNumEntries()

virtual int GetNumEntries ( )
inlinevirtualinherited

get # of data blocks = (# of nodes)*(# of events)

Definition at line 49 of file RawDataBlockFormat.h.

49{ return m_num_events * m_num_nodes; }

◆ GetNumEvents()

virtual int GetNumEvents ( )
inlinevirtualinherited

get # of events in m_buffer

Definition at line 55 of file RawDataBlockFormat.h.

55{ return m_num_events; }

◆ GetNumNodes()

virtual int GetNumNodes ( )
inlinevirtualinherited

get # of data sources(e.g. # of COPPER boards) in m_buffer

Definition at line 52 of file RawDataBlockFormat.h.

52{ return m_num_nodes; }

◆ GetNwordsHeader()

int GetNwordsHeader ( int  n)
virtual

Get # of words of header.

Implements RawFTSWFormat.

Definition at line 72 of file RawFTSWFormat_v1.cc.

73{
74 return m_buffer[ GetBufferPos(n) + POS_HDR_NWORDS ];
75}

◆ GetPCTimeVal()

void GetPCTimeVal ( int  n,
struct timeval *  tv 
)
virtualinherited

Get stored information of getimeofday in a PC.

Reimplemented in RawFTSWFormat_latest.

Definition at line 98 of file RawFTSWFormat.cc.

99{
100 // According to Nakao-san's comment at DAQ meeting on Feb.28, 2020. If one calls this function for older data, just returning 0 values is fine.
101 // No need to either end up with FATAL message or issue any WARNING messages (Actually, WARNING messages would be issued in every event when implemented.)
102 tv->tv_sec = 0;
103 tv->tv_usec = 0;
104
105 return;
106}

◆ GetPreAllocFlag()

virtual int GetPreAllocFlag ( )
inlinevirtualinherited

get malloc_flag

Definition at line 58 of file RawDataBlockFormat.h.

58{ return m_use_prealloc_buf; }

◆ GetTimeSinceLastInjection()

unsigned int GetTimeSinceLastInjection ( int  n)
virtualinherited

Get time since the last injection.

Reimplemented in RawFTSWFormat_latest, and RawFTSWFormat_v2.

Definition at line 49 of file RawFTSWFormat.cc.

50{
51 char err_buf[500];
52 sprintf(err_buf,
53 "[FATAL] This function is not supported in the version of RawFTSW format that you're using. n=%d : %s %s %d: Exiting...\n",
54 n, __FILE__, __PRETTY_FUNCTION__, __LINE__);
55 printf("%s\n", err_buf); fflush(stdout);
56 B2FATAL(err_buf);
57 return -1;
58
59}

◆ GetTimeSincePrevTrigger()

unsigned int GetTimeSincePrevTrigger ( int  n)
virtualinherited

Get time since the previous trigger.

Reimplemented in RawFTSWFormat_latest, and RawFTSWFormat_v2.

Definition at line 61 of file RawFTSWFormat.cc.

62{
63 char err_buf[500];
64 sprintf(err_buf,
65 "[FATAL] This function is not supported in the version of RawFTSW format that you're using. n=%d : %s %s %d: Exiting...\n",
66 n, __FILE__, __PRETTY_FUNCTION__, __LINE__);
67 printf("%s\n", err_buf); fflush(stdout);
68 B2FATAL(err_buf);
69 return -1;
70}

◆ GetTRGType()

int GetTRGType ( int  n)
virtual

Get trgtype.

Implements RawFTSWFormat.

Definition at line 41 of file RawFTSWFormat_v1.cc.

42{
43 return (int)(GetTTCtimeTRGType(n) & TRGTYPE_MASK);
44}
unsigned int GetTTCtimeTRGType(int n) OVERRIDE_CPP17
Get a word containing ctime and trigger type info.

◆ GetTTCtime()

int GetTTCtime ( int  n)
virtual

Get ctime of the trigger.

Implements RawFTSWFormat.

Definition at line 36 of file RawFTSWFormat_v1.cc.

37{
38 return (int)((GetTTCtimeTRGType(n) & TTCTIME_MASK) >> TTCTIME_SHIFT);
39}

◆ GetTTCtimeTRGType()

unsigned int GetTTCtimeTRGType ( int  n)
virtual

Get a word containing ctime and trigger type info.

Implements RawFTSWFormat.

Definition at line 29 of file RawFTSWFormat_v1.cc.

30{
31 return (unsigned int)(m_buffer[ GetBufferPos(n) + POS_TT_CTIME_TRGTYPE ]);
32}

◆ GetTTTimeNs()

unsigned long long int GetTTTimeNs ( int  n)
virtual

Get time in ns since epoch from ctime and utime.

Implements RawFTSWFormat.

Definition at line 67 of file RawFTSWFormat_v1.cc.

68{
69 return (unsigned long long int)GetTTUtime(n) * 1e9 + (long)((double)GetTTCtime(n) / 0.127216);
70}
int GetTTCtime(int n) OVERRIDE_CPP17
Get ctime of the trigger.
unsigned int GetTTUtime(int n) OVERRIDE_CPP17
get unixtime of the trigger

◆ GetTTTimeSpec()

void GetTTTimeSpec ( int  n,
struct timespec *  ts 
)
virtual

Get timespec from ctime and utime.

Implements RawFTSWFormat.

Definition at line 59 of file RawFTSWFormat_v1.cc.

60{
61 ts->tv_sec = GetTTUtime(n);
62 ts->tv_nsec = (long)(((double)GetTTCtime(n)) / 0.127216);
63
64 return ;
65}

◆ GetTTTimeVal()

void GetTTTimeVal ( int  n,
struct timeval *  tv 
)
virtual

Get timeval from ctime and utime.

Implements RawFTSWFormat.

Definition at line 51 of file RawFTSWFormat_v1.cc.

52{
53 tv->tv_sec = GetTTUtime(n);
54 tv->tv_usec = (int)(((double)GetTTCtime(n)) / 127.216);
55
56 return ;
57}

◆ GetTTUtime()

unsigned int GetTTUtime ( int  n)
virtual

get unixtime of the trigger

Implements RawFTSWFormat.

Definition at line 46 of file RawFTSWFormat_v1.cc.

47{
48 return (unsigned int)(m_buffer[ GetBufferPos(n) + POS_TT_UTIME ]);
49}

◆ GetWholeBuffer()

int * GetWholeBuffer ( )
virtualinherited

get pointer to buffer(m_buffer)

Definition at line 119 of file RawDataBlockFormat.cc.

120{
121 return m_buffer;
122}

◆ PrintData()

void PrintData ( int *  buf,
int  nwords 
)
virtualinherited

print data

Definition at line 161 of file RawDataBlockFormat.cc.

162{
163 printf("[DEBUG] ");
164 for (int i = 0; i < nwords; i++) {
165 printf("%.8x ", buf[ i ]);
166 if (i % 10 == 9) printf("\n[DEBUG] ");
167 }
168 printf("\n[DEBUG] ");
169 printf("\n");
170 return;
171}

◆ SetBuffer()

void SetBuffer ( int *  bufin,
int  nwords,
int  delete_flag,
int  num_events,
int  num_nodes 
)
virtualinherited

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

Definition at line 131 of file RawDataBlockFormat.cc.

132{
133
134 if (bufin == NULL) {
135 char err_buf[500];
136 sprintf(err_buf, "[DEBUG] bufin is NULL. Exting...\n");
137 printf("%s", err_buf); fflush(stdout);
138 B2FATAL(err_buf);
139 }
140
141 if (!m_use_prealloc_buf && m_buffer != NULL) delete[] m_buffer;
142
143 if (delete_flag == 0) {
144 m_use_prealloc_buf = true;
145 } else {
146 m_use_prealloc_buf = false;
147 }
148
149 m_nwords = nwords;
150 m_buffer = bufin;
151
152 m_num_nodes = num_nodes;
153 m_num_events = num_events;
154
155 return;
156
157}

◆ TotalBufNwords()

int TotalBufNwords ( )
virtualinherited

Get total length of m_buffer.

Definition at line 101 of file RawDataBlockFormat.cc.

102{
103 return m_nwords;
104}

Member Data Documentation

◆ m_buffer

int* m_buffer
protectedinherited

Buffer.

Definition at line 98 of file RawDataBlockFormat.h.

◆ m_num_events

int m_num_events
protectedinherited

number of events in this object

Definition at line 95 of file RawDataBlockFormat.h.

◆ m_num_nodes

int m_num_nodes
protectedinherited

number of nodes in this object

Definition at line 92 of file RawDataBlockFormat.h.

◆ m_nwords

int m_nwords
protectedinherited

number of words of buffer

Definition at line 89 of file RawDataBlockFormat.h.

◆ 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: