Belle II Software  release-05-01-25
RawFTSWFormat_v2.h
1 //+
2 // File : RawFTSWFormat_v2.h
3 // Description : Module to handle raw data from COPPER
4 //
5 // Author : Satoru Yamada, IPNS, KEK
6 // Date : 7 - Mar - 2016
7 //-
8 
9 #ifndef RAWFTSWFORMAT_V2_H
10 #define RAWFTSWFORMAT_V2_H
11 #include <rawdata/dataobjects/RawFTSWFormat.h>
12 #include "rawdata/switch_basf2_standalone.h"
13 
14 namespace Belle2 {
26  public:
27 
31  //RawFTSWFormat_v2(int* bufin, int nwords);
33  virtual ~RawFTSWFormat_v2();
34 
35  /* //! Get # of words in this buffer */
36  /* int GetNwords(int n); */
37 
39  int GetNwordsHeader(int n) OVERRIDE_CPP17;
40 
42  unsigned int GetFTSWNodeID(int n) OVERRIDE_CPP17;
43 
45  unsigned int GetEveNo(int n) OVERRIDE_CPP17;
46 
48  unsigned int GetTTCtimeTRGType(int n) OVERRIDE_CPP17;
49 
51  unsigned int GetTTUtime(int n) OVERRIDE_CPP17;
52 
54  int GetTTCtime(int n) OVERRIDE_CPP17;
55 
57  int GetTRGType(int n) OVERRIDE_CPP17;
58 
60  void GetTTTimeVal(int n, struct timeval* tv) OVERRIDE_CPP17;
61 
63  void GetTTTimeSpec(int n, struct timespec* ts) OVERRIDE_CPP17;
64 
66  unsigned long long int GetTTTimeNs(int n) OVERRIDE_CPP17;
67 
69  unsigned int GetMagicTrailer(int n) OVERRIDE_CPP17;
70 
71 
72 
74  void CheckData(int n,
75  unsigned int prev_evenum, unsigned int* cur_evenum,
76  unsigned int prev_exprunsubrun_no, unsigned int* cur_exprunsubrun_no) OVERRIDE_CPP17;
77 
79  unsigned int GetExpRunSubrun(int n) OVERRIDE_CPP17;
80 
82  int GetRunNo(int n) OVERRIDE_CPP17;
83 
84 
86  int GetSubRunNo(int n) OVERRIDE_CPP17;
87 
89  int GetRunNoSubRunNo(int n) OVERRIDE_CPP17;
90 
92  int GetExpNo(int n) OVERRIDE_CPP17;
93 
95  int GetIsHER(int n) OVERRIDE_CPP17;
96 
98  unsigned int GetTimeSinceLastInjection(int n) OVERRIDE_CPP17;
99 
101  unsigned int GetTimeSincePrevTrigger(int n) OVERRIDE_CPP17;
102 
104  unsigned int GetBunchNumber(int n) OVERRIDE_CPP17;
105 
107  unsigned int GetFrameCount(int n) OVERRIDE_CPP17;
108 
110  enum {
111  POS_NWORDS = 0, // same as v.1( late-DESY ver.)
112  POS_HDR_NWORDS = 1, // same as v.1
113  POS_NUMEVE_NUMNODES = 2, // same as v.1
114  POS_EXP_RUN_NO = 3, // same as v.1
115  POS_EVE_NO_1 = 4, // same as v.1
116  POS_NA_1 = 5, // same as v.1
117  POS_NODE_ID = 6, // same as v.1
118  POS_NA_2 = 7 // same as v.1
119  };
120 
122  enum {
123  POS_TT_CTIME_TRGTYPE = 8, // same as v.1
124  POS_TT_UTIME = 9, // same as v.1
125  POS_EVE_NO_2 = 10,
126  POS_FRAME_COUNT = 11,
127  POS_TIME_SINCE_PREV_TRG = 12,
128  POS_INJECTION_INFO = 13,
129  POS_BUNCH_NUM = 14
130  };
131 
133  enum {
134  POS_RSVD_1 = 20, // same as v.1 but position is shifted
135  POS_MAGIC_1 = 21 // same as v.1 but position is shifted
136  };
137 
138  enum {
139  INJ_HER_LER_MASK = 0x80000000,
140  INJ_HER_LER_SHIFT = 31,
141  INJ_TIME_MASK = 0x7FFFFFFF,
142  INJ_TIME_SHIFT = 0,
143  INJ_BUNCH_MASK = 0x000007FF,
144  INJ_BUNCH_SHIFT = 0,
145  EXP_MASK = 0xFFC00000,
146  EXP_SHIFT = 22,
147  RUNNO_MASK = 0x003FFF00,
148  RUNNO_SHIFT = 8,
149  SUBRUNNO_MASK = 0x000000FF,
150  TTCTIME_MASK = 0x7FFFFFF0,
151  TTCTIME_SHIFT = 4,
152  TRGTYPE_MASK = 0xF
153  };
154 
155  enum {
156  SIZE_FTSW_PACKET = 22
157  };
158  //#endif
159 
160  enum {
161  FTSW_MAGIC_TRAILER = 0x7FFF0000
162  };
163 
164  protected :
165 
166  };
167 
168  inline unsigned int RawFTSWFormat_v2::GetExpRunSubrun(int n)
169  {
170  return (unsigned int)(m_buffer[ GetBufferPos(n) + POS_EXP_RUN_NO ]);
171 
172  }
173 
174 
175  inline int RawFTSWFormat_v2::GetRunNo(int n)
176  {
177  return (((unsigned int)(m_buffer[ GetBufferPos(n) + POS_EXP_RUN_NO ]) & RUNNO_MASK)
178  >> RUNNO_SHIFT);
179  }
180 
182  {
183  return (m_buffer[ GetBufferPos(n) + POS_EXP_RUN_NO ] & SUBRUNNO_MASK);
184  }
185 
187  {
188  return ((unsigned int)(m_buffer[ GetBufferPos(n) + POS_EXP_RUN_NO ]) &
189  (RUNNO_MASK | SUBRUNNO_MASK));
190  }
191 
192  inline int RawFTSWFormat_v2::GetExpNo(int n)
193  {
194  return (((unsigned int)(m_buffer[ GetBufferPos(n) + POS_EXP_RUN_NO ]) & EXP_MASK)
195  >> EXP_SHIFT);
196  }
197 
199 }
200 
201 #endif
Belle2::RawFTSWFormat_v2::GetFrameCount
unsigned int GetFrameCount(int n) OVERRIDE_CPP17
Get a frame count.
Definition: RawFTSWFormat_v2.cc:116
Belle2::RawFTSWFormat_v2::GetTRGType
int GetTRGType(int n) OVERRIDE_CPP17
Get trgtype.
Definition: RawFTSWFormat_v2.cc:35
Belle2::RawFTSWFormat_v2::GetMagicTrailer
unsigned int GetMagicTrailer(int n) OVERRIDE_CPP17
Get magic number for data corruption check.
Definition: RawFTSWFormat_v2.cc:82
Belle2::RawFTSWFormat_v2::GetTTTimeNs
unsigned long long int GetTTTimeNs(int n) OVERRIDE_CPP17
Get time in ns since epoch from ctime and utime.
Definition: RawFTSWFormat_v2.cc:61
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::RawFTSWFormat_v2::RawFTSWFormat_v2
RawFTSWFormat_v2()
Default constructor.
Definition: RawFTSWFormat_v2.cc:14
Belle2::RawFTSWFormat_v2::CheckData
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
Definition: RawFTSWFormat_v2.cc:124
Belle2::RawFTSWFormat_v2
The Raw FTSW class ver.2 .
Definition: RawFTSWFormat_v2.h:25
Belle2::RawFTSWFormat_v2::GetBunchNumber
unsigned int GetBunchNumber(int n) OVERRIDE_CPP17
Get a bunch number.
Definition: RawFTSWFormat_v2.cc:109
Belle2::RawFTSWFormat_v2::GetEveNo
unsigned int GetEveNo(int n) OVERRIDE_CPP17
Get event #.
Definition: RawFTSWFormat_v2.cc:77
Belle2::RawFTSWFormat_v2::GetTTUtime
unsigned int GetTTUtime(int n) OVERRIDE_CPP17
get unixtime of the trigger
Definition: RawFTSWFormat_v2.cc:40
Belle2::RawFTSWFormat_v2::GetRunNoSubRunNo
int GetRunNoSubRunNo(int n) OVERRIDE_CPP17
get a word cotaining run # and subrun #
Definition: RawFTSWFormat_v2.h:186
Belle2::RawFTSWFormat_v2::GetTTTimeVal
void GetTTTimeVal(int n, struct timeval *tv) OVERRIDE_CPP17
Get timeval from ctime and utime.
Definition: RawFTSWFormat_v2.cc:45
Belle2::RawFTSWFormat_v2::GetTTTimeSpec
void GetTTTimeSpec(int n, struct timespec *ts) OVERRIDE_CPP17
Get timespec from ctime and utime.
Definition: RawFTSWFormat_v2.cc:53
Belle2::RawFTSWFormat_v2::GetExpRunSubrun
unsigned int GetExpRunSubrun(int n) OVERRIDE_CPP17
Exp# (10bit) run# (14bit) restart # (8bit)
Definition: RawFTSWFormat_v2.h:168
Belle2::RawFTSWFormat_v2::GetFTSWNodeID
unsigned int GetFTSWNodeID(int n) OVERRIDE_CPP17
Get Node # ( should be "TTD " )
Definition: RawFTSWFormat_v2.cc:72
Belle2::RawFTSWFormat_v2::~RawFTSWFormat_v2
virtual ~RawFTSWFormat_v2()
Constructor using existing pointer to raw data buffer.
Definition: RawFTSWFormat_v2.cc:18
Belle2::RawFTSWFormat_v2::GetTimeSincePrevTrigger
unsigned int GetTimeSincePrevTrigger(int n) OVERRIDE_CPP17
Get time since the previous trigger.
Definition: RawFTSWFormat_v2.cc:102
Belle2::RawFTSWFormat_v2::GetTimeSinceLastInjection
unsigned int GetTimeSinceLastInjection(int n) OVERRIDE_CPP17
Get time since the last injection.
Definition: RawFTSWFormat_v2.cc:95
Belle2::RawFTSWFormat_v2::GetNwordsHeader
int GetNwordsHeader(int n) OVERRIDE_CPP17
Get # of words of header.
Definition: RawFTSWFormat_v2.cc:66
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::RawFTSWFormat_v2::GetIsHER
int GetIsHER(int n) OVERRIDE_CPP17
HER injection = 1 or LER injection = 0.
Definition: RawFTSWFormat_v2.cc:87
Belle2::RawFTSWFormat_v2::GetTTCtime
int GetTTCtime(int n) OVERRIDE_CPP17
Get ctime of the trigger.
Definition: RawFTSWFormat_v2.cc:30
Belle2::RawFTSWFormat_v2::GetExpNo
int GetExpNo(int n) OVERRIDE_CPP17
Get Exp #.
Definition: RawFTSWFormat_v2.h:192
Belle2::RawFTSWFormat
The Raw FTSW class.
Definition: RawFTSWFormat.h:24
Belle2::RawFTSWFormat_v2::GetRunNo
int GetRunNo(int n) OVERRIDE_CPP17
Get run #.
Definition: RawFTSWFormat_v2.h:175
Belle2::RawFTSWFormat_v2::GetSubRunNo
int GetSubRunNo(int n) OVERRIDE_CPP17
Get subrun #.
Definition: RawFTSWFormat_v2.h:181
Belle2::RawFTSWFormat_v2::GetTTCtimeTRGType
unsigned int GetTTCtimeTRGType(int n) OVERRIDE_CPP17
Get a word containing ctime and trigger type info.
Definition: RawFTSWFormat_v2.cc:23