1 #ifndef EventFilter_RPCRawToDigi_RPCTwinMuxRecord_h 2 #define EventFilter_RPCRawToDigi_RPCTwinMuxRecord_h 46 static unsigned int const ufov_offset_ = 60;
47 static unsigned int const n_amc_offset_ = 52;
48 static unsigned int const orbit_counter_offset_ = 4;
52 BlockHeader(
unsigned int ufov,
unsigned int n_amc,
unsigned int orbit_counter);
59 unsigned int getFirmwareVersion()
const;
60 unsigned int getNAMC()
const;
61 unsigned int getOrbitCounter()
const;
63 void setFirmwareVersion(
unsigned int ufov);
64 void setNAMC(
unsigned int n_amc);
65 void setOrbitCounter(
unsigned int orbit_counter);
79 static unsigned int const crc_offset_ = 32;
80 static unsigned int const block_number_offset_ = 20;
81 static unsigned int const event_counter_offset_ = 12;
82 static unsigned int const bx_counter_offset_ = 0;
87 ,
unsigned int block_number
88 ,
unsigned int event_counter
89 ,
unsigned int bx_counter);
96 std::uint32_t getCRC()
const;
97 unsigned int getBlockNumber()
const;
98 unsigned int getEventCounter()
const;
99 unsigned int getBXCounter()
const;
101 void setCRC(std::uint32_t crc);
102 void setBlockNumber(
unsigned int block_number);
103 void setEventCounter(
unsigned int event_counter);
104 void setBXCounter(
unsigned int bx_counter);
125 static unsigned int const size_offset_ = 32;
126 static unsigned int const block_number_offset_ = 20;
127 static unsigned int const amc_number_offset_ = 16;
128 static unsigned int const board_id_offset_ = 0;
140 ,
unsigned int block_number
141 ,
unsigned int amc_number
142 ,
unsigned int board_id);
149 bool isLengthCorrect()
const;
150 bool isLastBlock()
const;
151 bool isFirstBlock()
const;
152 bool isEnabled()
const;
153 bool isPresent()
const;
154 bool isValid()
const;
155 bool isCRCOk()
const;
156 unsigned int getSize()
const;
157 unsigned int getBlockNumber()
const;
158 unsigned int getAMCNumber()
const;
159 unsigned int getBoardId()
const;
161 void setLengthCorrect(
bool length_correct);
162 void setLastBlock(
bool last_block);
163 void setFirstBlock(
bool first_block);
165 void setPresent(
bool present);
166 void setValid(
bool valid);
167 void setCRCOk(
bool crc_ok);
168 void setSize(
unsigned int size);
169 void setBlockNumber(
unsigned int block_number);
170 void setAMCNumber(
unsigned int amc_number);
171 void setBoardId(
unsigned int board_id);
186 static unsigned int const amc_number_offset_ = 56;
187 static unsigned int const event_counter_offset_ = 32;
188 static unsigned int const bx_counter_offset_ = 20;
189 static unsigned int const data_length_offset_ = 0;
195 static unsigned int const orbit_counter_offset_ = 16;
196 static unsigned int const board_id_offset_ = 0;
202 static unsigned int const dt_bx_window_offset_ = 32;
203 static unsigned int const rpc_bx_window_offset_ = 37;
204 static unsigned int const ho_bx_window_offset_ = 42;
210 ,
unsigned int event_counter
211 ,
unsigned int bx_counter
212 ,
unsigned int data_length
213 ,
unsigned int orbit_counter
214 ,
unsigned int board_id
215 ,
unsigned int dt_bx_window = 0x1f
216 ,
int rpc_bx_min = 10,
int rpc_bx_max = 5
217 ,
unsigned int ho_bx_window = 0x7);
224 unsigned int getAMCNumber()
const;
225 unsigned int getEventCounter()
const;
226 unsigned int getBXCounter()
const;
227 unsigned int getDataLength()
const;
229 unsigned int getOrbitCounter()
const;
230 unsigned int getBoardId()
const;
232 bool hasDTBXWindow()
const;
233 unsigned int getDTBXWindow()
const;
234 bool hasRPCBXWindow()
const;
235 int getRPCBXMin()
const;
236 int getRPCBXMax()
const;
237 bool hasHOBXWindow()
const;
238 unsigned int getHOBXWindow()
const;
240 void setAMCNumber(
unsigned int amc_number);
241 void setEventCounter(
unsigned int event_counter);
242 void setBXCounter(
unsigned int bx_counter);
243 void setDataLength(
unsigned int data_length);
245 void setOrbitCounter(
unsigned int orbit_counter);
246 void setBoardId(
unsigned int board_id);
248 void setDTBXWindow(
unsigned int bx_window = 0x1f);
249 void setRPCBXWindow(
int bx_min = 10,
int bx_max = 5);
250 void setHOBXWindow(
unsigned int bx_window = 0x7);
263 static unsigned int const crc_offset_ = 32;
264 static unsigned int const event_counter_offset_ = 24;
265 static unsigned int const data_length_offset_ = 0;
270 ,
unsigned int event_counter
271 ,
unsigned int data_length);
278 std::uint32_t getCRC()
const;
279 unsigned int getEventCounter()
const;
280 unsigned int getDataLength()
const;
282 void setCRC(std::uint32_t crc);
283 void setEventCounter(
unsigned int event_counter);
284 void setDataLength(
unsigned int data_length);
293 static std::uint32_t
const da_mask_ = 0x080000;
294 static std::uint32_t
const de_mask_ = 0x040000;
295 static std::uint32_t
const eod_mask_ = 0x020000;
296 static std::uint32_t
const delay_mask_ = 0x01c000;
297 static std::uint32_t
const link_board_mask_ = 0x003000;
298 static std::uint32_t
const connector_mask_ = 0x000e00;
299 static std::uint32_t
const partition_mask_ = 0x000100;
300 static std::uint32_t
const partition_data_mask_ = 0x0000ff;
302 static unsigned int const delay_offset_ = 14;
303 static unsigned int const link_board_offset_ = 12;
304 static unsigned int const connector_offset_ = 9;
305 static unsigned int const partition_offset_ = 8;
306 static unsigned int const partition_data_offset_ = 0;
311 void set(std::uint32_t
const record = da_mask_);
316 bool isAcknowledge()
const;
317 bool isError()
const;
319 unsigned int getDelay()
const;
320 unsigned int getLinkBoard()
const;
321 unsigned int getConnector()
const;
322 unsigned int getPartition()
const;
323 std::uint8_t getPartitionData()
const;
325 void setAcknowledge(
bool da);
327 void setEOD(
bool eod);
328 void setDelay(
unsigned int delay);
329 void setLinkBoard(
unsigned int link_board);
330 void setConnector(
unsigned int connector);
331 void setPartition(
unsigned int partition);
332 void setPartitionData(std::uint8_t
data);
341 static std::uint8_t
const bc0_mask_ = 0x04;
342 static std::uint8_t
const bcn_mask_ = 0x03;
343 static unsigned int const bcn_offset_ = 0;
348 void set(std::uint8_t
const record = 0x0);
354 unsigned int getBXCounter()
const;
356 void setBC0(
bool bc0);
357 void setBXCounter(
unsigned int bcn);
369 static unsigned int const bx_offset_offset_ = 56;
372 static unsigned int const link_record_word_[5];
373 static unsigned int const link_record_offset_[5];
376 static unsigned int const bx_record_offset_[5];
387 int getBXOffset()
const;
388 bool hasOverflow()
const;
389 RPCBXRecord getRPCBXRecord(
unsigned int link)
const;
392 void setBXOffset(
int bx_offset);
393 void setOverflow (
bool overflow);
394 void setRPCBXRecord(
unsigned int link,
RPCBXRecord const & bx_record);
395 void setRPCLinkRecord(
unsigned int link,
RPCLinkRecord const & link_record);
403 #include "EventFilter/RPCRawToDigi/interface/RPCTwinMuxRecord.icc" 405 #endif // EventFilter_RPCRawToDigi_RPCTwinMuxRecord_h
static std::uint64_t const rpc_second_identifier_mask_
std::uint64_t const & getRecord() const
static std::uint64_t const rpc_second_identifier_
static unsigned int const unknown_type_
static std::uint64_t const rpc_first_identifier_mask_
unsigned int getType() const
static std::uint64_t const error_identifier_mask_
static unsigned int const rpc_first_type_
static unsigned int const rpc_second_type_
unsigned long long uint64_t
static std::uint64_t const rpc_first_identifier_
char data[epos_bytes_allocation]
static std::uint64_t const error_identifier_
TwinMuxRecord(std::uint64_t const record=0x0)
static unsigned int const error_type_