67 m_daqGtInputTag(pSet.getParameter<edm::
InputTag> (
"DaqGtInputTag")),
72 m_daqGtFedId(pSet.getUntrackedParameter<int> (
76 m_activeBoardsMaskGt(pSet.getParameter<unsigned int> (
"ActiveBoardsMask")),
79 m_unpackBxInEvent(pSet.getParameter<int> (
"UnpackBxInEvent")),
84 m_lowSkipBxInEvent(0), m_uppSkipBxInEvent(0),
86 m_recordLength0(0), m_recordLength1(0),
88 m_totalBxInEvent(0), m_verbosity(pSet.getUntrackedParameter<int> (
"Verbosity", 0)),
94 produces<L1GlobalTriggerReadoutRecord> ();
95 produces<L1MuGMTReadoutCollection> ();
97 produces<std::vector<L1MuRegionalCand> > (
"DT");
98 produces<std::vector<L1MuRegionalCand> > (
"CSC");
99 produces<std::vector<L1MuRegionalCand> > (
"RPCb");
100 produces<std::vector<L1MuRegionalCand> > (
"RPCf");
101 produces<std::vector<L1MuGMTCand> > ();
112 LogDebug(
"L1GlobalTriggerRawToDigi")
115 <<
"\nMask for active boards (hex format): " << std::hex
119 <<
"\nNumber of bunch crossing to be unpacked: "
129 <<
"\nWARNING: Number of bunch crossing to be unpacked rounded to: "
148 static const char*
const kComm1=
149 "# input tag for GT readout collection: \n"
150 "# source = hardware record, \n"
151 "# l1GtPack = GT packer (DigiToRaw)";
153 static const char*
const kComm2=
154 "# FED Id for GT DAQ record \n"
155 "# default value defined in DataFormats/FEDRawData/src/FEDNumbering.cc";
157 static const char*
const kComm3=
158 "# mask for active boards (actually 16 bits) \n"
159 "# if bit is zero, the corresponding board will not be unpacked \n"
160 "# default: no board masked";
161 desc.
add<
unsigned int>(
"ActiveBoardsMask",0xFFFF)->setComment(kComm3);
162 static const char*
const kComm4=
163 "# number of 'bunch crossing in the event' (bxInEvent) to be unpacked \n"
164 "# symmetric around L1Accept (bxInEvent = 0): \n"
165 "# 1 (bxInEvent = 0); 3 (F 0 1) (standard record); 5 (E F 0 1 2) (debug record) \n"
166 "# even numbers (except 0) 'rounded' to the nearest lower odd number \n"
167 "# negative value: unpack all available bxInEvent \n"
168 "# if more bxInEvent than available are required, unpack what exists and write a warning";
169 desc.
add<
int>(
"UnpackBxInEvent",-1)->setComment(kComm4);
171 descriptions.
add(
"l1GlobalTriggerRawToDigi",desc);
195 const std::vector<L1GtBoard> boardMaps = l1GtBM->gtBoardMaps();
196 int boardMapsSize = boardMaps.size();
198 typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
203 std::vector<L1GtBoard> gtRecordMap;
204 gtRecordMap.reserve(boardMapsSize);
206 for (
int iPos = 0; iPos < boardMapsSize; ++iPos) {
207 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
209 if (itBoard->gtPositionDaqRecord() == iPos) {
210 gtRecordMap.push_back(*itBoard);
225 <<
"\nWarning: FEDRawDataCollection with input tag " <<
m_daqGtInputTag
226 <<
"\nrequested in configuration, but not found in the event."
227 <<
"\nQuit unpacking this event" << std::endl;
238 int gtSize = raw.
size();
241 const unsigned char* ptrGt = raw.
data();
244 const unsigned char* endPtrGt = ptrGt + gtSize;
249 LogTrace(
"L1GlobalTriggerRawToDigi") <<
"\n Size of raw data: "
250 << gtSize <<
"\n" << std::endl;
252 std::ostringstream myCoutStream;
255 LogTrace(
"L1GlobalTriggerRawToDigi") <<
"\n Dump FEDRawData\n"
256 << myCoutStream.str() <<
"\n" << std::endl;
263 if ((ptrGt + headerSize) > endPtrGt) {
272 FEDTrailer cmsTrailer(ptrGt + gtSize - headerSize);
284 <<
"\nError: Pointer after GTFE greater than end pointer."
285 <<
"\n Put empty products in the event!"
286 <<
"\n Quit unpacking this event." << std::endl;
293 bool gtfeUnpacked =
false;
295 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
297 if (itBoard->gtBoardType() ==
GTFE) {
300 if (itBoard->gtPositionDaqRecord() == 1) {
308 std::ostringstream myCoutStream;
310 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n" << std::endl;
320 <<
"\nWarning: GTFE block found in raw data does not follow header."
321 <<
"\nAssumed start position of the block is wrong!"
322 <<
"\nQuit unpacking this event" << std::endl;
338 <<
"\nWarning: no GTFE block found in raw data."
339 <<
"\nCan not find the record length (BxInEvent) and the active boards!"
340 <<
"\nQuit unpacking this event" << std::endl;
360 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nActive boards before masking: 0x" << std::hex
361 << std::setw(
sizeof ( activeBoardsGtInitial ) * 2) << std::setfill(
'0')
362 << activeBoardsGtInitial <<
std::dec << std::setfill(
' ')
363 <<
"\nActive boards after masking: 0x" << std::hex << std::setw(
364 sizeof ( activeBoardsGt ) * 2) << std::setfill(
'0') << activeBoardsGt <<
std::dec
365 << std::setfill(
' ') <<
" \n" << std::endl;
370 int numberGtfeBoards = 0;
371 int numberFdlBoards = 0;
372 int numberPsbBoards = 0;
373 int numberGmtBoards = 0;
374 int numberTcsBoards = 0;
375 int numberTimBoards = 0;
377 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
379 int iActiveBit = itBoard->gtBitDaqActiveBoards();
380 bool activeBoardToUnpack =
false;
382 if (iActiveBit >= 0) {
383 activeBoardToUnpack = activeBoardsGt & ( 1 << iActiveBit );
389 if (activeBoardToUnpack) {
391 switch (itBoard->gtBoardType()) {
425 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nBoard of type "
426 << itBoard->gtBoardType() <<
" not expected in record.\n"
453 maxBxInEvent, numberFdlBoards, numberPsbBoards));
471 for (CItBoardMaps itBoard = gtRecordMap.begin(); itBoard != gtRecordMap.end(); ++itBoard) {
473 int iActiveBit = itBoard->gtBitDaqActiveBoards();
475 bool activeBoardToUnpack =
false;
476 bool activeBoardInitial =
false;
478 int altNrBxBoardVal = -1;
480 if (iActiveBit >= 0) {
481 activeBoardInitial = activeBoardsGtInitial & ( 1 << iActiveBit );
482 activeBoardToUnpack = activeBoardsGt & ( 1 << iActiveBit );
484 altNrBxBoardVal = (altNrBxBoardInitial & ( 1 << iActiveBit )) >> iActiveBit;
486 if (altNrBxBoardVal == 1) {
488 }
else if (altNrBxBoardVal == 0) {
493 <<
"\n\nWARNING: Wrong value altNrBxBoardVal = " << altNrBxBoardVal
494 <<
" for board " << std::hex << ( itBoard->gtBoardId() ) <<
std::dec
495 <<
"\n iActiveBit = " << iActiveBit
496 <<
"\n altNrBxBoardInitial = 0x" << std::hex << altNrBxBoardInitial <<
std::dec
497 <<
"\n activeBoardsGt = 0x" << std::hex << activeBoardsGt <<
std::dec
498 <<
"\n activeBoardInitial = " << activeBoardInitial
499 <<
"\n activeBoardToUnpack = " << activeBoardToUnpack
500 <<
"\n Set altNrBxBoardVal tentatively to "
512 LogDebug(
"L1GlobalTriggerRawToDigi")
513 <<
"\nWARNING: Number of available bunch crosses for board"
515 <<
" ) \n is smaller than the number of bunch crosses requested to be unpacked ("
530 <<
" bunch crosses available." <<
"\n" << std::endl;
540 LogDebug(
"L1GlobalTriggerRawToDigi")
542 <<
" bunch crosses available." <<
"\n" << std::endl;
558 <<
" bunch crosses available." <<
"\n" << std::endl;
573 if (!activeBoardInitial) {
575 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nBoard of type "
576 << itBoard->gtBoardName() <<
" with index " << itBoard->gtBoardIndex()
577 <<
" not active initially in raw data.\n" << std::endl;
583 switch (itBoard->gtBoardType()) {
592 <<
"\nError: Pointer after FDL " << iFdl
593 <<
" greater than end pointer."
594 <<
"\n Put empty products in the event!"
595 <<
"\n Quit unpacking this event." << std::endl;
603 if (activeBoardToUnpack) {
621 std::ostringstream myCoutStream;
623 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n"
646 <<
"\nError: Pointer after PSB " << iPsb
647 <<
" greater than end pointer."
648 <<
"\n Put empty products in the event!"
649 <<
"\n Quit unpacking this event." << std::endl;
657 if (activeBoardToUnpack) {
669 std::ostringstream myCoutStream;
671 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n"
689 unsigned int gmtRecordSize = 136;
694 if ((ptrGt + gmtCollSize) > endPtrGt) {
696 <<
"\nError: Pointer after GMT "
697 <<
" greater than end pointer."
698 <<
"\n Put empty products in the event!"
699 <<
"\n Quit unpacking this event." << std::endl;
707 if (activeBoardToUnpack) {
712 ptrGt += gmtCollSize;
719 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nBoard of type "
720 << itBoard->gtBoardType() <<
" not expected in record.\n" << std::endl;
744 if ((ptrGt + trailerSize) > endPtrGt) {
746 <<
"\nError: Pointer after trailer "
747 <<
" greater than end pointer."
748 <<
"\n Put empty products in the event!"
749 <<
"\n Quit unpacking this event." << std::endl;
760 std::ostringstream myCoutStream;
761 gtReadoutRecord->print(myCoutStream);
762 LogTrace(
"L1GlobalTriggerRawToDigi")
763 <<
"\n The following L1 GT DAQ readout record was unpacked.\n"
764 << myCoutStream.str() <<
"\n" << std::endl;
770 iEvent.
put(gtReadoutRecord);
783 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (gtPtr));
785 std::ostringstream myCoutStream;
790 myCoutStream << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0')
791 << std::setw(16) << payload[iWord] <<
std::dec << std::setfill(
' ') <<
"\n"
794 myCoutStream <<
" Event_type: " << std::hex <<
" hex: " <<
" " << std::setw(1)
796 <<
" dec: " << cmsHeader.
triggerType() << std::endl;
798 myCoutStream <<
" LVL1_Id: " << std::hex <<
" hex: " <<
"" << std::setw(6)
799 << std::setfill(
'0') << cmsHeader.
lvl1ID() << std::setfill(
' ') <<
std::dec
800 <<
" dec: " << cmsHeader.
lvl1ID() << std::endl;
802 myCoutStream <<
" BX_Id: " << std::hex <<
" hex: " <<
" " << std::setw(3)
803 << std::setfill(
'0') << cmsHeader.
bxID() << std::setfill(
' ') <<
std::dec
804 <<
" dec: " << cmsHeader.
bxID() << std::endl;
806 myCoutStream <<
" Source_Id: " << std::hex <<
" hex: " <<
" " << std::setw(3)
807 << std::setfill(
'0') << cmsHeader.
sourceID() << std::setfill(
' ') <<
std::dec
808 <<
" dec: " << cmsHeader.
sourceID() << std::endl;
810 myCoutStream <<
" FOV: " << std::hex <<
" hex: " <<
" " << std::setw(1)
811 << std::setfill(
'0') << cmsHeader.
version() << std::setfill(
' ') <<
std::dec
812 <<
" dec: " << cmsHeader.
version() << std::endl;
814 myCoutStream <<
" H: " << std::hex <<
" hex: " <<
" " << std::setw(1)
816 <<
" dec: " << cmsHeader.
moreHeaders() << std::endl;
818 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\n CMS Header \n" << myCoutStream.str() <<
"\n"
836 int psbSize = psbWord.
getSize();
837 int psbWords = psbSize / uLength;
840 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (psbPtr));
842 for (
int iWord = 0; iWord < psbWords; ++iWord) {
849 psbWord.
setBxNr(payload[iWord], iWord);
852 psbWord.
setAData(payload[iWord], iWord);
853 psbWord.
setBData(payload[iWord], iWord);
857 LogTrace(
"L1GlobalTriggerRawToDigi") << std::setw(4) << iWord <<
" " << std::hex
858 << std::setfill(
'0') << std::setw(16) << payload[iWord] <<
std::dec
859 << std::setfill(
' ') << std::endl;
874 const unsigned int gmtRecordSize32 = 34;
876 std::auto_ptr<std::vector<L1MuRegionalCand> > DTCands(
new std::vector<L1MuRegionalCand>);
877 std::auto_ptr<std::vector<L1MuRegionalCand> > CSCCands(
new std::vector<L1MuRegionalCand>);
878 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCbCands(
new std::vector<L1MuRegionalCand>);
879 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCfCands(
new std::vector<L1MuRegionalCand>);
880 std::auto_ptr<std::vector<L1MuGMTCand> > GMTCands(
new std::vector<L1MuGMTCand>);
882 const unsigned*
p = (
const unsigned*) chp;
896 for (
int iWord = 0; iWord < 17; iWord++) {
897 LogTrace(
"L1GlobalTriggerRawToDigi") << std::setw(4) << iWord <<
" " << std::hex
898 << std::setfill(
'0') << std::setw(16) << *bp++ <<
std::dec << std::setfill(
904 gmtrr.
setEvNr( ( *p ) & 0xffffff);
905 gmtrr.
setBCERR( ( ( *p ) >> 24 ) & 0xff);
908 gmtrr.
setBxNr( ( *p ) & 0xfff);
909 if ( ( ( *p ) >> 15 ) & 1) {
917 for (
int im = 0; im < 16; im++) {
919 unsigned waux = *p++;
920 waux = ( waux & 0xffff00ff ) | ( ( ~waux ) & 0x0000ff00 );
923 if (im >= 4 && im < 8) cand.
setType(1);
924 if (im >= 8 && im < 12) cand.
setType(2);
931 if (im < 4) DTCands->push_back(cand);
932 if (im >= 4 && im < 8) RPCbCands->push_back(cand);
933 if (im >= 8 && im < 12) CSCCands->push_back(cand);
934 if (im >= 12) RPCfCands->push_back(cand);
938 unsigned char* prank = (
unsigned char*) ( p + 12 );
940 for (
int im = 0; im < 12; im++) {
941 unsigned waux = *p++;
942 unsigned raux = im < 8 ? *prank++ : 0;
953 if (!cand.
empty()) GMTCands->push_back(cand);
960 gmtrc->addRecord(gmtrr);
964 p += gmtRecordSize32;
972 iEvent.
put(DTCands,
"DT");
973 iEvent.
put(CSCCands,
"CSC");
974 iEvent.
put(RPCbCands,
"RPCb");
975 iEvent.
put(RPCfCands,
"RPCf");
976 iEvent.
put(GMTCands);
990 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (trlPtr));
992 std::ostringstream myCoutStream;
997 myCoutStream << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0')
998 << std::setw(16) << payload[iWord] <<
std::dec << std::setfill(
' ') <<
"\n"
1001 myCoutStream <<
" Event_length: " << std::hex <<
" hex: " <<
"" << std::setw(6)
1002 << std::setfill(
'0') << cmsTrailer.
lenght() << std::setfill(
' ') <<
std::dec
1003 <<
" dec: " << cmsTrailer.
lenght() << std::endl;
1005 myCoutStream <<
" CRC: " << std::hex <<
" hex: " <<
" " << std::setw(4)
1006 << std::setfill(
'0') << cmsTrailer.
crc() << std::setfill(
' ') <<
std::dec
1007 <<
" dec: " << cmsTrailer.
crc() << std::endl;
1009 myCoutStream <<
" Event_status: " << std::hex <<
" hex: " <<
" " << std::setw(2)
1011 <<
" dec: " << cmsTrailer.
evtStatus() << std::endl;
1013 myCoutStream <<
" TTS_bits: " << std::hex <<
" hex: " <<
" " << std::setw(1)
1014 << std::setfill(
'0') << cmsTrailer.
ttsBits() << std::setfill(
' ') <<
std::dec
1015 <<
" dec: " << cmsTrailer.
ttsBits() << std::endl;
1017 myCoutStream <<
" More trailers: " << std::hex <<
" hex: " <<
" " << std::setw(1)
1021 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\n CMS Trailer \n" << myCoutStream.str() <<
"\n"
1031 std::auto_ptr<L1GlobalTriggerReadoutRecord> gtReadoutRecord(
1036 std::auto_ptr<std::vector<L1MuRegionalCand> > DTCands(
new std::vector<L1MuRegionalCand>);
1037 std::auto_ptr<std::vector<L1MuRegionalCand> > CSCCands(
new std::vector<L1MuRegionalCand>);
1038 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCbCands(
new std::vector<L1MuRegionalCand>);
1039 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCfCands(
new std::vector<L1MuRegionalCand>);
1040 std::auto_ptr<std::vector<L1MuGMTCand> > GMTCands(
new std::vector<L1MuGMTCand>);
1045 iEvent.
put(gtReadoutRecord);
1047 iEvent.
put(DTCands,
"DT");
1048 iEvent.
put(CSCCands,
"CSC");
1049 iEvent.
put(RPCbCands,
"RPCb");
1050 iEvent.
put(RPCfCands,
"RPCf");
1051 iEvent.
put(GMTCands);
1059 const unsigned char* gtPtr,
int gtSize, std::ostream& myCout) {
1061 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nDump FED raw data.\n" << std::endl;
1066 int gtWords = gtSize / uLength;
1067 LogTrace(
"L1GlobalTriggerRawToDigi") <<
"\nFED GT words (" << wLength <<
" bits):" << gtWords
1068 <<
"\n" << std::endl;
1071 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (gtPtr));
1074 myCout << std::setw(4) <<
i <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
1075 << payload[
i] <<
std::dec << std::setfill(
' ') << std::endl;
const L1MuTriggerScales * m_TriggerScales
muon trigger scales to convert unpacked data into physical quantities
void setBxInEvent(int bxie)
void reset()
reset the content of a L1GtPsbWord
const unsigned int getSize() const
get the size of the GTFE block in GT DAQ record (in multiple of 8 bits)
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
virtual void print(std::ostream &myCout) const
pretty print the content of a L1GtfeWord
const L1MuScale * getPtScale() const
get the Pt scale
unsigned int phiIndex() const
get phi-code
void unpackHeader(const unsigned char *, FEDHeader &)
block unpackers
cms_uint16_t m_activeBoardsMaskGt
mask for active boards
virtual void produce(edm::Event &, const edm::EventSetup &) override
static const int UnitLength
one unit in the word is UnitLength bits
virtual bool empty() const
return empty flag
void setGMTBrlCand(int nr, L1MuGMTExtendedCand const &cand)
set GMT barrel candidate
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
int evtStatus()
Event fragment status information.
int m_recordLength0
total Bx's in the event, obtained from GTFE block
void setBData(cms_uint16_t bDataVal, int iB)
unsigned int etaIndex() const
get eta-code
void setGMTFwdCand(int nr, L1MuGMTExtendedCand const &cand)
set GMT forward candidate
void unpack(const unsigned char *fdlPtr)
void setInputCand(int nr, unsigned data)
set Input muon
void unpackPSB(const edm::EventSetup &, const unsigned char *, L1GtPsbWord &)
void setRecordLength(cms_uint16_t recordLengthValue)
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed
void setPtValue(float ptVal)
Set Pt Value.
const unsigned int getSize() const
get the size of the FDL block in GT DAQ record (in multiple of 8 bits)
const cms_uint16_t altNrBxBoard() const
get/set alternative for number of BX per board
size_t size() const
Lenght of the data buffer in bytes.
static const int WordLength
GT DAQ record organized in words of WordLength bits.
const cms_uint16_t recordLength() const
get/set record length for alternative 0
void setEventNr(cms_uint32_t eventNrValue)
void setBxNr(cms_uint16_t bxNrValue)
bool empty() const
is it an empty muon candidate?
virtual void reset()
reset the content of a L1GtfeWord
const L1MuTriggerPtScale * m_TriggerPtScale
void setPhiValue(float phiVal)
Set Phi Value.
void setBoardId(cms_uint16_t boardIdValue)
int m_recordLength1
corresponding to alternative 1 in altNrBxBoard()
void setPhiValue(float phiVal)
Setters for physical values.
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
void setLumiSegmentNr(const cms_uint16_t &lumiSegmentNrValue)
edm::InputTag m_daqGtInputTag
input tags for GT DAQ record
void setBxInEvent(int bxInEventValue)
const L1MuScale * getPhiScale() const
get the phi scale
int m_verbosity
verbosity level
void reset()
reset the content of a L1GtFdlWord
void setEtaValue(float etaVal)
Set Eta Value (need to set type, first)
unsigned eta_packed() const
return eta packed as in hardware
unsigned short cms_uint16_t
void setType(unsigned type)
Set Type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC.
void setRecordLength1(cms_uint16_t recordLengthValue)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
L1GlobalTriggerRawToDigi(const edm::ParameterSet &)
constructor(s)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
const cms_uint16_t activeBoards() const
get/set boards contributing to EVM respectively DAQ record
void unpackGMT(const unsigned char *, std::auto_ptr< L1MuGMTReadoutCollection > &, edm::Event &)
unpack the GMT record
void print(std::ostream &myCout) const
pretty print the content of a L1GtFdlWord
void print(std::ostream &myCout) const
pretty print
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
L1GtFdlWord * m_gtFdlWord
int ttsBits()
Current value of the Trigger Throttling System bitsAQ).
const cms_uint16_t lumiSegmentNr() const
get/set luminosity segment number of the actual bx
L1GtPsbWord * m_gtPsbWord
int m_totalBxInEvent
number of Bx for a board, obtained from GTFE block (record length & alternative)
T const * product() const
int lenght()
The length of the event fragment counted in 64-bit words including header and trailer.
void setActiveBoards(cms_uint16_t activeBoardsValue)
void setEtaValue(float etaVal)
Set Eta Value (need to set type, first)
T const * product() const
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void setBxNr(int bxnr)
set counters
void unpackTrailer(const unsigned char *, FEDTrailer &)
unpack trailer word
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC) ...
virtual ~L1GlobalTriggerRawToDigi()
destructor
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
void setLocalBxNr(cms_uint16_t localBxNrValue)
int crc()
Cyclic Redundancy Code of the event fragment including header and trailer.
const L1MuScale * getGMTEtaScale() const
get the GMT eta scale
void setGMTCand(int nr, L1MuGMTExtendedCand const &cand)
set GMT candidate (does not store rank)
unsigned long long cms_uint64_t
void produceEmptyProducts(edm::Event &)
produce empty products in case of problems
void setPtValue(float ptVal)
Set Pt Value.
unsigned pt_packed() const
return pt packed as in hardware
const cms_uint16_t recordLength1() const
get/set record length for alternative 1
unsigned int ptIndex() const
get pt-code
void setAData(cms_uint16_t aDataVal, int iA)
virtual void unpack(const unsigned char *gtfePtr)
unsigned type_idx() const
return type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
unsigned phi_packed() const
return phi packed as in hardware
const unsigned int getSize() const
get the size of the PSB block in GT DAQ record (in multiple of 8 bits)
void dumpFedRawData(const unsigned char *, int, std::ostream &)
dump FED raw data