1 #ifndef EventFilter_L1TRawToDigi_Block_h 2 #define EventFilter_L1TRawToDigi_Block_h 75 const std::vector<uint32_t>&
payload,
76 unsigned int capID = 0,
77 unsigned int flags = 0,
112 virtual std::unique_ptr<Block>
getBlock();
135 std::unique_ptr<Block>
getBlock()
override;
168 int count(
unsigned int pattern,
unsigned int length)
const;
177 std::unique_ptr<Block>
getBlock()
override;
unsigned getHeaderSize() const override
GEM Data Record : block->header().getID() = 7.
BlockHeader getHeader() override
Block of Counters : block->header().getID() = 2.
std::vector< uint32_t > payload_
MP7Payload(const uint32_t *data, const uint32_t *end, bool legacy_mc=false)
Block(const BlockHeader &h, const uint32_t *payload_start, const uint32_t *payload_end)
static constexpr unsigned max_block_length_
maximum of the block length (64bits)
static constexpr unsigned size_mask
Event Record Header : block->header().getID() = 511.
bool valid(unsigned int pattern) const
static constexpr unsigned header_size
virtual std::unique_ptr< Block > getBlock()
static constexpr unsigned ME0_MAX_PER_BX
TODO: Maximum number of ME0 words per MTF7 payload per bx: ?? ME0 links, ?? layers, ?? clusters.
SP Output Data Record : block->header().getID() = 101.
BlockHeader getHeader() override
virtual BlockHeader getHeader()=0
Event Record Trailer : block->header().getID() = 255.
static constexpr unsigned GE11_MAX_PER_BX
Maximum number of GE1/1 words per MTF7 payload per bx: 7 GE1/1 links, 2 layers, 8 clusters...
static constexpr unsigned counter_size
static constexpr unsigned MAX_BX_PER_PAYLOAD
Maximum number of BX per MTF7 payload.
std::vector< Block > Blocks
virtual unsigned getHeaderSize() const =0
unsigned getHeaderSize() const override
static constexpr unsigned PAYLOAD_MAX_SIZE
Maximum number of 64-bit words in the EMTF payload.
BxBlocks getBxBlocks(unsigned int payloadWordsPerBx, bool bxHeader) const
Block(unsigned int id, const std::vector< uint32_t > &payload, unsigned int capID=0, unsigned int flags=0, block_t type=MP7)
MTF7Payload(const uint32_t *data, const uint32_t *end)
unsigned getHeaderSize() const override
std::vector< BxBlock > BxBlocks
CTP7Payload(const uint32_t *data, const uint32_t *end, amc::Header amcHeader)
BlockHeader getHeader() override
static constexpr unsigned trailer_size
BlockHeader header() const
bool operator<(const Block &o) const
static constexpr unsigned SP_MAX_PER_BX
Maximum number of SPz words per MTF7 payload per bx: 3 tracks, 2 words per track. ...
ME0 Data Record : block->header().getID() = 6.
unsigned int getSize() const
char data[epos_bytes_allocation]
std::unique_ptr< Block > getBlock() override
RPC Data Record : block->header().getID() = 4.
static constexpr unsigned ME_MAX_PER_BX
Maximum number of CSC words per MTF7 payload per bx: 9 links/sectors, 6 stations, 2 LCTs...
virtual unsigned getAlgorithmFWVersion() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void amc(const amc::Header &h)
const std::vector< uint32_t > & payload() const
static constexpr unsigned DAQ_PAYLOAD_OFFSET
Start of the EMTF DAQ payload, in number of 64-bit words.
static constexpr unsigned RPC_MAX_PER_BX
Maximum number of RPC words per MTF7 payload per bx: 7 links/sectors, 6 stations, 2 segments...
int count(unsigned int pattern, unsigned int length) const
virtual unsigned getInfrastructureFWVersion() const
static constexpr unsigned size_shift
static const std::vector< unsigned int > block_patterns_
bit patterns of the first bits (of 16bit words)
Payload(const uint32_t *data, const uint32_t *end)
std::unique_ptr< Block > getBlock() override
static constexpr unsigned GE21_MAX_PER_BX
TODO: Maximum number of GE2/1 words per MTF7 payload per bx: ?? GE2/1 links, 2 layers, ?? clusters.