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 );
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...
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
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