|
|
#include <L1GTDigiToRaw.h>
|
unsigned int | flipPtQ (unsigned int) |
|
void | packFDL (const edm::EventSetup &, unsigned char *, L1GtFdlWord &) |
| pack FDL blocks for various bunch crosses More...
|
|
unsigned int | packGMT (L1MuGMTReadoutRecord const &, unsigned char *) |
| pack a GMT record More...
|
|
unsigned int | packGmtCollection (unsigned char *ptrGt, L1MuGMTReadoutCollection const *digis) |
| pack the GMT collection using packGMT (GMT record packing) More...
|
|
void | packGTFE (const edm::EventSetup &, unsigned char *, L1GtfeWord &, cms_uint16_t activeBoardsGtValue) |
|
void | packHeader (unsigned char *, edm::Event &) |
| block packers ----------— More...
|
|
void | packPSB (const edm::EventSetup &, unsigned char *, L1GtPsbWord &) |
|
void | packTrailer (unsigned char *, unsigned char *, int) |
| pack trailer word More...
|
|
void | produce (edm::Event &, const edm::EventSetup &) override |
| loop over events More...
|
|
Description: generate raw data from digis.
Implementation: <TODO: enter implementation details>
- Author
- : Vasile Mihai Ghete - HEPHY Vienna - GT
-
: Ivan Mikulec - HEPHY Vienna - GMT
Definition at line 48 of file L1GTDigiToRaw.h.
◆ L1GTDigiToRaw()
◆ flipPtQ()
unsigned int L1GTDigiToRaw::flipPtQ |
( |
unsigned int |
w | ) |
|
|
private |
Definition at line 739 of file L1GTDigiToRaw.cc.
739 {
return ((
w & 0xffff00ff) | ((~
w) & 0x0000ff00)); }
References w.
◆ packFDL()
pack FDL blocks for various bunch crosses
Definition at line 527 of file L1GTDigiToRaw.cc.
529 LogDebug(
"L1GTDigiToRaw") <<
"\nPacking FDL \n" << std::endl;
535 int nrWord64 = fdlBlock.
getSize() / uLength;
536 std::vector<cms_uint64_t> tmpWord64;
537 tmpWord64.resize(nrWord64);
539 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
540 tmpWord64[iWord] = 0x0000000000000000ULL;
544 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
570 cms_uint64_t* pw = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(ptrGt));
572 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
573 *pw++ = tmpWord64[iWord];
576 LogTrace(
"L1GTDigiToRaw") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
577 << tmpWord64[iWord] <<
std::dec << std::setfill(
' ') << std::endl;
References TauDecayModes::dec, L1GtFdlWord::getSize(), LogDebug, LogTrace, m_isDebugEnabled, m_verbosity, L1GtFdlWord::setBoardIdWord64(), L1GtFdlWord::setBxInEventWord64(), L1GtFdlWord::setBxNrWord64(), L1GtFdlWord::setEventNrWord64(), L1GtFdlWord::setFinalORWord64(), L1GtFdlWord::setGtDecisionWordAWord64(), L1GtFdlWord::setGtDecisionWordBWord64(), L1GtFdlWord::setGtDecisionWordExtendedWord64(), L1GtFdlWord::setGtPrescaleFactorIndexAlgoWord64(), L1GtFdlWord::setGtPrescaleFactorIndexTechWord64(), L1GtFdlWord::setGtTechnicalTriggerWordWord64(), L1GtFdlWord::setLocalBxNrWord64(), L1GtFdlWord::setLumiSegmentNrWord64(), L1GtFdlWord::setNoAlgoWord64(), L1GtFdlWord::setOrbitNrWord64(), L1GtFdlWord::setPhysicsDeclaredWord64(), and L1GlobalTriggerReadoutSetup::UnitLength.
Referenced by produce().
◆ packGMT()
pack a GMT record
Definition at line 645 of file L1GTDigiToRaw.cc.
646 const unsigned SIZE = 136;
647 const unsigned boardId = 0xdd12;
648 memset(chp, 0,
SIZE);
650 unsigned*
p = (
unsigned*)chp;
653 *
p++ = (gmtrr.getEvNr() & 0xffffff) | ((gmtrr.getBCERR() & 0xff) << 24);
655 *
p++ = (gmtrr.getBxNr() & 0xfff) | ((gmtrr.getBxInEvent() & 0xf) << 12) | (
boardId << 16);
657 std::vector<L1MuRegionalCand> vrc;
658 std::vector<L1MuRegionalCand>::const_iterator irc;
661 vrc = gmtrr.getDTBXCands();
663 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
664 *
pp++ = (*irc).getDataWord();
668 vrc = gmtrr.getBrlRPCCands();
670 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
671 *
pp++ = (*irc).getDataWord();
675 vrc = gmtrr.getCSCCands();
677 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
678 *
pp++ = (*irc).getDataWord();
682 vrc = gmtrr.getFwdRPCCands();
684 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
685 *
pp++ = (*irc).getDataWord();
691 for (
int i = 0;
i < 16;
i++) {
693 *
pp++ = (
w & 0xffff00ff) | ((~
w) & 0x0000ff00);
696 std::vector<L1MuGMTExtendedCand> vgc;
697 std::vector<L1MuGMTExtendedCand>::const_iterator igc;
699 vgc = gmtrr.getGMTBrlCands();
701 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
702 *
pp++ = (*igc).getDataWord();
706 vgc = gmtrr.getGMTFwdCands();
708 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
709 *
pp++ = (*igc).getDataWord();
713 vgc = gmtrr.getGMTCands();
715 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
716 *
pp++ = (*igc).getDataWord();
722 vgc = gmtrr.getGMTBrlCands();
723 chpp = (
unsigned char*)
p;
724 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
725 *chpp++ = (*igc).rank();
729 vgc = gmtrr.getGMTFwdCands();
730 chpp = (
unsigned char*)
p;
731 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
732 *chpp++ = (*igc).rank();
References amcDumpToRaw_cfi::boardId, L1MuGMTReadoutRecord::getBCERR(), L1MuGMTReadoutRecord::getBrlRPCCands(), L1MuGMTReadoutRecord::getBxInEvent(), L1MuGMTReadoutRecord::getBxNr(), L1MuGMTReadoutRecord::getCSCCands(), L1MuGMTReadoutRecord::getDTBXCands(), L1MuGMTReadoutRecord::getEvNr(), L1MuGMTReadoutRecord::getFwdRPCCands(), L1MuGMTReadoutRecord::getGMTBrlCands(), L1MuGMTReadoutRecord::getGMTCands(), L1MuGMTReadoutRecord::getGMTFwdCands(), mps_fire::i, AlCaHLTBitMon_ParallelJobs::p, createTree::pp, SIZE, and w.
Referenced by packGmtCollection().
◆ packGmtCollection()
◆ packGTFE()
pack the GTFE block gives the number of bunch crosses in the event, as well as the active boards records for inactive boards are not written in the GT DAQ record
Definition at line 481 of file L1GTDigiToRaw.cc.
486 LogDebug(
"L1GTDigiToRaw") <<
"\nPacking GTFE \n" << std::endl;
492 int nrWord64 = gtfeBlock.
getSize() / uLength;
493 std::vector<cms_uint64_t> tmpWord64;
494 tmpWord64.resize(nrWord64);
496 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
497 tmpWord64[iWord] = 0x0000000000000000ULL;
501 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
514 cms_uint64_t* pw = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(ptrGt));
516 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
517 *pw++ = tmpWord64[iWord];
520 LogTrace(
"L1GTDigiToRaw") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
521 << tmpWord64[iWord] <<
std::dec << std::setfill(
' ') << std::endl;
References TauDecayModes::dec, L1GtfeWord::getSize(), LogDebug, LogTrace, m_isDebugEnabled, m_verbosity, L1GtfeWord::setActiveBoardsWord64(), L1GtfeWord::setAltNrBxBoardWord64(), L1GtfeWord::setBoardIdWord64(), L1GtfeWord::setBxNrWord64(), L1GtfeWord::setRecordLength1Word64(), L1GtfeWord::setRecordLengthWord64(), L1GtfeWord::setSetupVersionWord64(), L1GtfeWord::setTotalTriggerNrWord64(), and L1GlobalTriggerReadoutSetup::UnitLength.
Referenced by produce().
◆ packHeader()
void L1GTDigiToRaw::packHeader |
( |
unsigned char * |
ptrGt, |
|
|
edm::Event & |
iEvent |
|
) |
| |
|
private |
block packers ----------—
pack header
Definition at line 440 of file L1GTDigiToRaw.cc.
444 int triggerTypeVal = 0;
447 int lvl1IdVal =
iEvent.id().event();
450 int bxCross =
iEvent.bunchCrossing();
452 if ((bxCross & 0xFFF) == bxCross) {
453 bxCrossHw = static_cast<cms_uint16_t>(bxCross);
457 LogDebug(
"L1GTDigiToRaw") <<
"\nBunch cross number [hex] = " << std::hex << bxCross
458 <<
"\n larger than 12 bits. Set to 0! \n"
462 int bxIdVal = bxCrossHw;
473 bool moreHeadersVal =
false;
477 gtFEDHeader.set(ptrGt, triggerTypeVal, lvl1IdVal, bxIdVal, sourceIdVal, versionVal, moreHeadersVal);
References TauDecayModes::dec, iEvent, LogDebug, m_daqGtFedId, m_isDebugEnabled, m_verbosity, and FEDHeader::set().
Referenced by produce().
◆ packPSB()
pack PSB blocks packing is done in PSB class format
Definition at line 583 of file L1GTDigiToRaw.cc.
585 LogDebug(
"L1GTDigiToRaw") <<
"\nPacking PSB \n" << std::endl;
591 int nrWord64 = psbBlock.
getSize() / uLength;
592 std::vector<cms_uint64_t> tmpWord64;
593 tmpWord64.resize(nrWord64);
595 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
596 tmpWord64[iWord] = 0x0000000000000000ULL;
600 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
614 cms_uint64_t* pw = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(ptrGt));
616 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
617 *pw++ = tmpWord64[iWord];
620 LogTrace(
"L1GTDigiToRaw") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
621 << tmpWord64[iWord] <<
std::dec << std::setfill(
' ') << std::endl;
References TauDecayModes::dec, L1GtPsbWord::getSize(), LogDebug, LogTrace, m_isDebugEnabled, m_verbosity, L1GtPsbWord::setADataWord64(), L1GtPsbWord::setBDataWord64(), L1GtPsbWord::setBoardIdWord64(), L1GtPsbWord::setBxInEventWord64(), L1GtPsbWord::setBxNrWord64(), L1GtPsbWord::setEventNrWord64(), L1GtPsbWord::setLocalBxNrWord64(), and L1GlobalTriggerReadoutSetup::UnitLength.
Referenced by produce().
◆ packTrailer()
void L1GTDigiToRaw::packTrailer |
( |
unsigned char * |
ptrGt, |
|
|
unsigned char * |
ptrGtBegin, |
|
|
int |
dataSize |
|
) |
| |
|
private |
pack trailer word
Definition at line 742 of file L1GTDigiToRaw.cc.
746 int lengthVal = dataSize / 8;
752 int evtStatusVal = 0;
760 bool moreTrailersVal =
false;
763 gtFEDTrailer.set(ptrGt, lengthVal, crcVal, evtStatusVal, ttsBitsVal, moreTrailersVal);
References evf::compute_crc(), and FEDTrailer::set().
Referenced by produce().
◆ produce()
loop over events
Definition at line 88 of file L1GTDigiToRaw.cc.
100 const std::vector<L1GtBoard> boardMaps = l1GtBM->
gtBoardMaps();
101 int boardMapsSize = boardMaps.size();
103 typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
108 std::vector<L1GtBoard> gtRecordMap;
109 gtRecordMap.reserve(boardMapsSize);
111 for (
int iPos = 0; iPos < boardMapsSize; ++iPos) {
112 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
113 if (itBoard->gtPositionDaqRecord() == iPos) {
114 gtRecordMap.push_back(*itBoard);
124 if (!gtReadoutRecord.
isValid()) {
127 <<
"\nrequested in configuration, but not found in the event."
128 <<
"\nQuit packing this event" << std::endl;
138 std::ostringstream myCoutStream;
139 gtReadoutRecord->
print(myCoutStream);
140 LogTrace(
"L1GTDigiToRaw") <<
"\n The following L1 GT DAQ readout record will be packed.\n"
141 <<
" Some boards could be disabled before packing,"
142 <<
" see detailed board packing.\n"
143 << myCoutStream.str() <<
"\n"
166 LogDebug(
"L1GTDigiToRaw") <<
"\nActive boards before masking(hex format): " << std::hex
167 << std::setw(
sizeof(activeBoardsGtInitial) * 2) << std::setfill(
'0')
168 << activeBoardsGtInitial <<
std::dec << std::setfill(
' ')
169 <<
"Active boards after masking(hex format): " << std::hex
170 << std::setw(
sizeof(activeBoardsGt) * 2) << std::setfill(
'0') << activeBoardsGt
171 <<
std::dec << std::setfill(
' ') <<
" \n"
177 unsigned int gtDataSize = 0;
179 unsigned int headerSize = 8;
180 gtDataSize += headerSize;
182 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
183 if (itBoard->gtBoardType() ==
GTFE) {
184 gtDataSize += gtfeBlock.
getSize();
188 int iActiveBit = itBoard->gtBitDaqActiveBoards();
189 bool activeBoardToPack =
false;
191 int altNrBxBoardVal = -1;
193 if (iActiveBit >= 0) {
194 activeBoardToPack = activeBoardsGt & (1 << iActiveBit);
196 altNrBxBoardVal = (altNrBxBoardInitial & (1 << iActiveBit)) >> iActiveBit;
198 if (altNrBxBoardVal == 1) {
200 }
else if (altNrBxBoardVal == 0) {
205 <<
"\n\nWARNING: Wrong value altNrBxBoardVal = " << altNrBxBoardVal <<
" for board " << std::hex
206 << (itBoard->gtBoardId()) <<
std::dec <<
"\n iActiveBit = " << iActiveBit
207 <<
"\n altNrBxBoardInitial = 0x" << std::hex << altNrBxBoardInitial <<
std::dec
208 <<
"\n activeBoardsGt = 0x" << std::hex << activeBoardsGt <<
std::dec
209 <<
"\n activeBoardToPack = " << activeBoardToPack <<
"\n Set altNrBxBoardVal tentatively to "
210 << recordLength0 <<
"\n Job may crash or produce wrong results!\n\n"
222 if (activeBoardToPack) {
223 switch (itBoard->gtBoardType()) {
243 unsigned int gmtRecordSize = 136;
245 gtDataSize += gmtCollSize;
251 gtDataSize += tcsBlock.
getSize();
269 unsigned int trailerSize = 8;
270 gtDataSize += trailerSize;
274 gtRawData.
resize(gtDataSize);
278 unsigned char* ptrGt = gtRawData.
data();
279 unsigned char* ptrGtBegin = gtRawData.
data();
282 LogDebug(
"L1GTDigiToRaw") <<
"\n Size of raw data: " << gtRawData.
size() <<
"\n" << std::endl;
293 for (CItBoardMaps itBoard = gtRecordMap.begin(); itBoard != gtRecordMap.end(); ++itBoard) {
294 if (itBoard->gtBoardType() ==
GTFE) {
295 packGTFE(evSetup, ptrGt, gtfeBlock, activeBoardsGt);
298 std::ostringstream myCoutStream;
299 gtfeBlock.
print(myCoutStream);
300 LogTrace(
"L1GTDigiToRaw") << myCoutStream.str() <<
"\n" << std::endl;
310 int iActiveBit = itBoard->gtBitDaqActiveBoards();
311 bool activeBoardToPack =
false;
313 int altNrBxBoardVal = -1;
315 if (iActiveBit >= 0) {
316 activeBoardToPack = activeBoardsGt & (1 << iActiveBit);
318 altNrBxBoardVal = (altNrBxBoardInitial & (1 << iActiveBit)) >> iActiveBit;
320 if (altNrBxBoardVal == 1) {
322 }
else if (altNrBxBoardVal == 0) {
327 <<
"\n\nWARNING: Wrong value altNrBxBoardVal = " << altNrBxBoardVal <<
" for board " << std::hex
328 << (itBoard->gtBoardId()) <<
std::dec <<
"\n iActiveBit = " << iActiveBit
329 <<
"\n altNrBxBoardInitial = 0x" << std::hex << altNrBxBoardInitial <<
std::dec
330 <<
"\n activeBoardsGt = 0x" << std::hex << activeBoardsGt <<
std::dec
331 <<
"\n activeBoardToPack = " << activeBoardToPack <<
"\n Set altNrBxBoardVal tentatively to "
332 << recordLength0 <<
"\n Job may crash or produce wrong results!\n\n"
347 if (activeBoardToPack) {
349 LogDebug(
"L1GTDigiToRaw") <<
"\nBoard " << std::hex <<
"0x" << (itBoard->gtBoardId()) <<
std::dec
350 <<
"\n Number of bunch crosses in the record: " <<
m_totalBxInEvent <<
" = "
356 switch (itBoard->gtBoardType()) {
360 packFDL(evSetup, ptrGt, fdlBlock);
363 std::ostringstream myCoutStream;
364 fdlBlock.
print(myCoutStream);
365 LogTrace(
"L1GTDigiToRaw") << myCoutStream.str() <<
"\n" << std::endl;
374 LogDebug(
"L1GTDigiToRaw") <<
"\nBoard of type " << itBoard->gtBoardName() <<
" with index "
375 << itBoard->gtBoardIndex() <<
" and boardId " << std::hex << itBoard->gtBoardId()
383 packPSB(evSetup, ptrGt, psbBlock);
386 std::ostringstream myCoutStream;
387 psbBlock.
print(myCoutStream);
388 LogTrace(
"L1GTDigiToRaw") << myCoutStream.str() <<
"\n" << std::endl;
402 <<
"\nWarning: L1MuGMTReadoutCollection with input tag " <<
m_muGmtInputTag
403 <<
"\nrequested in configuration, but not found in the event."
404 <<
"\nQuit packing this event" << std::endl;
419 unsigned int gmtCollSize = 0;
421 ptrGt += gmtCollSize;
References L1GtfeWord::activeBoards(), L1GtfeWord::altNrBxBoard(), FEDRawData::data(), TauDecayModes::dec, FDL, edm::EventSetup::getHandle(), L1GtPsbWord::getSize(), L1GtfeWord::getSize(), L1TcsWord::getSize(), L1GtFdlWord::getSize(), GMT, L1GtBoardMaps::gtBoardMaps(), L1GlobalTriggerReadoutRecord::gtFdlWord(), GTFE, L1GlobalTriggerReadoutRecord::gtfeWord(), L1GlobalTriggerReadoutRecord::gtPsbWord(), iEvent, edm::HandleBase::isValid(), LogDebug, LogTrace, m_activeBoardsMaskGt, m_daqGtFedId, m_daqGtInputTag, m_daqGtInputToken, m_isDebugEnabled, m_l1GtBMToken, m_maxBxInEvent, m_minBxInEvent, m_muGmtInputTag, m_muGmtInputToken, m_totalBxInEvent, m_verbosity, eostools::move(), packFDL(), packGmtCollection(), packGTFE(), packHeader(), packPSB(), packTrailer(), L1GlobalTriggerReadoutRecord::print(), L1GtPsbWord::print(), L1GtfeWord::print(), L1GtFdlWord::print(), edm::Handle< T >::product(), PSB, L1GtfeWord::recordLength(), L1GtfeWord::recordLength1(), FEDRawData::resize(), FEDRawData::size(), TCS, and TIM.
◆ m_activeBoardsMaskGt
◆ m_daqGtFedId
int L1GTDigiToRaw::m_daqGtFedId |
|
private |
◆ m_daqGtInputTag
◆ m_daqGtInputToken
◆ m_isDebugEnabled
bool L1GTDigiToRaw::m_isDebugEnabled |
|
private |
◆ m_l1GtBMToken
◆ m_maxBxInEvent
int L1GTDigiToRaw::m_maxBxInEvent |
|
private |
◆ m_minBxInEvent
int L1GTDigiToRaw::m_minBxInEvent |
|
private |
◆ m_muGmtInputTag
◆ m_muGmtInputToken
◆ m_totalBxInEvent
int L1GTDigiToRaw::m_totalBxInEvent |
|
private |
◆ m_verbosity
int L1GTDigiToRaw::m_verbosity |
|
private |
void setBoardIdWord64(cms_uint64_t &word64, int iWord)
void setEventNrWord64(cms_uint64_t &word64, int iWord)
const cms_uint16_t activeBoards() const
get/set boards contributing to EVM respectively DAQ record
void packGTFE(const edm::EventSetup &, unsigned char *, L1GtfeWord &, cms_uint16_t activeBoardsGtValue)
void setNoAlgoWord64(cms_uint64_t &word64, const int iWord)
static const int UnitLength
one unit in the word is UnitLength bits
T const * product() const
void packHeader(unsigned char *, edm::Event &)
block packers ----------—
void packPSB(const edm::EventSetup &, unsigned char *, L1GtPsbWord &)
void setGtDecisionWordBWord64(cms_uint64_t &word64, const int iWord)
virtual void print(std::ostream &myCout) const
pretty print the content of a L1GtfeWord
const unsigned int getSize() const
get the size of the PSB block in GT DAQ record (in multiple of 8 bits)
cms_uint16_t m_activeBoardsMaskGt
mask for active boards
void setBxInEventWord64(cms_uint64_t &word64, int iWord)
T getUntrackedParameter(std::string const &, T const &) const
const L1GtPsbWord gtPsbWord(cms_uint16_t boardIdValue, int bxInEventValue) const
get / set PSB word (record) in the GT readout record
void setADataWord64(cms_uint64_t &word64, int iWord)
void setOrbitNrWord64(cms_uint64_t &word64, const int iWord)
Log< level::Warning, false > LogWarning
void setBoardIdWord64(cms_uint64_t &word64, const int iWord)
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
void setLumiSegmentNrWord64(cms_uint64_t &word64, const int iWord)
void setLocalBxNrWord64(cms_uint64_t &word64, int iWord)
void setRecordLengthWord64(cms_uint64_t &word64, int iWord)
void setAltNrBxBoardWord64(cms_uint64_t &word64, int iWord)
const cms_uint16_t recordLength() const
get/set record length for alternative 0
int m_verbosity
verbosity level
void setRecordLength1Word64(cms_uint64_t &word64, int iWord)
void setGtPrescaleFactorIndexTechWord64(cms_uint64_t &word64, const int iWord)
void setGtTechnicalTriggerWordWord64(cms_uint64_t &word64, const int iWord)
unsigned int packGmtCollection(unsigned char *ptrGt, L1MuGMTReadoutCollection const *digis)
pack the GMT collection using packGMT (GMT record packing)
void setBxNrWord64(cms_uint64_t &word64, int iWord)
void setSetupVersionWord64(cms_uint64_t &word64, int iWord)
void setBoardIdWord64(cms_uint64_t &word64, int iWord)
void setPhysicsDeclaredWord64(cms_uint64_t &word64, const int iWord)
const edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > m_daqGtInputToken
input tag for GT DAQ record
void print(std::ostream &myCout) const
pretty print
const unsigned int getSize() const
get the size of the TCS block in GT EVM record (in multiple of 8 bits)
const unsigned int getSize() const
get the size of the GTFE block in GT DAQ record (in multiple of 8 bits)
unsigned short compute_crc(unsigned char *buffer, unsigned int bufSize)
void setBxInEventWord64(cms_uint64_t &word64, const int iWord)
void setTotalTriggerNrWord64(cms_uint64_t &word64, int iWord)
void setEventNrWord64(cms_uint64_t &word64, const int iWord)
unsigned int packGMT(L1MuGMTReadoutRecord const &, unsigned char *)
pack a GMT record
void print(std::ostream &myCout) const
pretty print the content of a L1GlobalTriggerReadoutRecord
const L1GtfeWord gtfeWord() const
get / set GTFE word (record) in the GT readout record
void setBxNrWord64(cms_uint64_t &word64, const int iWord)
void setActiveBoardsWord64(cms_uint64_t &word64, int iWord)
const edm::EDGetTokenT< L1MuGMTReadoutCollection > m_muGmtInputToken
input tag for GMT record
const edm::InputTag m_muGmtInputTag
void packTrailer(unsigned char *, unsigned char *, int)
pack trailer word
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
int m_totalBxInEvent
total Bx's in the event, obtained from GTFE block
unsigned long long cms_uint64_t
unsigned short cms_uint16_t
size_t size() const
Lenght of the data buffer in bytes.
void setGtDecisionWordExtendedWord64(cms_uint64_t &word64, const int iWord)
void setLocalBxNrWord64(cms_uint64_t &word64, const int iWord)
void setGtDecisionWordAWord64(cms_uint64_t &word64, const int iWord)
void setBDataWord64(cms_uint64_t &word64, int iWord)
const cms_uint16_t recordLength1() const
get/set record length for alternative 1
const unsigned int getSize() const
get the size of the FDL block in GT DAQ record (in multiple of 8 bits)
void resize(size_t newsize)
void print(std::ostream &myCout) const
pretty print the content of a L1GtFdlWord
void setBxNrWord64(cms_uint64_t &word64, int iWord)
T getParameter(std::string const &) const
const std::vector< L1GtBoard > & gtBoardMaps() const
get / set / print the L1 GT board map
const edm::ESGetToken< L1GtBoardMaps, L1GtBoardMapsRcd > m_l1GtBMToken
EventSetup Token for L1GtBoardMaps.
const cms_uint16_t altNrBxBoard() const
get/set alternative for number of BX per board
void setFinalORWord64(cms_uint64_t &word64, const int iWord)
void packFDL(const edm::EventSetup &, unsigned char *, L1GtFdlWord &)
pack FDL blocks for various bunch crosses
void setGtPrescaleFactorIndexAlgoWord64(cms_uint64_t &word64, const int iWord)
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
const edm::InputTag m_daqGtInputTag