9#ifndef RAWCOPPERFORMAT_H
10#define RAWCOPPERFORMAT_H
16#include <rawdata/RawCOPPERPackerInfo.h>
17#include <rawdata/dataobjects/RawDataBlockFormat.h>
24#define DETECTOR_MASK 0xFF000000
25#define COPPERID_MASK 0x00FFFFFF
26#define SVD_ID 0x01000000
27#define CDC_ID 0x02000000
28#define TOP_ID 0x03000000
29#define ARICH_ID 0x04000000
30#define BECL_ID 0x05000000
31#define EECL_ID 0x06000000
32#define BKLM_ID 0x07000000
33#define EKLM_ID 0x08000000
34#define TRGDATA_ID 0x10000000
35#define CDCTRGDATA_ID 0x11000000
36#define TOPTRGDATA_ID 0x12000000
37#define ECLTRGDATA_ID 0x13000000
38#define KLMTRGDATA_ID 0x14000000
39#define GDLTRGDATA_ID 0x15000000
279#ifdef USE_B2LFEE_FORMAT_BOTH_VER1_AND_2
281 virtual void CheckB2LFEEHeaderVersion(
int n) = 0;
292 unsigned int prev_eve32,
unsigned int prev_exprunsubrun_no,
unsigned int* cur_exprunsubrun_no) = 0;
303 unsigned int prev_evenum,
unsigned int* cur_evenum,
304 unsigned int prev_copper_ctr,
unsigned int* cur_copper_ctr,
305 unsigned int prev_exprunsubrun_no,
unsigned int* cur_exprunsubrun_no) = 0;
324 int* detector_buf_1st,
int nwords_1st,
325 int* detector_buf_2nd,
int nwords_2nd,
326 int* detector_buf_3rd,
int nwords_3rd,
327 int* detector_buf_4th,
int nwords_4th,
332 int*
const(&detector_buf_ch)[MAX_PCIE40_CH],
333 int const(&nwords_ch)[MAX_PCIE40_CH],
340 virtual void CompareHeaderValue(
int n,
const unsigned int (&input_val)[MAX_PCIE40_CH],
341 std::vector<std::vector< unsigned int> >& result);
344 virtual void GetNodeName(
int n,
char* node_name,
int bufsize);
347 virtual void GetNodeName(
char* node_name,
unsigned int node_id,
int bufsize);
401 printf(
"[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n",
m_nwords, pos_nwords);
402 for (
int i = 0; i <
m_nwords; i++) {
404 if ((i % 10) == 9) printf(
"\n");
406 B2FATAL(
"Data size is smaller than data position info. Exiting...");
415 printf(
"[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n",
m_nwords, pos_nwords);
416 for (
int i = 0; i <
m_nwords; i++) {
418 if ((i % 10) == 9) printf(
"\n");
420 B2FATAL(
"Data size is smaller than data position info. Exiting...");
429 printf(
"[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n",
m_nwords, pos_nwords);
430 for (
int i = 0; i <
m_nwords; i++) {
432 if ((i % 10) == 9) printf(
"\n");
434 B2FATAL(
"Data size is smaller than data position info. Exiting...");
443 printf(
"[DEBUG] Data size(0x%.8x) is smaller than data position info(0x%.8x). Exiting...\n",
m_nwords, pos_nwords);
444 for (
int i = 0; i <
m_nwords; i++) {
446 if ((i % 10) == 9) printf(
"\n");
448 B2FATAL(
"Data size is smaller than data position info. Exiting...");
struct to contain header information used by RawCOPPERFormat::Packer()
virtual int * GetRawHdrBufPtr(int n)
get buffer pointer of rawcopper header(Currently same as GetBufferPos)
virtual int * Get3rdFINESSEBuffer(int n)
get FINESSE buffer pointer for slot C
virtual int GetOffset2ndFINESSE(int n)
get # of offset words for FINESSE slot B buffer position
virtual int * Get2ndFINESSEBuffer(int n)
get FINESSE buffer pointer for slot B
virtual int GetOffset4thFINESSE(int n)
get # of offset words for FINESSE slot D buffer position
virtual int GetOffset3rdFINESSE(int n)
get # of offset words for FINESSE slot C buffer position
virtual int * Get4thFINESSEBuffer(int n)
get FINESSE buffer pointer for slot D
virtual int * Get1stFINESSEBuffer(int n)
get FINESSE buffer pointer for slot A
Abstract base class for different kinds of events.