11 #include <bits/stdc++.h>
14 #include "STMDAQ-TestBeam/utils/Hex.hh"
17 #include "STMDAQ-TestBeam/utils/xml.hh"
18 #include "STMDAQ-TestBeam/utils/EnvVars.hh"
20 #ifndef DATAVARS_hh_DEFINED
21 #define DATAVARS_hh_DEFINED
26 static const uint INT16_T_MAX = 32767;
28 static const uint16_t UINT16_T_MAX = 0xFFFF;
30 static const uint32_t UINT32_T_MAX = 0XFFFFFFFF;
33 static const int CHNUM = 2;
35 static const int HPGE = 0;
37 static const int LABR = 1;
40 static const int FW = 0;
42 static const int SW = 1;
44 static const int DQM = 2;
48 static const uint16_t MAX_PACKET_SIZE = 8198;
50 static const uint16_t MAX_PACKET_LEN = MAX_PACKET_SIZE/2;
67 static const uint slicesPerPacket = 2;
69 static const uint on_spill_len = 510;
70 static const uint on_spill_size = 2*on_spill_len;
72 static const uint off_spill_len = 30000;
73 static const uint off_spill_size = 2*off_spill_len;
76 static const uint fw_pHdr_Size = 6;
78 static const uint fw_pHdr_Len = fw_pHdr_Size/2;
80 static const uint fw_pHdr_pNum1 = 0;
81 static const uint fw_pHdr_pNum2 = 1;
82 static const uint fw_pHdr_end = 2;
83 static const uint16_t fw_pHdr_end_data = 0xFFEE;
86 static const uint16_t DEAD = 0xDEAD;
87 static const uint16_t BEEF = 0xBEEF;
90 static const uint fw_tHdr_Size = 64;
92 static const uint fw_tHdr_Len = fw_tHdr_Size/2;
95 static constexpr
int testArr[2] = {1,2};
102 static const uint size = fw_tHdr_Size;
104 static const uint len = fw_tHdr_Len;
107 static const uint HdrStart_0 = 0;
108 static const uint HdrStart_1 = 1;
109 static const uint HdrStart_2 = 2;
110 static const uint HdrStart_3 = 3;
111 static const uint ADCclk_0 = 4;
112 static const uint ADCclk_1 = 5;
113 static const uint ADCclk_2 = 6;
114 static const uint ADCclk_3 = 7;
115 static const uint EvNum_0 = 8;
116 static const uint EvNum_1 = 9;
117 static const uint EvNum_2 = 10;
118 static const uint EWT_0 = 11;
119 static const uint EWT_1 = 12;
120 static const uint EWT_2 = 13;
121 static const uint EM_0 = 14;
122 static const uint EM_1 = 15;
123 static const uint EM_2_DRTDC = 16;
124 static const uint EvStart = 17;
125 static const uint EvInPacket = 18;
126 static const uint Beef = 19;
127 static const uint SubRunNum_0 = 20;
128 static const uint SubRunNum_1 = 21;
129 static const uint ZSflag_PreVal = 22;
130 static const uint EvLen = 23;
131 static const uint RunNum_0 = 24;
132 static const uint RunNum_1 = 25;
133 static const uint RunNum_2 = 26;
134 static const uint RunNum_3 = 27;
135 static const uint Ch_DTCclk_0 = 28;
136 static const uint DTCclk_1 = 29;
137 static const uint DTCclk_2 = 30;
138 static const uint DTCclk_3 = 31;
141 static const uint HdrStart_size = 8;
143 static const uint HdrStart_len = HdrStart_size/2;
145 static const uint HdrStart_start = 0;
148 static const int16_t HdrStart_data[HdrStart_len];
159 double trigger_time_clock;
161 double macropulse_width;
163 double macropulse_freq;
166 double adc_time_clock;
168 double adc_time_clock_period;
171 double adc_offset_time_clock;
177 uint32_t ext_ADC_offset;
179 uint32_t ext_slice_length;
181 uint16_t ext_slice_num;
185 uint32_t ext_trig_timeout;
189 uint32_t ext_int_delay;
192 uint16_t int_trig_num;
194 uint32_t int_ADC_offset;
196 uint32_t int_slice_length;
198 uint16_t int_slice_num;
201 double ext_sample_time;
203 double int_sample_time;
223 uint32_t make_uint32_t(int16_t p0, int16_t p1);
226 uint64_t make_uint64_t(int16_t p0, int16_t p1, int16_t p2, int16_t p3);
229 int16_t* split_uint32_t(uint32_t value);
232 int16_t* split_uint64_t(uint64_t value);
235 uint64_t get_event_number(int16_t *
data, uint64_t hdr_start_loc);
238 uint64_t get_EWT(int16_t *
data, uint64_t hdr_start_loc);
241 uint16_t check_dead_beef(int16_t*
data, uint64_t packet_start, uint16_t leftInPacket);
257 int16_t tpacket[MAX_PACKET_LEN] = {};
271 uint16_t size = fw_tHdr_Size + on_spill_size;
273 int16_t
data[fw_tHdr_Len + on_spill_len] = {};
285 int16_t
data[fw_tHdr_Len + off_spill_len] = {};
291 uint16_t size = fw_tHdr_Size;
293 int16_t
data[fw_tHdr_Len] = {};