11 event.getByToken(static_cast<const GTTokens*>(toks)->getAlgToken(), algs);
13 unsigned int wdPerBX = 6;
17 for (
int blk = 0; blk < 9; blk++) {
18 unsigned int blkID = blk * 2 + 33;
20 unsigned int algOffset = (2 * blk + 1) / 2;
21 algOffset = (algOffset % 3) * 192;
24 std::vector<uint32_t>
load;
26 for (
int i = algs->getFirstBX();
i <= algs->getLastBX(); ++
i) {
27 for (
auto j = algs->begin(
i);
j != algs->end(
i); ++
j) {
28 for (
unsigned int wd = 0; wd < wdPerBX; wd++) {
31 if ((blk + 1) % 3 > 0 || wd < 4) {
32 unsigned int startAlg = wd * 32 + algOffset;
33 for (
unsigned bt = 0; bt < 32; bt++) {
35 if (
j->getAlgoDecisionInitial(bt + startAlg))
38 if (
j->getAlgoDecisionInterm(bt + startAlg))
41 if (
j->getAlgoDecisionFinal(bt + startAlg))
46 }
else if (blk == 2 && (wd == 4 || wd == 5)) {
49 word |= (
j->getL1MenuUUID() & 0xFFFFFFFF);
51 word |= (
j->getL1FirmwareUUID() & 0xFFFFFFFF);
53 }
else if (blk == 8) {
57 if (
j->getFinalORVeto())
59 if (
j->getFinalORPreVeto())
62 word |= (
j->getPreScColumn() & 0xFF);
73 res.push_back(
Block(blkID, load));
Blocks pack(const edm::Event &, const PackerTokens *) override
std::vector< Block > Blocks
#define DEFINE_L1T_PACKER(type)