|
|
#include <Block.h>
|
int | count (unsigned int pattern, unsigned int length) const |
|
bool | valid (unsigned int pattern) const |
|
|
static const std::vector< unsigned int > | block_patterns_ |
| bit patterns of the first bits (of 16bit words) More...
|
|
static constexpr unsigned | counter_size = 4 |
|
static constexpr unsigned | DAQ_PAYLOAD_OFFSET = 4 |
| Start of the EMTF DAQ payload, in number of 64-bit words. More...
|
|
static constexpr unsigned | GE11_MAX_PER_BX = 112 |
| Maximum number of GE1/1 words per MTF7 payload per bx: 7 GE1/1 links, 2 layers, 8 clusters. More...
|
|
static constexpr unsigned | GE21_MAX_PER_BX = 0 |
| TODO: Maximum number of GE2/1 words per MTF7 payload per bx: ?? GE2/1 links, 2 layers, ?? clusters. More...
|
|
static constexpr unsigned | header_size = 12 |
|
static constexpr unsigned | max_block_length_ = 3 |
| maximum of the block length (64bits) More...
|
|
static constexpr unsigned | MAX_BX_PER_PAYLOAD = 8 |
| Maximum number of BX per MTF7 payload. More...
|
|
static constexpr unsigned | ME0_MAX_PER_BX = 0 |
| TODO: Maximum number of ME0 words per MTF7 payload per bx: ?? ME0 links, ?? layers, ?? clusters. More...
|
|
static constexpr unsigned | ME_MAX_PER_BX = 108 |
| Maximum number of CSC words per MTF7 payload per bx: 9 links/sectors, 6 stations, 2 LCTs. More...
|
|
static constexpr unsigned | PAYLOAD_MAX_SIZE |
| Maximum number of 64-bit words in the EMTF payload. More...
|
|
static constexpr unsigned | RPC_MAX_PER_BX = 84 |
| Maximum number of RPC words per MTF7 payload per bx: 7 links/sectors, 6 stations, 2 segments. More...
|
|
static constexpr unsigned | SP_MAX_PER_BX = 6 |
| Maximum number of SPz words per MTF7 payload per bx: 3 tracks, 2 words per track. More...
|
|
static constexpr unsigned | trailer_size = 8 |
|
Definition at line 129 of file Block.h.
◆ MTF7Payload()
l1t::MTF7Payload::MTF7Payload |
( |
const uint32_t * |
data, |
|
|
const uint32_t * |
end |
|
) |
| |
Definition at line 111 of file Block.cc.
112 const uint16_t* data16 = reinterpret_cast<const uint16_t*>(
data);
113 const uint16_t* end16 = reinterpret_cast<const uint16_t*>(
end);
116 edm::LogError(
"L1T") <<
"MTF7 payload smaller than allowed!";
119 ((data16[0] >> 12) != 0x9) || ((data16[1] >> 12) != 0x9) || ((data16[2] >> 12) != 0x9) ||
120 ((data16[3] >> 12) != 0x9) || ((data16[4] >> 12) != 0xA) || ((data16[5] >> 12) != 0xA) ||
121 ((data16[6] >> 12) != 0xA) || ((data16[7] >> 12) != 0xA) || ((data16[8] >> 15) != 0
x1) ||
122 ((data16[9] >> 15) != 0x0) || ((data16[10] >> 15) != 0x0) || ((data16[11] >> 15) != 0x0)) {
126 ((data16[12] >> 15) != 0) || ((data16[13] >> 15) != 1) || ((data16[14] >> 15) != 0) ||
127 ((data16[15] >> 15) != 0)) {
128 edm::LogError(
"L1T") <<
"MTF7 payload has invalid counter block!";
137 if (((data16[4 *
i + 0] >> 12) == 0xF) && ((data16[4 *
i + 1] >> 12) == 0xF) &&
138 ((data16[4 *
i + 2] >> 12) == 0xF) && ((data16[4 *
i + 3] >> 12) == 0xF) &&
139 ((data16[4 *
i + 4] >> 12) == 0xE) && ((data16[4 *
i + 5] >> 12) == 0xE) &&
140 ((data16[4 *
i + 6] >> 12) == 0xE) &&
141 ((data16[4 *
i + 7] >> 12) == 0xE)) {
142 algo_ = (((data16[4 *
i + 2] >> 4) & 0x3F) << 9);
143 algo_ |= (((data16[4 *
i + 2] >> 0) & 0x0F) << 5);
144 algo_ |= (((data16[4 *
i + 4] >> 0) & 0x1F) << 0);
149 edm::LogError(
"L1T") <<
"MTF7 payload has no valid EMTF firmware version!";
References l1t::Payload::algo_, counter_size, DAQ_PAYLOAD_OFFSET, data, l1t::Payload::data_, mps_fire::end, l1t::Payload::end_, header_size, mps_fire::i, PAYLOAD_MAX_SIZE, trailer_size, and testProducerWithPsetDescEmpty_cfi::x1.
◆ count()
int l1t::MTF7Payload::count |
( |
unsigned int |
pattern, |
|
|
unsigned int |
length |
|
) |
| const |
|
private |
◆ getBlock()
std::unique_ptr< Block > l1t::MTF7Payload::getBlock |
( |
| ) |
|
|
overridevirtual |
Reimplemented from l1t::Payload.
Definition at line 173 of file Block.cc.
175 return std::unique_ptr<Block>();
177 const uint16_t* data16 = reinterpret_cast<const uint16_t*>(
data_);
178 const uint16_t* end16 = reinterpret_cast<const uint16_t*>(
end_);
186 for (
int j = 0;
j < 4; ++
j) {
198 return std::unique_ptr<Block>();
References count(), l1t::Payload::data_, l1t::Payload::end_, mps_fire::i, dqmiolumiharvest::j, max_block_length_, l1t::MTF7, dqmiodumpmetadata::n, topSingleLeptonDQM_PU_cfi::pattern, jets_cff::payload, and valid().
◆ getHeader()
◆ getHeaderSize()
unsigned l1t::MTF7Payload::getHeaderSize |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ valid()
bool l1t::MTF7Payload::valid |
( |
unsigned int |
pattern | ) |
const |
|
private |
◆ block_patterns_
const std::vector< unsigned int > l1t::MTF7Payload::block_patterns_ |
|
staticprivate |
Initial value:
bit patterns of the first bits (of 16bit words)
Definition at line 166 of file Block.h.
Referenced by count(), and valid().
◆ counter_size
constexpr unsigned l1t::MTF7Payload::counter_size = 4 |
|
staticconstexprprivate |
◆ DAQ_PAYLOAD_OFFSET
constexpr unsigned l1t::MTF7Payload::DAQ_PAYLOAD_OFFSET = 4 |
|
staticconstexprprivate |
Start of the EMTF DAQ payload, in number of 64-bit words.
Definition at line 144 of file Block.h.
Referenced by MTF7Payload().
◆ GE11_MAX_PER_BX
constexpr unsigned l1t::MTF7Payload::GE11_MAX_PER_BX = 112 |
|
staticconstexprprivate |
Maximum number of GE1/1 words per MTF7 payload per bx: 7 GE1/1 links, 2 layers, 8 clusters.
Definition at line 152 of file Block.h.
◆ GE21_MAX_PER_BX
constexpr unsigned l1t::MTF7Payload::GE21_MAX_PER_BX = 0 |
|
staticconstexprprivate |
TODO: Maximum number of GE2/1 words per MTF7 payload per bx: ?? GE2/1 links, 2 layers, ?? clusters.
Definition at line 154 of file Block.h.
◆ header_size
constexpr unsigned l1t::MTF7Payload::header_size = 12 |
|
staticconstexprprivate |
◆ max_block_length_
constexpr unsigned l1t::MTF7Payload::max_block_length_ = 3 |
|
staticconstexprprivate |
maximum of the block length (64bits)
Definition at line 165 of file Block.h.
Referenced by getBlock().
◆ MAX_BX_PER_PAYLOAD
constexpr unsigned l1t::MTF7Payload::MAX_BX_PER_PAYLOAD = 8 |
|
staticconstexprprivate |
Maximum number of BX per MTF7 payload.
Definition at line 146 of file Block.h.
◆ ME0_MAX_PER_BX
constexpr unsigned l1t::MTF7Payload::ME0_MAX_PER_BX = 0 |
|
staticconstexprprivate |
TODO: Maximum number of ME0 words per MTF7 payload per bx: ?? ME0 links, ?? layers, ?? clusters.
Definition at line 156 of file Block.h.
◆ ME_MAX_PER_BX
constexpr unsigned l1t::MTF7Payload::ME_MAX_PER_BX = 108 |
|
staticconstexprprivate |
Maximum number of CSC words per MTF7 payload per bx: 9 links/sectors, 6 stations, 2 LCTs.
Definition at line 148 of file Block.h.
◆ PAYLOAD_MAX_SIZE
constexpr unsigned l1t::MTF7Payload::PAYLOAD_MAX_SIZE |
|
staticconstexprprivate |
Initial value:
Maximum number of 64-bit words in the EMTF payload.
Definition at line 160 of file Block.h.
Referenced by MTF7Payload().
◆ RPC_MAX_PER_BX
constexpr unsigned l1t::MTF7Payload::RPC_MAX_PER_BX = 84 |
|
staticconstexprprivate |
Maximum number of RPC words per MTF7 payload per bx: 7 links/sectors, 6 stations, 2 segments.
Definition at line 150 of file Block.h.
◆ SP_MAX_PER_BX
constexpr unsigned l1t::MTF7Payload::SP_MAX_PER_BX = 6 |
|
staticconstexprprivate |
Maximum number of SPz words per MTF7 payload per bx: 3 tracks, 2 words per track.
Definition at line 158 of file Block.h.
◆ trailer_size
constexpr unsigned l1t::MTF7Payload::trailer_size = 8 |
|
staticconstexprprivate |
RPC Data Record : block->header().getID() = 4.
ME0 Data Record : block->header().getID() = 6.
static constexpr unsigned ME0_MAX_PER_BX
TODO: Maximum number of ME0 words per MTF7 payload per bx: ?? ME0 links, ?? layers,...
static constexpr unsigned PAYLOAD_MAX_SIZE
Maximum number of 64-bit words in the EMTF payload.
Block of Counters : block->header().getID() = 2.
static constexpr unsigned GE21_MAX_PER_BX
TODO: Maximum number of GE2/1 words per MTF7 payload per bx: ?? GE2/1 links, 2 layers,...
static constexpr unsigned trailer_size
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)
static constexpr unsigned counter_size
Log< level::Warning, false > LogWarning
ME Data Record : block->header().getID() = 3.
static constexpr unsigned ME_MAX_PER_BX
Maximum number of CSC words per MTF7 payload per bx: 9 links/sectors, 6 stations, 2 LCTs.
static constexpr unsigned DAQ_PAYLOAD_OFFSET
Start of the EMTF DAQ payload, in number of 64-bit words.
int count(unsigned int pattern, unsigned int length) const
GEM Data Record : block->header().getID() = 7.
static constexpr unsigned max_block_length_
maximum of the block length (64bits)
bool valid(unsigned int pattern) const
Log< level::Error, false > LogError
static constexpr unsigned MAX_BX_PER_PAYLOAD
Maximum number of BX per MTF7 payload.
static constexpr unsigned RPC_MAX_PER_BX
Maximum number of RPC words per MTF7 payload per bx: 7 links/sectors, 6 stations, 2 segments.
static constexpr unsigned header_size
char data[epos_bytes_allocation]
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.
SP Output Data Record : block->header().getID() = 101.
Event Record Header : block->header().getID() = 511.
static constexpr unsigned SP_MAX_PER_BX
Maximum number of SPz words per MTF7 payload per bx: 3 tracks, 2 words per track.
Event Record Trailer : block->header().getID() = 255.