2 #ifndef EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H 3 #define EventFilter_SiStripRawToDigi_SiStripRawToDigiUnpacker_H 10 #include "boost/cstdint.hpp" 16 namespace sistrip {
class RawToClustersLazyUnpacker; }
17 namespace sistrip {
class RawToDigiUnpacker; }
31 friend class RawToClustersLazyUnpacker;
39 RawToDigiUnpacker( int16_t appended_bytes, int16_t fed_buffer_dump_freq, int16_t fed_event_dump_freq, int16_t trigger_fed_id,
bool using_fed_key,
40 bool unpack_bad_channels,
bool mark_missing_feds,
const uint32_t errorThreshold );
55 inline void quiet(
bool );
58 inline void useDaqRegister(
bool );
60 inline void extractCm(
bool );
62 inline void doFullCorruptBufferChecks(
bool );
64 inline void doAPVEmulatorCheck(
bool );
66 inline void legacy(
bool );
71 void update( RawDigis& scope_mode, RawDigis& virgin_raw, RawDigis& proc_raw, Digis& zero_suppr, RawDigis& common_mode );
80 inline void readoutOrder( uint16_t& physical_order, uint16_t& readout_order );
83 inline void physicalOrder( uint16_t& readout_order, uint16_t& physical_order );
92 static void dumpRawData( uint16_t fed_id,
const FEDRawData&, std::stringstream& );
98 void cleanupWorkVectors();
104 Registry(uint32_t aDetid, uint16_t firstStrip,
size_t indexInVector, uint16_t numberOfDigis) :
105 detid(aDetid),
first(firstStrip),
index(indexInVector), length(numberOfDigis) {}
155 readout_order = ( 4*((
static_cast<uint16_t
>((
static_cast<float>(physical_order)/8.0)))%4) + static_cast<uint16_t>(static_cast<float>(physical_order)/32.0) + 16*(physical_order%8) );
160 physical_order = ( (32 * (readout_order%4)) + (8 *
static_cast<uint16_t
>(
static_cast<float>(readout_order)/4.0)) - (31 * static_cast<uint16_t>(static_cast<float>(readout_order)/16.0)) );
188 #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_
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