|
|
#include <L1GlobalTriggerRawToDigi.h>
Description: unpack raw data into digitized data.
Implementation: <TODO: enter implementation details>
- Author
- : Vasile Mihai Ghete - HEPHY Vienna - GT
-
: Ivan Mikulec - HEPHY Vienna - GMT
Definition at line 48 of file L1GlobalTriggerRawToDigi.h.
◆ L1GlobalTriggerRawToDigi()
constructor(s)
Definition at line 64 of file L1GlobaTriggerRawToDigi.cc.
96 produces<L1GlobalTriggerReadoutRecord>();
97 produces<L1MuGMTReadoutCollection>();
99 produces<std::vector<L1MuRegionalCand> >(
"DT");
100 produces<std::vector<L1MuRegionalCand> >(
"CSC");
101 produces<std::vector<L1MuRegionalCand> >(
"RPCb");
102 produces<std::vector<L1MuRegionalCand> >(
"RPCf");
103 produces<std::vector<L1MuGMTCand> >();
115 <<
"\nMask for active boards (hex format): " << std::hex
127 <<
"\nWARNING: Number of bunch crossing to be unpacked rounded to: " <<
m_unpackBxInEvent
128 <<
"\n The number must be an odd number!\n"
References TauDecayModes::dec, LogDebug, m_activeBoardsMaskGt, m_daqGtFedId, m_daqGtInputTag, m_gtFdlWord, m_gtfeWord, m_gtPsbWord, m_isDebugEnabled, m_unpackBxInEvent, and m_verbosity.
◆ ~L1GlobalTriggerRawToDigi()
L1GlobalTriggerRawToDigi::~L1GlobalTriggerRawToDigi |
( |
| ) |
|
|
override |
◆ dumpFedRawData()
void L1GlobalTriggerRawToDigi::dumpFedRawData |
( |
const unsigned char * |
gtPtr, |
|
|
int |
gtSize, |
|
|
std::ostream & |
myCout |
|
) |
| |
|
private |
◆ fillDescriptions()
Definition at line 141 of file L1GlobaTriggerRawToDigi.cc.
143 static const char*
const kComm1 =
144 "# input tag for GT readout collection: \n"
145 "# source = hardware record, \n"
146 "# l1GtPack = GT packer (DigiToRaw)";
148 static const char*
const kComm2 =
149 "# FED Id for GT DAQ record \n"
150 "# default value defined in DataFormats/FEDRawData/src/FEDNumbering.cc";
152 static const char*
const kComm3 =
153 "# mask for active boards (actually 16 bits) \n"
154 "# if bit is zero, the corresponding board will not be unpacked \n"
155 "# default: no board masked";
156 desc.
add<
unsigned int>(
"ActiveBoardsMask", 0xFFFF)->setComment(kComm3);
157 static const char*
const kComm4 =
158 "# number of 'bunch crossing in the event' (bxInEvent) to be unpacked \n"
159 "# symmetric around L1Accept (bxInEvent = 0): \n"
160 "# 1 (bxInEvent = 0); 3 (F 0 1) (standard record); 5 (E F 0 1 2) (debug record) \n"
161 "# even numbers (except 0) 'rounded' to the nearest lower odd number \n"
162 "# negative value: unpack all available bxInEvent \n"
163 "# if more bxInEvent than available are required, unpack what exists and write a warning";
164 desc.
add<
int>(
"UnpackBxInEvent", -1)->setComment(kComm4);
166 descriptions.
add(
"l1GlobalTriggerRawToDigi", desc);
References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addUntracked(), HLT_2018_cff::InputTag, and FEDNumbering::MAXTriggerGTPFEDID.
◆ produce()
Definition at line 172 of file L1GlobaTriggerRawToDigi.cc.
188 const std::vector<L1GtBoard> boardMaps = l1GtBM->
gtBoardMaps();
189 int boardMapsSize = boardMaps.size();
191 typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
196 std::vector<L1GtBoard> gtRecordMap;
197 gtRecordMap.reserve(boardMapsSize);
199 for (
int iPos = 0; iPos < boardMapsSize; ++iPos) {
200 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
201 if (itBoard->gtPositionDaqRecord() == iPos) {
202 gtRecordMap.push_back(*itBoard);
216 <<
"\nWarning: FEDRawDataCollection with input tag " <<
m_daqGtInputTag
217 <<
"\nrequested in configuration, but not found in the event."
218 <<
"\nQuit unpacking this event" << std::endl;
229 int gtSize = raw.
size();
232 const unsigned char* ptrGt = raw.
data();
235 const unsigned char* endPtrGt = ptrGt + gtSize;
239 LogTrace(
"L1GlobalTriggerRawToDigi") <<
"\n Size of raw data: " << gtSize <<
"\n" << std::endl;
241 std::ostringstream myCoutStream;
244 LogTrace(
"L1GlobalTriggerRawToDigi") <<
"\n Dump FEDRawData\n" << myCoutStream.str() <<
"\n" << std::endl;
250 if ((ptrGt + headerSize) > endPtrGt) {
258 FEDTrailer cmsTrailer(ptrGt + gtSize - headerSize);
269 edm::LogError(
"L1GlobalTriggerRawToDigi") <<
"\nError: Pointer after GTFE greater than end pointer."
270 <<
"\n Put empty products in the event!"
271 <<
"\n Quit unpacking this event." << std::endl;
278 bool gtfeUnpacked =
false;
280 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
281 if (itBoard->gtBoardType() ==
GTFE) {
283 if (itBoard->gtPositionDaqRecord() == 1) {
289 std::ostringstream myCoutStream;
291 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n" << std::endl;
300 <<
"\nWarning: GTFE block found in raw data does not follow header."
301 <<
"\nAssumed start position of the block is wrong!"
302 <<
"\nQuit unpacking this event" << std::endl;
316 <<
"\nWarning: no GTFE block found in raw data."
317 <<
"\nCan not find the record length (BxInEvent) and the active boards!"
318 <<
"\nQuit unpacking this event" << std::endl;
338 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nActive boards before masking: 0x" << std::hex
339 << std::setw(
sizeof(activeBoardsGtInitial) * 2) << std::setfill(
'0')
340 << activeBoardsGtInitial <<
std::dec << std::setfill(
' ')
341 <<
"\nActive boards after masking: 0x" << std::hex
342 << std::setw(
sizeof(activeBoardsGt) * 2) << std::setfill(
'0') << activeBoardsGt
343 <<
std::dec << std::setfill(
' ') <<
" \n"
349 int numberGtfeBoards = 0;
350 int numberFdlBoards = 0;
351 int numberPsbBoards = 0;
352 int numberGmtBoards = 0;
353 int numberTcsBoards = 0;
354 int numberTimBoards = 0;
356 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
357 int iActiveBit = itBoard->gtBitDaqActiveBoards();
358 bool activeBoardToUnpack =
false;
360 if (iActiveBit >= 0) {
361 activeBoardToUnpack = activeBoardsGt & (1 << iActiveBit);
367 if (activeBoardToUnpack) {
368 switch (itBoard->gtBoardType()) {
402 LogDebug(
"L1GlobalTriggerRawToDigi")
403 <<
"\nBoard of type " << itBoard->gtBoardType() <<
" not expected in record.\n"
427 std::unique_ptr<L1GlobalTriggerReadoutRecord> gtReadoutRecord(
445 for (CItBoardMaps itBoard = gtRecordMap.begin(); itBoard != gtRecordMap.end(); ++itBoard) {
446 int iActiveBit = itBoard->gtBitDaqActiveBoards();
448 bool activeBoardToUnpack =
false;
449 bool activeBoardInitial =
false;
451 int altNrBxBoardVal = -1;
453 if (iActiveBit >= 0) {
454 activeBoardInitial = activeBoardsGtInitial & (1 << iActiveBit);
455 activeBoardToUnpack = activeBoardsGt & (1 << iActiveBit);
457 altNrBxBoardVal = (altNrBxBoardInitial & (1 << iActiveBit)) >> iActiveBit;
459 if (altNrBxBoardVal == 1) {
461 }
else if (altNrBxBoardVal == 0) {
466 <<
"\n\nWARNING: Wrong value altNrBxBoardVal = " << altNrBxBoardVal <<
" for board " << std::hex
467 << (itBoard->gtBoardId()) <<
std::dec <<
"\n iActiveBit = " << iActiveBit
468 <<
"\n altNrBxBoardInitial = 0x" << std::hex << altNrBxBoardInitial <<
std::dec
469 <<
"\n activeBoardsGt = 0x" << std::hex << activeBoardsGt <<
std::dec
470 <<
"\n activeBoardInitial = " << activeBoardInitial
471 <<
"\n activeBoardToUnpack = " << activeBoardToUnpack <<
"\n Set altNrBxBoardVal tentatively to "
483 LogDebug(
"L1GlobalTriggerRawToDigi")
484 <<
"\nWARNING: Number of available bunch crosses for board" << (itBoard->gtBoardId())
486 <<
" ) \n is smaller than the number of bunch crosses requested to be unpacked (" <<
m_unpackBxInEvent
509 LogDebug(
"L1GlobalTriggerRawToDigi")
510 <<
"\nNo bxInEvent required to be unpacked from " <<
m_totalBxInEvent <<
" bunch crosses available."
542 if (!activeBoardInitial) {
544 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nBoard of type " << itBoard->gtBoardName() <<
" with index "
545 << itBoard->gtBoardIndex() <<
" not active initially in raw data.\n"
552 switch (itBoard->gtBoardType()) {
559 <<
"\nError: Pointer after FDL " << iFdl <<
" greater than end pointer."
560 <<
"\n Put empty products in the event!"
561 <<
"\n Quit unpacking this event." << std::endl;
569 if (activeBoardToUnpack) {
584 std::ostringstream myCoutStream;
586 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n" << std::endl;
605 <<
"\nError: Pointer after PSB " << iPsb <<
" greater than end pointer."
606 <<
"\n Put empty products in the event!"
607 <<
"\n Quit unpacking this event." << std::endl;
615 if (activeBoardToUnpack) {
624 std::ostringstream myCoutStream;
626 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n" << std::endl;
639 unsigned int gmtRecordSize = 136;
644 if ((ptrGt + gmtCollSize) > endPtrGt) {
645 edm::LogError(
"L1GlobalTriggerRawToDigi") <<
"\nError: Pointer after GMT "
646 <<
" greater than end pointer."
647 <<
"\n Put empty products in the event!"
648 <<
"\n Quit unpacking this event." << std::endl;
656 if (activeBoardToUnpack) {
660 ptrGt += gmtCollSize;
665 LogDebug(
"L1GlobalTriggerRawToDigi")
666 <<
"\nBoard of type " << itBoard->gtBoardType() <<
" not expected in record.\n"
686 if ((ptrGt + trailerSize) > endPtrGt) {
687 edm::LogError(
"L1GlobalTriggerRawToDigi") <<
"\nError: Pointer after trailer "
688 <<
" greater than end pointer."
689 <<
"\n Put empty products in the event!"
690 <<
"\n Quit unpacking this event." << std::endl;
701 std::ostringstream myCoutStream;
702 gtReadoutRecord->print(myCoutStream);
703 LogTrace(
"L1GlobalTriggerRawToDigi") <<
"\n The following L1 GT DAQ readout record was unpacked.\n"
704 << myCoutStream.str() <<
"\n"
References L1GtfeWord::activeBoards(), L1GtfeWord::altNrBxBoard(), FEDRawData::data(), TauDecayModes::dec, dumpFedRawData(), FDL, edm::EventSetup::get(), get, L1GtPsbWord::getSize(), L1GtfeWord::getSize(), L1GtFdlWord::getSize(), GMT, L1GtBoardMaps::gtBoardMaps(), GTFE, iEvent, edm::HandleBase::isValid(), LogDebug, LogTrace, L1GtFdlWord::lumiSegmentNr(), m_activeBoardsMaskGt, m_daqGtFedId, m_daqGtInputTag, m_gtFdlWord, m_gtfeWord, m_gtPsbWord, m_isDebugEnabled, m_lowSkipBxInEvent, m_recordLength0, m_recordLength1, m_totalBxInEvent, m_TriggerPtScale, m_TriggerScales, m_unpackBxInEvent, m_uppSkipBxInEvent, m_verbosity, SiStripPI::max, eostools::move(), L1GtPsbWord::print(), L1GtfeWord::print(), L1GtFdlWord::print(), produceEmptyProducts(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), PSB, L1GtfeWord::recordLength(), L1GtfeWord::recordLength1(), L1GtPsbWord::reset(), L1GtfeWord::reset(), L1GtFdlWord::reset(), L1GtfeWord::setActiveBoards(), L1GtFdlWord::setLumiSegmentNr(), L1GtfeWord::setRecordLength(), L1GtfeWord::setRecordLength1(), FEDRawData::size(), TCS, TIM, L1GtfeWord::unpack(), L1GtFdlWord::unpack(), unpackGMT(), unpackHeader(), unpackPSB(), and unpackTrailer().
◆ produceEmptyProducts()
void L1GlobalTriggerRawToDigi::produceEmptyProducts |
( |
edm::Event & |
iEvent | ) |
|
|
private |
produce empty products in case of problems
Definition at line 953 of file L1GlobaTriggerRawToDigi.cc.
958 std::unique_ptr<std::vector<L1MuRegionalCand> > DTCands(
new std::vector<L1MuRegionalCand>);
959 std::unique_ptr<std::vector<L1MuRegionalCand> > CSCCands(
new std::vector<L1MuRegionalCand>);
960 std::unique_ptr<std::vector<L1MuRegionalCand> > RPCbCands(
new std::vector<L1MuRegionalCand>);
961 std::unique_ptr<std::vector<L1MuRegionalCand> > RPCfCands(
new std::vector<L1MuRegionalCand>);
962 std::unique_ptr<std::vector<L1MuGMTCand> > GMTCands(
new std::vector<L1MuGMTCand>);
References iEvent, and eostools::move().
Referenced by produce().
◆ unpackGMT()
unpack the GMT record
Definition at line 796 of file L1GlobaTriggerRawToDigi.cc.
804 const unsigned int gmtRecordSize32 = 34;
806 std::unique_ptr<std::vector<L1MuRegionalCand> > DTCands(
new std::vector<L1MuRegionalCand>);
807 std::unique_ptr<std::vector<L1MuRegionalCand> > CSCCands(
new std::vector<L1MuRegionalCand>);
808 std::unique_ptr<std::vector<L1MuRegionalCand> > RPCbCands(
new std::vector<L1MuRegionalCand>);
809 std::unique_ptr<std::vector<L1MuRegionalCand> > RPCfCands(
new std::vector<L1MuRegionalCand>);
810 std::unique_ptr<std::vector<L1MuGMTCand> > GMTCands(
new std::vector<L1MuGMTCand>);
812 const unsigned*
p = (
const unsigned*)chp;
822 const cms_uint64_t* bp = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned*>(
p));
823 for (
int iWord = 0; iWord < 17; iWord++) {
824 LogTrace(
"L1GlobalTriggerRawToDigi") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0')
825 << std::setw(16) << *bp++ <<
std::dec << std::setfill(
' ') << std::endl;
830 gmtrr.setEvNr((*
p) & 0xffffff);
831 gmtrr.setBCERR(((*
p) >> 24) & 0xff);
834 gmtrr.setBxNr((*
p) & 0xfff);
835 if (((*
p) >> 15) & 1) {
836 gmtrr.setBxInEvent((((*
p) >> 12) & 7) - 8);
838 gmtrr.setBxInEvent((((*
p) >> 12) & 7));
843 for (
int im = 0; im < 16; im++) {
845 unsigned waux = *
p++;
846 waux = (waux & 0xffff00ff) | ((~waux) & 0x0000ff00);
849 if (im >= 4 && im < 8)
851 if (im >= 8 && im < 12)
856 gmtrr.setInputCand(im,
cand);
859 DTCands->push_back(
cand);
860 if (im >= 4 && im < 8)
861 RPCbCands->push_back(
cand);
862 if (im >= 8 && im < 12)
863 CSCCands->push_back(
cand);
865 RPCfCands->push_back(
cand);
869 unsigned char* prank = (
unsigned char*)(
p + 12);
871 for (
int im = 0; im < 12; im++) {
872 unsigned waux = *
p++;
873 unsigned raux = im < 8 ? *prank++ : 0;
879 gmtrr.setGMTBrlCand(im,
cand);
881 gmtrr.setGMTFwdCand(im - 4,
cand);
883 gmtrr.setGMTCand(im - 8,
cand);
885 GMTCands->push_back(
cand);
892 gmtrc->addRecord(gmtrr);
896 p += gmtRecordSize32;
References TauDecayModes::dec, L1MuScale::getCenter(), L1MuTriggerScales::getGMTEtaScale(), L1MuScale::getLowEdge(), L1MuTriggerScales::getPhiScale(), L1MuTriggerPtScale::getPtScale(), L1MuTriggerScales::getRegionalEtaScale(), iEvent, LogTrace, m_lowSkipBxInEvent, m_totalBxInEvent, m_TriggerPtScale, m_TriggerScales, m_uppSkipBxInEvent, eostools::move(), AlCaHLTBitMon_ParallelJobs::p, L1MuGMTReadoutRecord::setBCERR(), L1MuGMTReadoutRecord::setBxInEvent(), L1MuGMTReadoutRecord::setBxNr(), L1MuGMTReadoutRecord::setEvNr(), L1MuGMTReadoutRecord::setGMTBrlCand(), L1MuGMTReadoutRecord::setGMTCand(), L1MuGMTReadoutRecord::setGMTFwdCand(), and L1MuGMTReadoutRecord::setInputCand().
Referenced by produce().
◆ unpackHeader()
void L1GlobalTriggerRawToDigi::unpackHeader |
( |
const unsigned char * |
gtPtr, |
|
|
FEDHeader & |
cmsHeader |
|
) |
| |
|
private |
block unpackers
unpack header
Definition at line 715 of file L1GlobaTriggerRawToDigi.cc.
720 const cms_uint64_t*
payload = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(gtPtr));
722 std::ostringstream myCoutStream;
727 myCoutStream << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0') << std::setw(16) <<
payload[iWord]
728 <<
std::dec << std::setfill(
' ') <<
"\n"
731 myCoutStream <<
" Event_type: " << std::hex <<
" hex: "
732 <<
" " << std::setw(1) << std::setfill(
'0') << cmsHeader.
triggerType() << std::setfill(
' ')
735 myCoutStream <<
" LVL1_Id: " << std::hex <<
" hex: "
736 <<
"" << std::setw(6) << std::setfill(
'0') << cmsHeader.
lvl1ID() << std::setfill(
' ') <<
std::dec
737 <<
" dec: " << cmsHeader.
lvl1ID() << std::endl;
739 myCoutStream <<
" BX_Id: " << std::hex <<
" hex: "
740 <<
" " << std::setw(3) << std::setfill(
'0') << cmsHeader.
bxID() << std::setfill(
' ') <<
std::dec
741 <<
" dec: " << cmsHeader.
bxID() << std::endl;
743 myCoutStream <<
" Source_Id: " << std::hex <<
" hex: "
744 <<
" " << std::setw(3) << std::setfill(
'0') << cmsHeader.
sourceID() << std::setfill(
' ') <<
std::dec
745 <<
" dec: " << cmsHeader.
sourceID() << std::endl;
747 myCoutStream <<
" FOV: " << std::hex <<
" hex: "
748 <<
" " << std::setw(1) << std::setfill(
'0') << cmsHeader.
version() << std::setfill(
' ') <<
std::dec
749 <<
" dec: " << cmsHeader.
version() << std::endl;
751 myCoutStream <<
" H: " << std::hex <<
" hex: "
752 <<
" " << std::setw(1) << std::setfill(
'0') << cmsHeader.
moreHeaders() << std::setfill(
' ')
755 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\n CMS Header \n" << myCoutStream.str() <<
"\n" << std::endl;
References FEDHeader::bxID(), TauDecayModes::dec, LogDebug, FEDHeader::lvl1ID(), m_isDebugEnabled, m_verbosity, FEDHeader::moreHeaders(), jets_cff::payload, FEDHeader::sourceID(), FEDHeader::triggerType(), and FEDHeader::version().
Referenced by produce().
◆ unpackPSB()
unpack PSB blocks unpacking is done in PSB class format methods are given later to translate from the PSB format to the physical input of the PSB
Definition at line 761 of file L1GlobaTriggerRawToDigi.cc.
770 int psbSize = psbWord.
getSize();
771 int psbWords = psbSize / uLength;
773 const cms_uint64_t*
payload = reinterpret_cast<cms_uint64_t*>(const_cast<unsigned char*>(psbPtr));
775 for (
int iWord = 0; iWord < psbWords; ++iWord) {
789 LogTrace(
"L1GlobalTriggerRawToDigi") << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0')
References TauDecayModes::dec, L1GtPsbWord::getSize(), LogTrace, jets_cff::payload, L1GtPsbWord::setAData(), L1GtPsbWord::setBData(), L1GtPsbWord::setBoardId(), L1GtPsbWord::setBxInEvent(), L1GtPsbWord::setBxNr(), L1GtPsbWord::setEventNr(), L1GtPsbWord::setLocalBxNr(), and L1GlobalTriggerReadoutSetup::UnitLength.
Referenced by produce().
◆ unpackTrailer()
void L1GlobalTriggerRawToDigi::unpackTrailer |
( |
const unsigned char * |
trlPtr, |
|
|
FEDTrailer & |
cmsTrailer |
|
) |
| |
|
private |
◆ m_activeBoardsMaskGt
◆ m_daqGtFedId
int L1GlobalTriggerRawToDigi::m_daqGtFedId |
|
private |
◆ m_daqGtInputTag
◆ m_gtFdlWord
◆ m_gtfeWord
◆ m_gtPsbWord
◆ m_isDebugEnabled
bool L1GlobalTriggerRawToDigi::m_isDebugEnabled |
|
private |
◆ m_lowSkipBxInEvent
int L1GlobalTriggerRawToDigi::m_lowSkipBxInEvent |
|
private |
◆ m_recordLength0
int L1GlobalTriggerRawToDigi::m_recordLength0 |
|
private |
◆ m_recordLength1
int L1GlobalTriggerRawToDigi::m_recordLength1 |
|
private |
◆ m_totalBxInEvent
int L1GlobalTriggerRawToDigi::m_totalBxInEvent |
|
private |
◆ m_TriggerPtScale
◆ m_TriggerScales
◆ m_unpackBxInEvent
int L1GlobalTriggerRawToDigi::m_unpackBxInEvent |
|
private |
◆ m_uppSkipBxInEvent
int L1GlobalTriggerRawToDigi::m_uppSkipBxInEvent |
|
private |
◆ m_verbosity
int L1GlobalTriggerRawToDigi::m_verbosity |
|
private |
edm::InputTag m_daqGtInputTag
input tags for GT DAQ record
static const int WordLength
GT DAQ record organized in words of WordLength bits.
T const * product() const
const cms_uint16_t activeBoards() const
get/set boards contributing to EVM respectively DAQ record
static const int UnitLength
one unit in the word is UnitLength bits
ParameterDescriptionBase * add(U const &iLabel, T const &value)
int m_recordLength1
corresponding to alternative 1 in altNrBxBoard()
void setBData(cms_uint16_t bDataVal, int iB)
const L1MuScale * getGMTEtaScale() const
get the GMT eta scale
T const * product() const
void reset()
reset the content of a L1GtPsbWord
L1GtPsbWord * m_gtPsbWord
uint16_t crc() const
Cyclic Redundancy Code of the event fragment including header and trailer.
void setRecordLength(cms_uint16_t recordLengthValue)
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)
void setRecordLength1(cms_uint16_t recordLengthValue)
T getUntrackedParameter(std::string const &, T const &) const
void setEventNr(cms_uint32_t eventNrValue)
uint8_t evtStatus() const
Event fragment status information.
int m_totalBxInEvent
number of Bx for a board, obtained from GTFE block (record length & alternative)
void dumpFedRawData(const unsigned char *, int, std::ostream &)
dump FED raw data
void unpackTrailer(const unsigned char *, FEDTrailer &)
unpack trailer word
void unpack(const unsigned char *fdlPtr)
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
const cms_uint16_t recordLength() const
get/set record length for alternative 0
const L1MuScale * getPhiScale() const
get the phi scale
int m_verbosity
verbosity level
void setBxNr(cms_uint16_t bxNrValue)
void unpackPSB(const edm::EventSetup &, const unsigned char *, L1GtPsbWord &)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
virtual void reset()
reset the content of a L1GtfeWord
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)
void produceEmptyProducts(edm::Event &)
produce empty products in case of problems
const L1MuTriggerScales * m_TriggerScales
muon trigger scales to convert unpacked data into physical quantities
void setActiveBoards(cms_uint16_t activeBoardsValue)
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
void print(std::ostream &myCout) const
pretty print
L1GtFdlWord * m_gtFdlWord
void setBoardId(cms_uint16_t boardIdValue)
const unsigned int getSize() const
get the size of the GTFE block in GT DAQ record (in multiple of 8 bits)
void setLumiSegmentNr(const cms_uint16_t &lumiSegmentNrValue)
const L1MuTriggerPtScale * m_TriggerPtScale
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void unpackHeader(const unsigned char *, FEDHeader &)
block unpackers
void setBxInEvent(int bxInEventValue)
cms_uint16_t m_activeBoardsMaskGt
mask for active boards
void reset()
reset the content of a L1GtFdlWord
const L1MuScale * getPtScale() const
get the Pt scale
bool moreTrailers() const
unsigned long long cms_uint64_t
int m_recordLength0
total Bx's in the event, obtained from GTFE block
unsigned short cms_uint16_t
const cms_uint16_t lumiSegmentNr() const
get/set luminosity segment number of the actual bx
size_t size() const
Lenght of the data buffer in bytes.
T getParameter(std::string const &) const
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 print(std::ostream &myCout) const
pretty print the content of a L1GtFdlWord
virtual void unpack(const unsigned char *gtfePtr)
const std::vector< L1GtBoard > & gtBoardMaps() const
get / set / print the L1 GT board map
uint8_t ttsBits() const
Current value of the Trigger Throttling System bits.
const cms_uint16_t altNrBxBoard() const
get/set alternative for number of BX per board
void unpackGMT(const unsigned char *, std::unique_ptr< L1MuGMTReadoutCollection > &, edm::Event &)
unpack the GMT record
void setAData(cms_uint16_t aDataVal, int iA)
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed
uint32_t fragmentLength() const
The length of the event fragment counted in 64-bit words including header and trailer.
void setLocalBxNr(cms_uint16_t localBxNrValue)