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) {
265 <<
"\nError: Pointer after header greater than end pointer."
266 <<
"\n Put empty products in the event!"
267 <<
"\n Quit unpacking this event." << std::endl;
276 FEDTrailer cmsTrailer(ptrGt + gtSize - headerSize);
288 <<
"\nError: Pointer after GTFE greater than end pointer."
289 <<
"\n Put empty products in the event!"
290 <<
"\n Quit unpacking this event." << std::endl;
297 bool gtfeUnpacked =
false;
299 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
301 if (itBoard->gtBoardType() ==
GTFE) {
304 if (itBoard->gtPositionDaqRecord() == 1) {
312 std::ostringstream myCoutStream;
314 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n" << std::endl;
324 <<
"\nWarning: GTFE block found in raw data does not follow header."
325 <<
"\nAssumed start position of the block is wrong!"
326 <<
"\nQuit unpacking this event" << std::endl;
342 <<
"\nWarning: no GTFE block found in raw data."
343 <<
"\nCan not find the record length (BxInEvent) and the active boards!"
344 <<
"\nQuit unpacking this event" << std::endl;
364 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nActive boards before masking: 0x" << std::hex
365 << std::setw(
sizeof ( activeBoardsGtInitial ) * 2) << std::setfill(
'0')
366 << activeBoardsGtInitial <<
std::dec << std::setfill(
' ')
367 <<
"\nActive boards after masking: 0x" << std::hex << std::setw(
368 sizeof ( activeBoardsGt ) * 2) << std::setfill(
'0') << activeBoardsGt <<
std::dec
369 << std::setfill(
' ') <<
" \n" << std::endl;
374 int numberGtfeBoards = 0;
375 int numberFdlBoards = 0;
376 int numberPsbBoards = 0;
377 int numberGmtBoards = 0;
378 int numberTcsBoards = 0;
379 int numberTimBoards = 0;
381 for (CItBoardMaps itBoard = boardMaps.begin(); itBoard != boardMaps.end(); ++itBoard) {
383 int iActiveBit = itBoard->gtBitDaqActiveBoards();
384 bool activeBoardToUnpack =
false;
386 if (iActiveBit >= 0) {
387 activeBoardToUnpack = activeBoardsGt & ( 1 << iActiveBit );
393 if (activeBoardToUnpack) {
395 switch (itBoard->gtBoardType()) {
429 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nBoard of type "
430 << itBoard->gtBoardType() <<
" not expected in record.\n"
457 maxBxInEvent, numberFdlBoards, numberPsbBoards));
475 for (CItBoardMaps itBoard = gtRecordMap.begin(); itBoard != gtRecordMap.end(); ++itBoard) {
477 int iActiveBit = itBoard->gtBitDaqActiveBoards();
479 bool activeBoardToUnpack =
false;
480 bool activeBoardInitial =
false;
482 int altNrBxBoardVal = -1;
484 if (iActiveBit >= 0) {
485 activeBoardInitial = activeBoardsGtInitial & ( 1 << iActiveBit );
486 activeBoardToUnpack = activeBoardsGt & ( 1 << iActiveBit );
488 altNrBxBoardVal = (altNrBxBoardInitial & ( 1 << iActiveBit )) >> iActiveBit;
490 if (altNrBxBoardVal == 1) {
492 }
else if (altNrBxBoardVal == 0) {
497 <<
"\n\nWARNING: Wrong value altNrBxBoardVal = " << altNrBxBoardVal
498 <<
" for board " << std::hex << ( itBoard->gtBoardId() ) <<
std::dec
499 <<
"\n iActiveBit = " << iActiveBit
500 <<
"\n altNrBxBoardInitial = 0x" << std::hex << altNrBxBoardInitial <<
std::dec
501 <<
"\n activeBoardsGt = 0x" << std::hex << activeBoardsGt <<
std::dec
502 <<
"\n activeBoardInitial = " << activeBoardInitial
503 <<
"\n activeBoardToUnpack = " << activeBoardToUnpack
504 <<
"\n Set altNrBxBoardVal tentatively to "
516 LogDebug(
"L1GlobalTriggerRawToDigi")
517 <<
"\nWARNING: Number of available bunch crosses for board"
519 <<
" ) \n is smaller than the number of bunch crosses requested to be unpacked ("
534 <<
" bunch crosses available." <<
"\n" << std::endl;
544 LogDebug(
"L1GlobalTriggerRawToDigi")
546 <<
" bunch crosses available." <<
"\n" << std::endl;
562 <<
" bunch crosses available." <<
"\n" << std::endl;
577 if (!activeBoardInitial) {
579 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nBoard of type "
580 << itBoard->gtBoardName() <<
" with index " << itBoard->gtBoardIndex()
581 <<
" not active initially in raw data.\n" << std::endl;
587 switch (itBoard->gtBoardType()) {
596 <<
"\nError: Pointer after FDL " << iFdl
597 <<
" greater than end pointer."
598 <<
"\n Put empty products in the event!"
599 <<
"\n Quit unpacking this event." << std::endl;
607 if (activeBoardToUnpack) {
625 std::ostringstream myCoutStream;
627 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n"
650 <<
"\nError: Pointer after PSB " << iPsb
651 <<
" greater than end pointer."
652 <<
"\n Put empty products in the event!"
653 <<
"\n Quit unpacking this event." << std::endl;
661 if (activeBoardToUnpack) {
673 std::ostringstream myCoutStream;
675 LogTrace(
"L1GlobalTriggerRawToDigi") << myCoutStream.str() <<
"\n"
693 unsigned int gmtRecordSize = 136;
698 if ((ptrGt + gmtCollSize) > endPtrGt) {
700 <<
"\nError: Pointer after GMT "
701 <<
" greater than end pointer."
702 <<
"\n Put empty products in the event!"
703 <<
"\n Quit unpacking this event." << std::endl;
711 if (activeBoardToUnpack) {
716 ptrGt += gmtCollSize;
723 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nBoard of type "
724 << itBoard->gtBoardType() <<
" not expected in record.\n" << std::endl;
748 if ((ptrGt + trailerSize) > endPtrGt) {
750 <<
"\nError: Pointer after trailer "
751 <<
" greater than end pointer."
752 <<
"\n Put empty products in the event!"
753 <<
"\n Quit unpacking this event." << std::endl;
764 std::ostringstream myCoutStream;
765 gtReadoutRecord->print(myCoutStream);
766 LogTrace(
"L1GlobalTriggerRawToDigi")
767 <<
"\n The following L1 GT DAQ readout record was unpacked.\n"
768 << myCoutStream.str() <<
"\n" << std::endl;
774 iEvent.
put(gtReadoutRecord);
787 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (gtPtr));
789 std::ostringstream myCoutStream;
794 myCoutStream << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0')
795 << std::setw(16) << payload[iWord] <<
std::dec << std::setfill(
' ') <<
"\n"
798 myCoutStream <<
" Event_type: " << std::hex <<
" hex: " <<
" " << std::setw(1)
800 <<
" dec: " << cmsHeader.
triggerType() << std::endl;
802 myCoutStream <<
" LVL1_Id: " << std::hex <<
" hex: " <<
"" << std::setw(6)
803 << std::setfill(
'0') << cmsHeader.
lvl1ID() << std::setfill(
' ') <<
std::dec
804 <<
" dec: " << cmsHeader.
lvl1ID() << std::endl;
806 myCoutStream <<
" BX_Id: " << std::hex <<
" hex: " <<
" " << std::setw(3)
807 << std::setfill(
'0') << cmsHeader.
bxID() << std::setfill(
' ') <<
std::dec
808 <<
" dec: " << cmsHeader.
bxID() << std::endl;
810 myCoutStream <<
" Source_Id: " << std::hex <<
" hex: " <<
" " << std::setw(3)
811 << std::setfill(
'0') << cmsHeader.
sourceID() << std::setfill(
' ') <<
std::dec
812 <<
" dec: " << cmsHeader.
sourceID() << std::endl;
814 myCoutStream <<
" FOV: " << std::hex <<
" hex: " <<
" " << std::setw(1)
815 << std::setfill(
'0') << cmsHeader.
version() << std::setfill(
' ') <<
std::dec
816 <<
" dec: " << cmsHeader.
version() << std::endl;
818 myCoutStream <<
" H: " << std::hex <<
" hex: " <<
" " << std::setw(1)
820 <<
" dec: " << cmsHeader.
moreHeaders() << std::endl;
822 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\n CMS Header \n" << myCoutStream.str() <<
"\n"
840 int psbSize = psbWord.
getSize();
841 int psbWords = psbSize / uLength;
844 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (psbPtr));
846 for (
int iWord = 0; iWord < psbWords; ++iWord) {
853 psbWord.
setBxNr(payload[iWord], iWord);
856 psbWord.
setAData(payload[iWord], iWord);
857 psbWord.
setBData(payload[iWord], iWord);
861 LogTrace(
"L1GlobalTriggerRawToDigi") << std::setw(4) << iWord <<
" " << std::hex
862 << std::setfill(
'0') << std::setw(16) << payload[iWord] <<
std::dec
863 << std::setfill(
' ') << std::endl;
878 const unsigned int gmtRecordSize32 = 34;
880 std::auto_ptr<std::vector<L1MuRegionalCand> > DTCands(
new std::vector<L1MuRegionalCand>);
881 std::auto_ptr<std::vector<L1MuRegionalCand> > CSCCands(
new std::vector<L1MuRegionalCand>);
882 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCbCands(
new std::vector<L1MuRegionalCand>);
883 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCfCands(
new std::vector<L1MuRegionalCand>);
884 std::auto_ptr<std::vector<L1MuGMTCand> > GMTCands(
new std::vector<L1MuGMTCand>);
886 const unsigned*
p = (
const unsigned*) chp;
900 for (
int iWord = 0; iWord < 17; iWord++) {
901 LogTrace(
"L1GlobalTriggerRawToDigi") << std::setw(4) << iWord <<
" " << std::hex
902 << std::setfill(
'0') << std::setw(16) << *bp++ <<
std::dec << std::setfill(
908 gmtrr.
setEvNr( ( *p ) & 0xffffff);
909 gmtrr.
setBCERR( ( ( *p ) >> 24 ) & 0xff);
912 gmtrr.
setBxNr( ( *p ) & 0xfff);
913 if ( ( ( *p ) >> 15 ) & 1) {
921 for (
int im = 0; im < 16; im++) {
923 unsigned waux = *p++;
924 waux = ( waux & 0xffff00ff ) | ( ( ~waux ) & 0x0000ff00 );
927 if (im >= 4 && im < 8) cand.
setType(1);
928 if (im >= 8 && im < 12) cand.
setType(2);
935 if (im < 4) DTCands->push_back(cand);
936 if (im >= 4 && im < 8) RPCbCands->push_back(cand);
937 if (im >= 8 && im < 12) CSCCands->push_back(cand);
938 if (im >= 12) RPCfCands->push_back(cand);
942 unsigned char* prank = (
unsigned char*) ( p + 12 );
944 for (
int im = 0; im < 12; im++) {
945 unsigned waux = *p++;
946 unsigned raux = im < 8 ? *prank++ : 0;
957 if (!cand.
empty()) GMTCands->push_back(cand);
964 gmtrc->addRecord(gmtrr);
968 p += gmtRecordSize32;
976 iEvent.
put(DTCands,
"DT");
977 iEvent.
put(CSCCands,
"CSC");
978 iEvent.
put(RPCbCands,
"RPCb");
979 iEvent.
put(RPCfCands,
"RPCf");
980 iEvent.
put(GMTCands);
994 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (trlPtr));
996 std::ostringstream myCoutStream;
1001 myCoutStream << std::setw(4) << iWord <<
" " << std::hex << std::setfill(
'0')
1002 << std::setw(16) << payload[iWord] <<
std::dec << std::setfill(
' ') <<
"\n"
1005 myCoutStream <<
" Event_length: " << std::hex <<
" hex: " <<
"" << std::setw(6)
1006 << std::setfill(
'0') << cmsTrailer.
lenght() << std::setfill(
' ') <<
std::dec
1007 <<
" dec: " << cmsTrailer.
lenght() << std::endl;
1009 myCoutStream <<
" CRC: " << std::hex <<
" hex: " <<
" " << std::setw(4)
1010 << std::setfill(
'0') << cmsTrailer.
crc() << std::setfill(
' ') <<
std::dec
1011 <<
" dec: " << cmsTrailer.
crc() << std::endl;
1013 myCoutStream <<
" Event_status: " << std::hex <<
" hex: " <<
" " << std::setw(2)
1015 <<
" dec: " << cmsTrailer.
evtStatus() << std::endl;
1017 myCoutStream <<
" TTS_bits: " << std::hex <<
" hex: " <<
" " << std::setw(1)
1018 << std::setfill(
'0') << cmsTrailer.
ttsBits() << std::setfill(
' ') <<
std::dec
1019 <<
" dec: " << cmsTrailer.
ttsBits() << std::endl;
1021 myCoutStream <<
" More trailers: " << std::hex <<
" hex: " <<
" " << std::setw(1)
1025 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\n CMS Trailer \n" << myCoutStream.str() <<
"\n"
1035 std::auto_ptr<L1GlobalTriggerReadoutRecord> gtReadoutRecord(
1040 std::auto_ptr<std::vector<L1MuRegionalCand> > DTCands(
new std::vector<L1MuRegionalCand>);
1041 std::auto_ptr<std::vector<L1MuRegionalCand> > CSCCands(
new std::vector<L1MuRegionalCand>);
1042 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCbCands(
new std::vector<L1MuRegionalCand>);
1043 std::auto_ptr<std::vector<L1MuRegionalCand> > RPCfCands(
new std::vector<L1MuRegionalCand>);
1044 std::auto_ptr<std::vector<L1MuGMTCand> > GMTCands(
new std::vector<L1MuGMTCand>);
1049 iEvent.
put(gtReadoutRecord);
1051 iEvent.
put(DTCands,
"DT");
1052 iEvent.
put(CSCCands,
"CSC");
1053 iEvent.
put(RPCbCands,
"RPCb");
1054 iEvent.
put(RPCfCands,
"RPCf");
1055 iEvent.
put(GMTCands);
1063 const unsigned char* gtPtr,
int gtSize, std::ostream& myCout) {
1065 LogDebug(
"L1GlobalTriggerRawToDigi") <<
"\nDump FED raw data.\n" << std::endl;
1070 int gtWords = gtSize / uLength;
1071 LogTrace(
"L1GlobalTriggerRawToDigi") <<
"\nFED GT words (" << wLength <<
" bits):" << gtWords
1072 <<
"\n" << std::endl;
1075 reinterpret_cast<cms_uint64_t*
> (
const_cast<unsigned char*
> (gtPtr));
1078 myCout << std::setw(4) <<
i <<
" " << std::hex << std::setfill(
'0') << std::setw(16)
1079 << 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