|
|
#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 45 of file L1GTDigiToRaw.h.
◆ L1GTDigiToRaw()
◆ flipPtQ()
unsigned int L1GTDigiToRaw::flipPtQ |
( |
unsigned int |
w | ) |
|
|
private |
Definition at line 742 of file L1GTDigiToRaw.cc.
742 {
return ((
w & 0xffff00ff) | ((~
w) & 0x0000ff00)); }
References w.
◆ packFDL()
pack FDL blocks for various bunch crosses
Definition at line 530 of file L1GTDigiToRaw.cc.
532 LogDebug(
"L1GTDigiToRaw") <<
"\nPacking FDL \n" << std::endl;
538 int nrWord64 = fdlBlock.
getSize() / uLength;
539 std::vector<cms_uint64_t> tmpWord64;
540 tmpWord64.resize(nrWord64);
542 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
543 tmpWord64[iWord] = 0x0000000000000000ULL;
547 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
573 cms_uint64_t* pw = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(ptrGt));
575 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
576 *pw++ = tmpWord64[iWord];
579 LogTrace(
"L1GTDigiToRaw") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
580 << 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 648 of file L1GTDigiToRaw.cc.
649 const unsigned SIZE = 136;
650 const unsigned boardId = 0xdd12;
651 memset(chp, 0,
SIZE);
653 unsigned*
p = (
unsigned*)chp;
656 *
p++ = (gmtrr.getEvNr() & 0xffffff) | ((gmtrr.getBCERR() & 0xff) << 24);
658 *
p++ = (gmtrr.getBxNr() & 0xfff) | ((gmtrr.getBxInEvent() & 0xf) << 12) | (
boardId << 16);
660 std::vector<L1MuRegionalCand> vrc;
661 std::vector<L1MuRegionalCand>::const_iterator irc;
664 vrc = gmtrr.getDTBXCands();
666 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
667 *
pp++ = (*irc).getDataWord();
671 vrc = gmtrr.getBrlRPCCands();
673 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
674 *
pp++ = (*irc).getDataWord();
678 vrc = gmtrr.getCSCCands();
680 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
681 *
pp++ = (*irc).getDataWord();
685 vrc = gmtrr.getFwdRPCCands();
687 for (irc = vrc.begin(); irc != vrc.end(); irc++) {
688 *
pp++ = (*irc).getDataWord();
694 for (
int i = 0;
i < 16;
i++) {
696 *
pp++ = (
w & 0xffff00ff) | ((~
w) & 0x0000ff00);
699 std::vector<L1MuGMTExtendedCand> vgc;
700 std::vector<L1MuGMTExtendedCand>::const_iterator igc;
702 vgc = gmtrr.getGMTBrlCands();
704 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
705 *
pp++ = (*igc).getDataWord();
709 vgc = gmtrr.getGMTFwdCands();
711 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
712 *
pp++ = (*igc).getDataWord();
716 vgc = gmtrr.getGMTCands();
718 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
719 *
pp++ = (*igc).getDataWord();
725 vgc = gmtrr.getGMTBrlCands();
726 chpp = (
unsigned char*)
p;
727 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
728 *chpp++ = (*igc).rank();
732 vgc = gmtrr.getGMTFwdCands();
733 chpp = (
unsigned char*)
p;
734 for (igc = vgc.begin(); igc != vgc.end(); igc++) {
735 *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 484 of file L1GTDigiToRaw.cc.
489 LogDebug(
"L1GTDigiToRaw") <<
"\nPacking GTFE \n" << std::endl;
495 int nrWord64 = gtfeBlock.
getSize() / uLength;
496 std::vector<cms_uint64_t> tmpWord64;
497 tmpWord64.resize(nrWord64);
499 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
500 tmpWord64[iWord] = 0x0000000000000000ULL;
504 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
517 cms_uint64_t* pw = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(ptrGt));
519 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
520 *pw++ = tmpWord64[iWord];
523 LogTrace(
"L1GTDigiToRaw") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
524 << 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 443 of file L1GTDigiToRaw.cc.
447 int triggerTypeVal = 0;
450 int lvl1IdVal =
iEvent.id().event();
453 int bxCross =
iEvent.bunchCrossing();
455 if ((bxCross & 0xFFF) == bxCross) {
456 bxCrossHw = static_cast<cms_uint16_t>(bxCross);
460 LogDebug(
"L1GTDigiToRaw") <<
"\nBunch cross number [hex] = " << std::hex << bxCross
461 <<
"\n larger than 12 bits. Set to 0! \n"
465 int bxIdVal = bxCrossHw;
476 bool moreHeadersVal =
false;
480 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 586 of file L1GTDigiToRaw.cc.
588 LogDebug(
"L1GTDigiToRaw") <<
"\nPacking PSB \n" << std::endl;
594 int nrWord64 = psbBlock.
getSize() / uLength;
595 std::vector<cms_uint64_t> tmpWord64;
596 tmpWord64.resize(nrWord64);
598 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
599 tmpWord64[iWord] = 0x0000000000000000ULL;
603 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
617 cms_uint64_t* pw = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(ptrGt));
619 for (
int iWord = 0; iWord < nrWord64; ++iWord) {
620 *pw++ = tmpWord64[iWord];
623 LogTrace(
"L1GTDigiToRaw") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
624 << 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 745 of file L1GTDigiToRaw.cc.
749 int lengthVal = dataSize / 8;
755 int evtStatusVal = 0;
763 bool moreTrailersVal =
false;
766 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 90 of file L1GTDigiToRaw.cc.
103 const std::vector<L1GtBoard> boardMaps = l1GtBM->
gtBoardMaps();
104 int boardMapsSize = boardMaps.size();
106 typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
111 std::vector<L1GtBoard> gtRecordMap;
112 gtRecordMap.reserve(boardMapsSize);
114 for (
int iPos = 0; iPos < boardMapsSize; ++iPos) {
115 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
116 if (itBoard->gtPositionDaqRecord() == iPos) {
117 gtRecordMap.push_back(*itBoard);
127 if (!gtReadoutRecord.
isValid()) {
130 <<
"\nrequested in configuration, but not found in the event."
131 <<
"\nQuit packing this event" << std::endl;
141 std::ostringstream myCoutStream;
142 gtReadoutRecord->
print(myCoutStream);
143 LogTrace(
"L1GTDigiToRaw") <<
"\n The following L1 GT DAQ readout record will be packed.\n"
144 <<
" Some boards could be disabled before packing,"
145 <<
" see detailed board packing.\n"
146 << myCoutStream.str() <<
"\n"
169 LogDebug(
"L1GTDigiToRaw") <<
"\nActive boards before masking(hex format): " << std::hex
170 << std::setw(
sizeof(activeBoardsGtInitial) * 2) << std::setfill(
'0')
171 << activeBoardsGtInitial <<
std::dec << std::setfill(
' ')
172 <<
"Active boards after masking(hex format): " << std::hex
173 << std::setw(
sizeof(activeBoardsGt) * 2) << std::setfill(
'0') << activeBoardsGt
174 <<
std::dec << std::setfill(
' ') <<
" \n"
180 unsigned int gtDataSize = 0;
182 unsigned int headerSize = 8;
183 gtDataSize += headerSize;
185 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
186 if (itBoard->gtBoardType() ==
GTFE) {
187 gtDataSize += gtfeBlock.
getSize();
191 int iActiveBit = itBoard->gtBitDaqActiveBoards();
192 bool activeBoardToPack =
false;
194 int altNrBxBoardVal = -1;
196 if (iActiveBit >= 0) {
197 activeBoardToPack = activeBoardsGt & (1 << iActiveBit);
199 altNrBxBoardVal = (altNrBxBoardInitial & (1 << iActiveBit)) >> iActiveBit;
201 if (altNrBxBoardVal == 1) {
203 }
else if (altNrBxBoardVal == 0) {
208 <<
"\n\nWARNING: Wrong value altNrBxBoardVal = " << altNrBxBoardVal <<
" for board " << std::hex
209 << (itBoard->gtBoardId()) <<
std::dec <<
"\n iActiveBit = " << iActiveBit
210 <<
"\n altNrBxBoardInitial = 0x" << std::hex << altNrBxBoardInitial <<
std::dec
211 <<
"\n activeBoardsGt = 0x" << std::hex << activeBoardsGt <<
std::dec
212 <<
"\n activeBoardToPack = " << activeBoardToPack <<
"\n Set altNrBxBoardVal tentatively to "
213 << recordLength0 <<
"\n Job may crash or produce wrong results!\n\n"
225 if (activeBoardToPack) {
226 switch (itBoard->gtBoardType()) {
246 unsigned int gmtRecordSize = 136;
248 gtDataSize += gmtCollSize;
254 gtDataSize += tcsBlock.
getSize();
272 unsigned int trailerSize = 8;
273 gtDataSize += trailerSize;
277 gtRawData.
resize(gtDataSize);
281 unsigned char* ptrGt = gtRawData.
data();
282 unsigned char* ptrGtBegin = gtRawData.
data();
285 LogDebug(
"L1GTDigiToRaw") <<
"\n Size of raw data: " << gtRawData.
size() <<
"\n" << std::endl;
296 for (CItBoardMaps itBoard = gtRecordMap.begin(); itBoard != gtRecordMap.end(); ++itBoard) {
297 if (itBoard->gtBoardType() ==
GTFE) {
298 packGTFE(evSetup, ptrGt, gtfeBlock, activeBoardsGt);
301 std::ostringstream myCoutStream;
302 gtfeBlock.
print(myCoutStream);
303 LogTrace(
"L1GTDigiToRaw") << myCoutStream.str() <<
"\n" << std::endl;
313 int iActiveBit = itBoard->gtBitDaqActiveBoards();
314 bool activeBoardToPack =
false;
316 int altNrBxBoardVal = -1;
318 if (iActiveBit >= 0) {
319 activeBoardToPack = activeBoardsGt & (1 << iActiveBit);
321 altNrBxBoardVal = (altNrBxBoardInitial & (1 << iActiveBit)) >> iActiveBit;
323 if (altNrBxBoardVal == 1) {
325 }
else if (altNrBxBoardVal == 0) {
330 <<
"\n\nWARNING: Wrong value altNrBxBoardVal = " << altNrBxBoardVal <<
" for board " << std::hex
331 << (itBoard->gtBoardId()) <<
std::dec <<
"\n iActiveBit = " << iActiveBit
332 <<
"\n altNrBxBoardInitial = 0x" << std::hex << altNrBxBoardInitial <<
std::dec
333 <<
"\n activeBoardsGt = 0x" << std::hex << activeBoardsGt <<
std::dec
334 <<
"\n activeBoardToPack = " << activeBoardToPack <<
"\n Set altNrBxBoardVal tentatively to "
335 << recordLength0 <<
"\n Job may crash or produce wrong results!\n\n"
350 if (activeBoardToPack) {
352 LogDebug(
"L1GTDigiToRaw") <<
"\nBoard " << std::hex <<
"0x" << (itBoard->gtBoardId()) <<
std::dec
353 <<
"\n Number of bunch crosses in the record: " <<
m_totalBxInEvent <<
" = "
359 switch (itBoard->gtBoardType()) {
363 packFDL(evSetup, ptrGt, fdlBlock);
366 std::ostringstream myCoutStream;
367 fdlBlock.
print(myCoutStream);
368 LogTrace(
"L1GTDigiToRaw") << myCoutStream.str() <<
"\n" << std::endl;
377 LogDebug(
"L1GTDigiToRaw") <<
"\nBoard of type " << itBoard->gtBoardName() <<
" with index "
378 << itBoard->gtBoardIndex() <<
" and boardId " << std::hex << itBoard->gtBoardId()
386 packPSB(evSetup, ptrGt, psbBlock);
389 std::ostringstream myCoutStream;
390 psbBlock.
print(myCoutStream);
391 LogTrace(
"L1GTDigiToRaw") << myCoutStream.str() <<
"\n" << std::endl;
405 <<
"\nWarning: L1MuGMTReadoutCollection with input tag " <<
m_muGmtInputTag
406 <<
"\nrequested in configuration, but not found in the event."
407 <<
"\nQuit packing this event" << std::endl;
422 unsigned int gmtCollSize = 0;
424 ptrGt += gmtCollSize;
References L1GtfeWord::activeBoards(), L1GtfeWord::altNrBxBoard(), FEDRawData::data(), TauDecayModes::dec, FDL, edm::EventSetup::get(), get, 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_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_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)
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
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)
T getParameter(std::string const &) const
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)
const std::vector< L1GtBoard > & gtBoardMaps() const
get / set / print the L1 GT board map
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