2 #ifndef EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H
3 #define EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H
15 class RawToClustersLazyUnpacker;
18 class RawToDigiUnpacker;
32 friend class RawToClustersLazyUnpacker;
40 int16_t fed_buffer_dump_freq,
41 int16_t fed_event_dump_freq,
42 int16_t trigger_fed_id,
44 bool unpack_bad_channels,
45 bool mark_missing_feds,
46 const uint32_t errorThreshold);
69 inline void quiet(
bool);
72 inline void useDaqRegister(
bool);
74 inline void extractCm(
bool);
76 inline void doFullCorruptBufferChecks(
bool);
78 inline void doAPVEmulatorCheck(
bool);
80 inline void legacy(
bool);
87 RawDigis& scope_mode, RawDigis& virgin_raw, RawDigis& proc_raw, Digis& zero_suppr, RawDigis& common_mode);
96 inline void readoutOrder(uint16_t& physical_order, uint16_t& readout_order);
99 inline void physicalOrder(uint16_t& readout_order, uint16_t& physical_order);
108 static void dumpRawData(uint16_t fed_id,
const FEDRawData&, std::stringstream&);
111 void cleanupWorkVectors();
117 Registry(uint32_t aDetid, uint16_t firstStrip,
size_t indexInVector, uint16_t numberOfDigis)
118 : detid(aDetid),
first(firstStrip),
index(indexInVector), length(numberOfDigis) {}
170 readout_order = (4 * ((static_cast<uint16_t>((static_cast<float>(physical_order) / 8.0))) % 4) +
171 static_cast<uint16_t>(static_cast<float>(physical_order) / 32.0) + 16 * (physical_order % 8));
175 physical_order = ((32 * (readout_order % 4)) + (8 * static_cast<uint16_t>(static_cast<float>(readout_order) / 4.0)) -
176 (31 * static_cast<uint16_t>(static_cast<float>(readout_order) / 16.0)));
180 if ((register_value & 0xF) == 0
x1) {
182 }
else if ((register_value & 0xF) == 0
x2) {
184 }
else if ((register_value & 0xF) == 0x0) {
192 return static_cast<sistrip::FedReadoutMode>(register_value & 0xF);
202 doFullCorruptBufferChecks_ = do_full_corrupt_buffer_checks;
206 doAPVEmulatorCheck_ = do_APVEmulator_check;
211 #endif // EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H