84 m_boardId(boardIdValue), m_bxInEvent(bxInEventValue), m_bxNr(bxNrValue),
85 m_eventNr(eventNrValue),
86 m_gtTechnicalTriggerWord(gtTechnicalTriggerWordValue),
87 m_gtDecisionWord(gtDecisionWordValue),
88 m_gtDecisionWordExtended(gtDecisionWordExtendedValue),
89 m_gtPrescaleFactorIndexTech(gtPrescaleFactorIndexTechValue),
90 m_gtPrescaleFactorIndexAlgo(gtPrescaleFactorIndexAlgoValue),
91 m_noAlgo(noAlgoValue), m_finalOR(finalORValue),
92 m_orbitNr(orbitNrValue), m_lumiSegmentNr(lumiSegmentNrValue),
93 m_localBxNr(localBxNrValue)
180 return !( result == *
this);
211 m_bxInEvent = (hexBxInEvent + baseValue/2)%baseValue - baseValue/2;
222 int hexBxInEvent = (
m_bxInEvent + baseValue)%baseValue;
223 word64 = word64 | (
static_cast<cms_uint64_t> (hexBxInEvent)
274 myCout <<
" Technical triggers (bitset style): \n " ;
282 myCout << (*ritBit ?
'1' :
'0');
284 if ( (((iBit + 1)%16) == (sizeW64%16)) && (iBit != 63) ) {
298 int word64Size =
sizeof(word64)*8;
303 for (
int iBit = 0; iBit < word64Size; ++iBit) {
316 int word64Size =
sizeof(word64)*8;
326 wordTT = wordTT | (iDecision << iBit);
329 if (iBit >= word64Size) {
355 std::ostringstream stream64;
357 std::vector<std::string> decWord;
358 decWord.reserve(nrDecWord);
360 for (std::vector<bool>::const_reverse_iterator ritBit =
m_gtDecisionWord.rbegin();
363 stream64 << (*ritBit ?
'1' :
'0');
365 if ( (((iBit + 1)%16) == (sizeW64%16)) ) {
369 if ( ((iBit + 1)%sizeW64) == 0) {
373 decWord.push_back(iW);
383 for (std::vector<std::string>::reverse_iterator ritWord = decWord.rbegin();
384 ritWord != decWord.rend(); ++ritWord) {
387 myCout <<
" DecisionWord (bitset style): bits "
388 << iWord*sizeW64 + sizeW64 - 1 <<
" : " << iWord*sizeW64 <<
"\n ";
401 int word64Size =
sizeof(word64)*8;
406 for (
int iBit = 0; iBit < word64Size; ++iBit) {
417 int word64Size =
sizeof(word64)*8;
422 for (
int iBit = 0; iBit < word64Size; ++iBit) {
440 int word64Size =
sizeof(word64)*8;
450 wordA = wordA | (iDecision << iBit);
453 if (iBit >= word64Size) {
476 int word64Size =
sizeof(word64)*8;
485 if (iBit >= word64Size) {
488 wordB = wordB | ( iDecision << (iBit - word64Size) );
506 myCout <<
" DecisionWordExtended (bitset style): \n " ;
514 myCout << (*ritBit ?
'1' :
'0');
516 if ( (((iBit + 1)%16) == (sizeW64%16)) && (iBit != 63) ) {
530 int word64Size =
sizeof(word64)*8;
536 for (
int iBit = 0; iBit < word64Size; ++iBit) {
550 int word64Size =
sizeof(word64)*8;
560 wordE = wordE | (iDecision << iBit);
563 if (iBit >= word64Size) {
769 myCout <<
"\n L1GtFdlWord::print \n" << std::endl;
773 myCout <<
"\n Word " << iWord << std::endl;
775 myCout <<
" Board Id: "
776 << std::hex <<
" hex: " <<
" " << std::setw(4) << std::setfill(
'0') <<
m_boardId
783 int hexBxInEvent = (
m_bxInEvent + baseValue)%baseValue;
785 myCout <<
" BxInEvent: "
786 << std::hex <<
" hex: " <<
" " << std::setw(1) << hexBxInEvent
791 << std::hex <<
" hex: " <<
" " << std::setw(3) << std::setfill(
'0') <<
m_bxNr
793 << std::dec <<
" dec: " <<
m_bxNr
797 myCout <<
" EventNr: "
798 << std::hex <<
" hex: " <<
" " << std::setw(6) << std::setfill(
'0') <<
m_eventNr
806 myCout <<
"\n Word " << iWord << std::endl;
814 myCout <<
"\n Word " << iWord;
816 myCout <<
" and word " << iWord;
824 myCout <<
"\n Word " << iWord << std::endl;
831 myCout <<
"\n Word " << iWord << std::endl;
833 myCout <<
" PhysicsDeclared: "
834 << std::hex <<
" hex: " <<
" " << std::setw(4) << std::setfill(
'0')
840 myCout <<
" GtPrescaleFactorIndexTech: "
841 << std::hex <<
" hex: " <<
" " << std::setw(4) << std::setfill(
'0')
847 myCout <<
" GtPrescaleFactorIndexAlgo: "
848 << std::hex <<
" hex: " <<
" " << std::setw(4) << std::setfill(
'0')
854 myCout <<
" NoAlgo: "
855 << std::hex <<
" hex: " <<
" " << std::setw(1) << std::setfill(
'0') <<
m_noAlgo
860 myCout <<
" FinalOR: "
861 << std::hex <<
" hex: " <<
" " << std::setw(2) << std::setfill(
'0') <<
m_finalOR
867 myCout <<
"\n Word " << iWord << std::endl;
869 myCout <<
" OrbitNr: "
870 << std::hex <<
" hex: " <<
"" << std::setw(8) << std::setfill(
'0') <<
m_orbitNr
875 myCout <<
" LumiSegmentNr: "
876 << std::hex <<
" hex: " <<
" " << std::setw(4) << std::setfill(
'0') <<
m_lumiSegmentNr
881 myCout <<
" LocalBxNr: "
882 << std::hex <<
" hex: " <<
" " << std::setw(3) << std::setfill(
'0') <<
m_localBxNr
894 <<
"\nUnpacking FDL block.\n"
898 reinterpret_cast<cms_uint64_t*
>(
const_cast<unsigned char*
>(fdlPtr));
925 for (
int iWord = 0; iWord <
BlockSize; ++iWord) {
927 << std::setw(4) << iWord <<
" "
928 << std::hex << std::setfill(
'0')
929 << std::setw(16) << payload[iWord]
930 << std::dec << std::setfill(
' ')
void setGtDecisionWordB(const cms_uint64_t &word64)
static const cms_uint64_t EventNrMask
cms_uint32_t m_eventNr
event number since last L1 reset generated in FDL
static const cms_uint64_t LocalBxNrMask
void setNoAlgoWord64(cms_uint64_t &word64, const int iWord)
cms_uint16_t m_bxNr
bunch cross number of the actual bx
void setGtDecisionWordBWord64(cms_uint64_t &word64, const int iWord)
void setBoardId(const cms_uint16_t &boardIdValue)
set BoardId from a BoardId value
static const int EventNrShift
static const cms_uint64_t BoardIdMask
static const int GtPrescaleFactorIndexTechShift
void setFinalOR(const cms_uint16_t &finalORValue)
static const cms_uint64_t GtDecisionWordAMask
static const unsigned int NumberTechnicalTriggers
void setPhysicsDeclared(const cms_uint16_t &physicsDeclaredValue)
static const cms_uint64_t GtPrescaleFactorIndexAlgoMask
static const int BxInEventShift
static const int GtDecisionWordBShift
void setEventNr(const cms_uint32_t &eventNrValue)
void unpack(const unsigned char *fdlPtr)
void setBoardIdWord64(cms_uint64_t &word64, const int iWord)
static const int FinalORWord
static const cms_uint64_t NoAlgoMask
static const int BxNrShift
void setLumiSegmentNrWord64(cms_uint64_t &word64, const int iWord)
cms_uint16_t m_noAlgo
true if no algorithm (from a defined group - default all) triggered
void setOrbitNrWord64(cms_uint64_t &word64, const int iWord)
void setGtTechnicalTriggerWordWord64(cms_uint64_t &word64, const int iWord)
static const int PhysicsDeclaredShift
static const int LocalBxNrShift
void setLocalBxNr(const cms_uint16_t &localBxNrValue)
void setGtDecisionWordA(const cms_uint64_t &word64)
void printGtDecisionWord(std::ostream &myCout) const
static const int OrbitNrShift
static const int GtDecisionWordBWord
static const int GtDecisionWordAShift
std::vector< bool > DecisionWordExtended
void setGtPrescaleFactorIndexTechWord64(cms_uint64_t &word64, const int iWord)
cms_uint16_t m_gtPrescaleFactorIndexAlgo
static const unsigned int NumberPhysTriggersExtended
static const int GtPrescaleFactorIndexAlgoWord
static const int LumiSegmentNrShift
void setGtTechnicalTriggerWord(const TechnicalTriggerWord >TechnicalTriggerWordValue)
static const int BoardIdShift
static const int NoAlgoShift
void setLumiSegmentNr(const cms_uint16_t &lumiSegmentNrValue)
std::vector< bool > DecisionWord
typedefs
void setBxInEventWord64(cms_uint64_t &word64, const int iWord)
static const int BlockSize
virtual ~L1GtFdlWord()
destructor
void setPhysicsDeclaredWord64(cms_uint64_t &word64, const int iWord)
void printGtDecisionWordExtended(std::ostream &myCout) const
void reset()
reset the content of a L1GtFdlWord
cms_uint16_t m_lumiSegmentNr
luminosity segment number
static const int LumiSegmentNrWord
cms_uint16_t m_gtPrescaleFactorIndexTech
void setEventNrWord64(cms_uint64_t &word64, const int iWord)
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
unsigned short cms_uint16_t
static const int EventNrWord
static const unsigned int NumberPhysTriggers
void setBxNrWord64(cms_uint64_t &word64, const int iWord)
DecisionWord m_gtDecisionWord
algorithm bits
void setGtPrescaleFactorIndexAlgo(const cms_uint16_t >PrescaleFactorIndexAlgoValue)
static const int BoardIdWord
void setGtPrescaleFactorIndexTech(const cms_uint16_t >PrescaleFactorIndexTechValue)
static const cms_uint64_t GtTechnicalTriggerWordMask
static const int BxInEventWord
unsigned int cms_uint32_t
void print(std::ostream &myCout) const
pretty print the content of a L1GtFdlWord
static const cms_uint64_t BxNrMask
void setNoAlgo(const cms_uint16_t &noAlgoValue)
static const int GtTechnicalTriggerWordShift
static const cms_uint64_t GtDecisionWordExtendedMask
cms_uint16_t m_boardId
board identifier
static const int GtDecisionWordAWord
bool operator!=(const L1GtFdlWord &) const
unequal operator
static const cms_uint64_t LumiSegmentNrMask
static const cms_uint64_t PhysicsDeclaredMask
static const int FinalORShift
static const int BxNrWord
int m_bxInEvent
bunch cross in the GT event record
static const int PhysicsDeclaredWord
void setGtDecisionWordExtendedWord64(cms_uint64_t &word64, const int iWord)
static const int OrbitNrWord
static const cms_uint64_t GtPrescaleFactorIndexTechMask
static const cms_uint64_t OrbitNrMask
void setLocalBxNrWord64(cms_uint64_t &word64, const int iWord)
void setGtDecisionWordAWord64(cms_uint64_t &word64, const int iWord)
static const int GtTechnicalTriggerWordWord
static const cms_uint64_t FinalORMask
static const int LocalBxNrWord
static const cms_uint64_t GtDecisionWordBMask
void setOrbitNr(const cms_uint32_t &orbitNrValue)
void printGtTechnicalTriggerWord(std::ostream &myCout) const
static const int GtDecisionWordExtendedWord
void setBxInEvent(const int bxInEventValue)
DecisionWordExtended m_gtDecisionWordExtended
extended algorithm bits, in addition to 128
static const cms_uint64_t BxInEventMask
void setFinalORWord64(cms_uint64_t &word64, const int iWord)
unsigned long long cms_uint64_t
void setBxNr(const cms_uint16_t &bxNrValue)
static const int GtPrescaleFactorIndexTechWord
void setGtPrescaleFactorIndexAlgoWord64(cms_uint64_t &word64, const int iWord)
bool operator==(const L1GtFdlWord &) const
equal operator
cms_uint16_t m_physicsDeclared
set to true when physics declared
static const int NoAlgoWord
void setGtDecisionWordExtended(const DecisionWordExtended >DecisionWordExtendedValue)
TechnicalTriggerWord m_gtTechnicalTriggerWord
technical trigger bits
cms_uint32_t m_orbitNr
orbit number
static const int GtPrescaleFactorIndexAlgoShift
static const int GtDecisionWordExtendedShift
L1GtFdlWord()
constructors