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);
72 inline void quiet(
bool);
75 inline void useDaqRegister(
bool);
77 inline void extractCm(
bool);
79 inline void doFullCorruptBufferChecks(
bool);
81 inline void doAPVEmulatorCheck(
bool);
83 inline void legacy(
bool);
90 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) == 0x1) {
182 }
else if ((register_value & 0xF) == 0x2) {
184 }
else if ((register_value & 0xF) == 0x0) {
202 doFullCorruptBufferChecks_ = do_full_corrupt_buffer_checks;
206 doAPVEmulatorCheck_ = do_APVEmulator_check;
211 #endif // EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H
void useDaqRegister(bool)
EventSummary update request -> not yet implemented for FEDBuffer class.
std::vector< Registry > proc_work_registry_
std::vector< SiStripDigi > zs_work_digis_
digi collections
std::vector< Registry > scope_work_registry_
void doAPVEmulatorCheck(bool)
uint32_t detid
public data members
std::vector< Registry > zs_work_registry_
registries
Registry(uint32_t aDetid, uint16_t firstStrip, size_t indexInVector, uint16_t numberOfDigis)
constructor
void physicalOrder(uint16_t &readout_order, uint16_t &physical_order)
order of strips
sistrip::FedBufferFormat fedBufferFormat(const uint16_t ®ister_value)
returns buffer format
int16_t fedEventDumpFreq_
private class to register start and end index of digis in a collection
static std::string const input
std::vector< SiStripRawDigi > virgin_work_digis_
void readoutOrder(uint16_t &physical_order, uint16_t &readout_order)
order of strips
uint32_t event_
other values
edm::DetSetVector< SiStripRawDigi > RawDigis
int16_t fedBufferDumpFreq_
void printWarningSummary() const
std::vector< SiStripRawDigi > scope_work_digis_
bool doFullCorruptBufferChecks_
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
std::vector< SiStripRawDigi > proc_work_digis_
std::vector< SiStripRawDigi > cm_work_digis_
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
void quiet(bool)
verbosity
bool operator<(const Registry &other) const
< operator to sort registries
uint16_t readoutOrder(uint16_t physical_order)
std::vector< Registry > cm_work_registry_
edm::DetSetVector< SiStripDigi > Digis
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
void doFullCorruptBufferChecks(bool)
std::vector< Registry > virgin_work_registry_
int16_t headerBytes_
configurables
sistrip::FedReadoutMode fedReadoutMode(const uint16_t ®ister_value)
returns buffer readout mode