2 #ifndef EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H 3 #define EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H 14 class RawToClustersLazyUnpacker;
17 class RawToDigiUnpacker;
31 friend class RawToClustersLazyUnpacker;
39 int16_t fed_buffer_dump_freq,
40 int16_t fed_event_dump_freq,
41 int16_t trigger_fed_id,
43 bool unpack_bad_channels,
44 bool mark_missing_feds,
45 const uint32_t errorThreshold);
59 RawDigis& common_mode);
68 inline void quiet(
bool);
71 inline void useDaqRegister(
bool);
73 inline void extractCm(
bool);
75 inline void doFullCorruptBufferChecks(
bool);
77 inline void doAPVEmulatorCheck(
bool);
79 inline void legacy(
bool);
86 RawDigis& scope_mode, RawDigis& virgin_raw, RawDigis& proc_raw, Digis& zero_suppr, RawDigis& common_mode);
95 inline void readoutOrder(uint16_t& physical_order, uint16_t& readout_order);
98 inline void physicalOrder(uint16_t& readout_order, uint16_t& physical_order);
107 static void dumpRawData(uint16_t fed_id,
const FEDRawData&, std::stringstream&);
113 void cleanupWorkVectors();
119 Registry(uint32_t aDetid, uint16_t firstStrip,
size_t indexInVector, uint16_t numberOfDigis)
120 : detid(aDetid),
first(firstStrip),
index(indexInVector), length(numberOfDigis) {}
172 readout_order = (4 * ((
static_cast<uint16_t
>((
static_cast<float>(physical_order) / 8.0))) % 4) +
173 static_cast<uint16_t>(static_cast<float>(physical_order) / 32.0) + 16 * (physical_order % 8));
177 physical_order = ((32 * (readout_order % 4)) + (8 *
static_cast<uint16_t
>(
static_cast<float>(readout_order) / 4.0)) -
178 (31 * static_cast<uint16_t>(static_cast<float>(readout_order) / 16.0)));
182 if ((register_value & 0xF) == 0
x1) {
184 }
else if ((register_value & 0xF) == 0
x2) {
186 }
else if ((register_value & 0xF) == 0x0) {
204 doFullCorruptBufferChecks_ = do_full_corrupt_buffer_checks;
208 doAPVEmulatorCheck_ = do_APVEmulator_check;
213 #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
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