79 for (std::vector<edm::InputTag>::const_iterator it = m_technicalTriggersInputTags.begin(); it
80 != m_technicalTriggersInputTags.end(); it++) {
104 const int nrL1CenJet,
const int nrL1ForJet,
const int nrL1TauJet,
105 const int numberTechnicalTriggers)
124 const bool receiveNoIsoEG,
const int nrL1NoIsoEG,
125 const bool receiveIsoEG,
const int nrL1IsoEG,
126 const bool receiveCenJet,
const int nrL1CenJet,
127 const bool receiveForJet,
const int nrL1ForJet,
128 const bool receiveTauJet,
const int nrL1TauJet,
129 const bool receiveETM,
const bool receiveETT,
const bool receiveHTT,
const bool receiveHTM,
130 const bool receiveJetCounts,
131 const bool receiveHfBitCounts,
132 const bool receiveHfRingEtSums)
142 std::ostringstream warningsStream;
145 if (receiveNoIsoEG) {
152 if (warningEnabled) {
154 <<
"\nWarning: L1GctEmCandCollection with input label " << caloGctInputTag.
label()
155 <<
" and instance \"nonIsoEm\" \n" 156 <<
"requested in configuration, but not found in the event.\n" 162 for (L1GctEmCandCollection::const_iterator it = emCands->begin(); it
163 != emCands->end(); it++) {
165 if ((*it).bx() == iBxInEvent) {
167 (*m_candL1NoIsoEG).push_back(&(*it));
183 if (warningEnabled) {
185 <<
"\nWarning: L1GctEmCandCollection with input label " 186 << caloGctInputTag.
label()
187 <<
" and instance \"isoEm\" \n" 188 <<
"requested in configuration, but not found in the event.\n" 194 for (L1GctEmCandCollection::const_iterator it = isoEmCands->begin(); it
195 != isoEmCands->end(); it++) {
197 if ((*it).bx() == iBxInEvent) {
199 (*m_candL1IsoEG).push_back(&(*it));
216 if (warningEnabled) {
218 <<
"\nWarning: L1GctJetCandCollection with input label " << caloGctInputTag.
label()
219 <<
" and instance \"cenJets\" \n" 220 <<
"requested in configuration, but not found in the event.\n" 226 for (L1GctJetCandCollection::const_iterator it = cenJets->begin(); it
227 != cenJets->end(); it++) {
229 if ((*it).bx() == iBxInEvent) {
231 (*m_candL1CenJet).push_back(&(*it));
247 if (warningEnabled) {
249 <<
"\nWarning: L1GctJetCandCollection with input label " 250 << caloGctInputTag.
label()
251 <<
" and instance \"forJets\" \n" 252 <<
"requested in configuration, but not found in the event.\n" 258 for (L1GctJetCandCollection::const_iterator it = forJets->begin(); it
259 != forJets->end(); it++) {
261 if ((*it).bx() == iBxInEvent) {
263 (*m_candL1ForJet).push_back(&(*it));
279 if (warningEnabled) {
281 <<
"\nWarning: L1GctJetCandCollection with input label " << caloGctInputTag.
label()
282 <<
" and instance \"tauJets\" \n" 283 <<
"requested in configuration, but not found in the event.\n" 289 for (L1GctJetCandCollection::const_iterator it = tauJets->begin(); it
290 != tauJets->end(); it++) {
292 if ((*it).bx() == iBxInEvent) {
294 (*m_candL1TauJet).push_back(&(*it));
307 iEvent.
getByLabel(caloGctInputTag, missEtColl) ;
310 if (warningEnabled) {
312 <<
"\nWarning: L1GctEtMissCollection with input tag " << caloGctInputTag
313 <<
"\nrequested in configuration, but not found in the event.\n" 319 for (L1GctEtMissCollection::const_iterator it = missEtColl->begin(); it
320 != missEtColl->end(); it++) {
322 if ((*it).bx() == iBxInEvent) {
337 iEvent.
getByLabel(caloGctInputTag, sumEtColl) ;
340 if (warningEnabled) {
342 <<
"\nWarning: L1GctEtTotalCollection with input tag " << caloGctInputTag
343 <<
"\nrequested in configuration, but not found in the event.\n" 349 for (L1GctEtTotalCollection::const_iterator it = sumEtColl->begin(); it
350 != sumEtColl->end(); it++) {
352 if ((*it).bx() == iBxInEvent) {
367 iEvent.
getByLabel(caloGctInputTag, sumHtColl) ;
370 if (warningEnabled) {
372 <<
"\nWarning: L1GctEtHadCollection with input tag " << caloGctInputTag
373 <<
"\nrequested in configuration, but not found in the event.\n" 379 for (L1GctEtHadCollection::const_iterator it = sumHtColl->begin(); it
380 != sumHtColl->end(); it++) {
382 if ((*it).bx() == iBxInEvent) {
397 iEvent.
getByLabel(caloGctInputTag, missHtColl) ;
400 if (warningEnabled) {
402 <<
"\nWarning: L1GctHtMissCollection with input tag " << caloGctInputTag
403 <<
"\nrequested in configuration, but not found in the event.\n" 409 for (L1GctHtMissCollection::const_iterator it = missHtColl->begin(); it
410 != missHtColl->end(); it++) {
412 if ((*it).bx() == iBxInEvent) {
424 if (receiveJetCounts) {
427 iEvent.
getByLabel(caloGctInputTag, jetCountColl) ;
430 if (warningEnabled) {
432 <<
"\nWarning: L1GctJetCountsCollection with input tag " << caloGctInputTag
433 <<
"\nrequested in configuration, but not found in the event.\n" 439 for (L1GctJetCountsCollection::const_iterator it =
440 jetCountColl->begin(); it != jetCountColl->end(); it++) {
442 if ((*it).bx() == iBxInEvent) {
455 if (receiveHfBitCounts) {
458 iEvent.
getByLabel(caloGctInputTag, hfBitCountsColl) ;
460 if (!hfBitCountsColl.
isValid()) {
461 if (warningEnabled) {
463 <<
"\nWarning: L1GctHFBitCountsCollection with input tag " << caloGctInputTag
464 <<
"\nrequested in configuration, but not found in the event.\n" 470 for (L1GctHFBitCountsCollection::const_iterator it =
471 hfBitCountsColl->begin(); it != hfBitCountsColl->end(); it++) {
473 if ((*it).bx() == iBxInEvent) {
486 if (receiveHfRingEtSums) {
489 iEvent.
getByLabel(caloGctInputTag, hfRingEtSums) ;
492 if (warningEnabled) {
494 <<
"\nWarning: L1GctHFRingEtSumsCollection with input tag " << caloGctInputTag
495 <<
"\nrequested in configuration, but not found in the event.\n" 501 for (L1GctHFRingEtSumsCollection::const_iterator it =
502 hfRingEtSums->begin(); it != hfRingEtSums->end(); it++) {
504 if ((*it).bx() == iBxInEvent) {
517 if (warningsStream.tellp() > 0) {
525 <<
"\n**** L1GlobalTriggerPSB receiving calorimeter data for BxInEvent = " 526 << iBxInEvent <<
"\n from " << caloGctInputTag <<
"\n" 538 const bool receiveCastor,
const bool readFromPsb) {
582 const bool receiveBptx,
const bool readFromPsb) {
591 const std::vector<edm::InputTag>& externalInputTags,
592 const int iBxInEvent,
593 const bool receiveExternal,
const bool readFromPsb) {
603 edm::Event&
iEvent,
const std::vector<edm::InputTag>& technicalTriggersInputTags,
604 const int iBxInEvent,
const bool receiveTechTr,
const int nrL1TechTr) {
606 std::ostringstream warningsStream;
618 for (std::vector<edm::InputTag>::const_iterator it = technicalTriggersInputTags.begin(); it
619 != technicalTriggersInputTags.end(); it++) {
624 if (!techTrigRecord.
isValid()) {
625 if (warningEnabled) {
626 warningsStream <<
"\nWarning: L1GtTechnicalTriggerRecord with input tag " 628 <<
"\nrequested in configuration, but not found in the event.\n" 633 const std::vector<L1GtTechnicalTrigger>& ttVec =
635 size_t ttVecSize = ttVec.size();
637 for (
size_t iTT = 0; iTT < ttVecSize; ++iTT) {
640 int ttBxInEvent = ttBxRecord.
bxInEvent();
642 if (ttBxInEvent == iBxInEvent) {
649 LogTrace(
"L1GlobalTrigger") <<
"Add for BxInEvent " << iBxInEvent
650 <<
" the technical trigger produced by " << (*it) <<
" : name " 652 << ttBitNumber <<
" and result " << ttResult << std::endl;
666 if (warningsStream.tellp() > 0) {
673 <<
"\n**** L1GlobalTriggerPSB receiving technical triggers: " << std::endl;
678 std::ostringstream myCout;
683 myCout << ( *ritBit ?
'1' :
'0' );
685 if ( ( ( ( iBit + 1 ) % 16 ) == ( sizeW64 % 16 ) ) && ( iBit != 63 )) {
692 LogTrace(
"L1GlobalTrigger") << myCout.str() <<
"\n" << std::endl;
702 const boost::uint16_t& activeBoardsGtDaq,
703 const int recordLength0,
704 const int recordLength1,
705 const unsigned int altNrBxBoardDaq,
706 const std::vector<L1GtBoard>& boardMaps,
707 const int iBxInEvent,
714 boost::uint16_t bxCrossHw = 0;
715 if ((bxCross & 0xFFF) == bxCross) {
716 bxCrossHw =
static_cast<boost::uint16_t
> (bxCross);
723 <<
"\nBunch cross number [hex] = " << std::hex << bxCross
724 <<
"\n larger than 12 bits. Set to 0! \n" <<
std::dec 729 typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
735 itBoard = boardMaps.begin();
736 itBoard != boardMaps.end(); ++itBoard) {
738 int iPosition = itBoard->gtPositionDaqRecord();
741 int iActiveBit = itBoard->gtBitDaqActiveBoards();
742 bool activeBoard =
false;
743 bool writeBoard =
false;
747 if (iActiveBit >= 0) {
748 activeBoard = activeBoardsGtDaq & (1 << iActiveBit);
750 int altNrBxBoard = (altNrBxBoardDaq & ( 1 << iActiveBit )) >> iActiveBit;
752 if (altNrBxBoard == 1) {
753 recLength = recordLength1;
755 recLength = recordLength0;
758 int lowBxInEvent = (recLength + 1)/2 - recLength;
759 int uppBxInEvent = (recLength + 1)/2 - 1;
761 if ((iBxInEvent >= lowBxInEvent) && (iBxInEvent <= uppBxInEvent)) {
780 if (activeBoard && writeBoard && (itBoard->gtBoardType() ==
PSB)) {
785 psbWordValue.
setBoardId(itBoard->gtBoardId());
791 boost::uint16_t bxNrValue = bxCrossHw;
792 psbWordValue.
setBxNr(bxNrValue);
797 static_cast<boost::uint32_t>(iEvent.
id().
event()) );
801 boost::uint16_t localBxNrValue = bxCrossHw;
809 std::vector<L1GtPsbQuad> quadInPsb = itBoard->gtQuadInPsb();
810 int nrCables = quadInPsb.size();
812 boost::uint16_t aDataVal = 0;
813 boost::uint16_t bDataVal = 0;
816 for (std::vector<L1GtPsbQuad>::const_iterator
817 itQuad = quadInPsb.begin();
818 itQuad != quadInPsb.end(); ++itQuad) {
822 int iAB = (nrCables - iCable - 1)*nrObjRow;
836 int bitsPerWord = 16;
843 boost::uint16_t bitVal = 0;
845 for (
int i = 0;
i < bitsPerWord; ++
i) {
853 aDataVal = aDataVal | (bitVal <<
i);
856 psbWordValue.
setAData(aDataVal, iAB + iPair);
861 for (
int i = 0;
i < bitsPerWord; ++
i) {
869 bDataVal = bDataVal | (bitVal <<
i);
872 psbWordValue.
setBData(bDataVal, iAB + iPair);
878 for (
int i = 0;
i < bitsPerWord; ++
i) {
886 aDataVal = aDataVal | (bitVal <<
i);
889 psbWordValue.
setAData(aDataVal, iAB + iPair);
893 for (
int i = 0;
i < bitsPerWord; ++
i) {
901 bDataVal = bDataVal | (bitVal <<
i);
904 psbWordValue.
setBData(bDataVal, iAB + iPair);
918 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
919 if (iPair < recL1NoIsoEG) {
921 (
static_cast<const L1GctEmCand*
> ((*m_candL1NoIsoEG)[iPair]))->raw();
926 psbWordValue.
setAData(aDataVal, iAB + iPair);
928 if ((iPair + nrObjRow) < recL1NoIsoEG) {
930 (
static_cast<const L1GctEmCand*
> ((*m_candL1NoIsoEG)[iPair + nrObjRow]))->raw();
935 psbWordValue.
setBData(bDataVal, iAB + iPair);
951 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
952 if (iPair < recL1IsoEG) {
954 (
static_cast<const L1GctEmCand*
> ((*m_candL1IsoEG)[iPair]))->raw();
959 psbWordValue.
setAData(aDataVal, iAB + iPair);
961 if ((iPair + nrObjRow) < recL1IsoEG) {
963 (
static_cast<const L1GctEmCand*
> ((*m_candL1IsoEG)[iPair + nrObjRow]))->raw();
968 psbWordValue.
setBData(bDataVal, iAB + iPair);
985 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
986 if (iPair < recL1CenJet) {
988 (
static_cast<const L1GctJetCand*
> ((*m_candL1CenJet)[iPair]))->raw();
993 psbWordValue.
setAData(aDataVal, iAB + iPair);
995 if ((iPair + nrObjRow) < recL1CenJet) {
997 (
static_cast<const L1GctJetCand*
> ((*m_candL1CenJet)[iPair + nrObjRow]))->raw();
1002 psbWordValue.
setBData(bDataVal, iAB + iPair);
1018 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
1019 if (iPair < recL1ForJet) {
1021 (
static_cast<const L1GctJetCand*
> ((*m_candL1ForJet)[iPair]))->raw();
1026 psbWordValue.
setAData(aDataVal, iAB + iPair);
1028 if ((iPair + nrObjRow) < recL1ForJet) {
1030 (
static_cast<const L1GctJetCand*
> ((*m_candL1ForJet)[iPair + nrObjRow]))->raw();
1035 psbWordValue.
setBData(bDataVal, iAB + iPair);
1052 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
1053 if (iPair < recL1TauJet) {
1055 (
static_cast<const L1GctJetCand*
> ((*m_candL1TauJet)[iPair]))->raw();
1060 psbWordValue.
setAData(aDataVal, iAB + iPair);
1062 if ((iPair + nrObjRow) < recL1TauJet) {
1064 (
static_cast<const L1GctJetCand*
> ((*m_candL1TauJet)[iPair + nrObjRow]))->raw();
1069 psbWordValue.
setBData(bDataVal, iAB + iPair);
1103 psbWordValue.
setAData(aDataVal, iAB + iPair);
1111 psbWordValue.
setBData(bDataVal, iAB + iPair);
1135 psbWordValue.
setAData(aDataVal, iAB + iPair);
1150 psbWordValue.
setBData(bDataVal, iAB + iPair);
1174 int jetCountsBits = 5;
1175 int countsPerWord = 3;
1186 for (
int i = 0;
i < countsPerWord; ++
i) {
1189 << (jetCountsBits*
i));
1195 for (
int i = 0;
i < countsPerWord; ++
i) {
1198 << (jetCountsBits*
i));
1204 psbWordValue.
setAData(aDataVal, iAB + iPair);
1205 psbWordValue.
setBData(bDataVal, iAB + iPair);
1213 for (
int i = 0;
i < countsPerWord; ++
i) {
1216 << (jetCountsBits*
i));
1222 for (
int i = 0;
i < countsPerWord; ++
i) {
1225 << (jetCountsBits*
i));
1231 psbWordValue.
setAData(aDataVal, iAB + iPair);
1232 psbWordValue.
setBData(bDataVal, iAB + iPair);
1253 int nHfBitCounts = hfBitCounts.
nCounts();
1256 int nHfRingEtSums = hfRingEtSums.
nSums();
1264 int hfPerWord =
sizeof(aDataVal)*8/hfBits;
1272 bool aDataFlag =
true;
1273 bool bDataFlag =
false;
1277 for (
int i = 0;
i < nHfBitCounts; ++
i) {
1280 if (iHf < hfPerWord) {
1298 if (iHf < hfPerWord) {
1316 iHf = nHfBitCounts%hfPerWord;
1323 if (aDataFlag && bDataFlag) {
1325 <<
"\n HfBitCounts collection filled aData and bData [" 1326 << (iAB + iPair) <<
"]" 1327 <<
"\n HfRingEtSums collection has no space to be written" 1333 for (
int i = 0;
i < nHfRingEtSums; ++
i) {
1336 if (iHf < hfPerWord) {
1354 if (iHf < hfPerWord) {
1372 iHf = nHfRingEtSums%hfPerWord;
1379 psbWordValue.
setAData(aDataVal, iAB + iPair);
1380 psbWordValue.
setBData(bDataVal, iAB + iPair);
1389 if (aDataFlag && bDataFlag) {
1391 <<
"\n aData and bData [" 1392 << (iAB + iPair) <<
"] full" 1393 <<
"\n HfRingEtSums collection has not enough space to be written" 1455 <<
"\nL1GlobalTrigger: GCT data [hex] received by PSBs for BxInEvent = " 1456 << iBxInEvent <<
"\n" << std::endl;
1458 std::vector<const L1GctCand*>::const_iterator iterConst;
1460 LogTrace(
"L1GlobalTrigger") <<
" GCT NoIsoEG " << std::endl;
1465 <<
"Rank = " << (*iterConst)->rank()
1466 <<
" Eta index = " << (*iterConst)->etaIndex()
1467 <<
" Phi index = " << (*iterConst)->phiIndex()
1472 LogTrace(
"L1GlobalTrigger") <<
" GCT IsoEG " << std::endl;
1476 <<
"Rank = " << (*iterConst)->rank()
1477 <<
" Eta index = " << (*iterConst)->etaIndex()
1478 <<
" Phi index = " << (*iterConst)->phiIndex()
1483 LogTrace(
"L1GlobalTrigger") <<
" GCT CenJet " << std::endl;
1487 <<
"Rank = " << (*iterConst)->rank()
1488 <<
" Eta index = " << (*iterConst)->etaIndex()
1489 <<
" Phi index = " << (*iterConst)->phiIndex()
1494 LogTrace(
"L1GlobalTrigger") <<
" GCT ForJet " << std::endl;
1498 <<
"Rank = " << (*iterConst)->rank()
1499 <<
" Eta index = " << (*iterConst)->etaIndex()
1500 <<
" Phi index = " << (*iterConst)->phiIndex()
1505 LogTrace(
"L1GlobalTrigger") <<
" GCT TauJet " << std::endl;
1509 <<
"Rank = " << (*iterConst)->rank()
1510 <<
" Eta index = " << (*iterConst)->etaIndex()
1511 <<
" Phi index = " << (*iterConst)->phiIndex()
1516 LogTrace(
"L1GlobalTrigger") <<
" GCT ETM " << std::endl;
1531 LogTrace(
"L1GlobalTrigger") <<
" GCT ETT " << std::endl;
1540 LogTrace(
"L1GlobalTrigger") <<
" GCT HTT " << std::endl;
1549 LogTrace(
"L1GlobalTrigger") <<
" GCT HTM " << std::endl;
1564 LogTrace(
"L1GlobalTrigger") <<
" GCT JetCounts " << std::endl;
1566 LogTrace(
"L1GlobalTrigger") << (*m_candJetCounts) << std::endl;
1569 LogTrace(
"L1GlobalTrigger") <<
" GCT HfBitCounts " << std::endl;
1571 LogTrace(
"L1GlobalTrigger") << (*m_candHfBitCounts) << std::endl;
1574 LogTrace(
"L1GlobalTrigger") <<
" GCT HfRingEtSums " << std::endl;
1576 LogTrace(
"L1GlobalTrigger") << (*m_candHfRingEtSums) << std::endl;
EventNumber_t event() const
uint16_t raw() const
get the data
virtual ~L1GlobalTriggerPSB()
unsigned et() const
get the Et
const L1GctHtMiss * m_candHTM
std::vector< L1GctEtMiss > L1GctEtMissCollection
std::vector< L1GctHFRingEtSums > L1GctHFRingEtSumsCollection
std::vector< const L1GctCand * > * m_candL1TauJet
std::vector< L1GctEtHad > L1GctEtHadCollection
Level-1 Trigger jet candidate.
int bunchCrossing() const
void setBData(cms_uint16_t bDataVal, int iB)
std::vector< L1GctJetCounts > L1GctJetCountsCollection
void receiveGctObjectData(edm::Event &iEvent, const edm::InputTag &caloGctInputTag, const int iBxInEvent, const bool receiveNoIsoEG, const int nrL1NoIsoEG, const bool receiveIsoEG, const int nrL1IsoEG, const bool receiveCenJet, const int nrL1CenJet, const bool receiveForJet, const int nrL1ForJet, const bool receiveTauJet, const int nrL1TauJet, const bool receiveETM, const bool receiveETT, const bool receiveHTT, const bool receiveHTM, const bool receiveJetCounts, const bool receiveHfBitCounts, const bool receiveHfRingEtSums)
receive Global Calorimeter Trigger objects
unsigned phi() const
get the Et
L1GlobalTriggerPSB(const edm::InputTag &caloTag, const std::vector< edm::InputTag > &vecTag, edm::ConsumesCollector &&iC)
std::vector< const L1GctCand * > * m_candL1ForJet
Level-1 Trigger EM candidate at output of GCT.
uint16_t bitCount(unsigned const i) const
std::vector< L1GctEtTotal > L1GctEtTotalCollection
const L1GctHFBitCounts * m_candHfBitCounts
std::vector< L1GctHFBitCounts > L1GctHFBitCountsCollection
std::vector< L1GctJetCand > L1GctJetCandCollection
const L1GctEtMiss * m_candETM
void setEventNr(cms_uint32_t eventNrValue)
void setBxNr(cms_uint16_t bxNrValue)
unsigned et() const
get the Et
void setBoardId(cms_uint16_t boardIdValue)
const bool gtTechnicalTriggerResult() const
const L1GctJetCounts * m_candJetCounts
void receiveTechnicalTriggers(edm::Event &iEvent, const std::vector< edm::InputTag > &technicalTriggersInputTags, const int iBxInEvent, const bool receiveTechTr, const int nrL1TechTr)
receive technical trigger
std::vector< bool > m_gtTechnicalTriggers
technical trigger bits
void setBxInEvent(int bxInEventValue)
const unsigned int gtTechnicalTriggerBitNumber() const
unsigned et() const
get the magnitude
int m_verbosity
verbosity level
void receiveBptxData(edm::Event &iEvent, const edm::InputTag &bptxInputTag, const int iBxInEvent, const bool receiveBptx, const bool readFromPsb)
receive BPTX objects
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
const int bxInEvent() const
get/set bunch cross in the GT event record
unsigned count(unsigned i) const
get count by index
const std::string gtTechnicalTriggerName() const
get / set technical trigger name, bit number, bunch cross in the GT event record and result ...
std::vector< L1GctHtMiss > L1GctHtMissCollection
void printGctObjectData(const int iBxInEvent) const
print Global Calorimeter Trigger data
void receiveExternalData(edm::Event &iEvent, const std::vector< edm::InputTag > &externalInputTags, const int iBxInEvent, const bool receiveExternal, const bool readFromPsb)
receive External objects
const L1GctHFRingEtSums * m_candHfRingEtSums
const L1GctEtHad * m_candHTT
void receiveCastorData(edm::Event &iEvent, const edm::InputTag &castorInputTag, const int iBxInEvent, const bool receiveCastor, const bool readFromPsb)
receive CASTOR objects
uint32_t raw() const
get the data
void fillPsbBlock(edm::Event &iEvent, const boost::uint16_t &activeBoardsGtDaq, const int recordLength0, const int recordLength1, const unsigned int altNrBxBoardDaq, const std::vector< L1GtBoard > &boardMaps, const int iBxInEvent, L1GlobalTriggerReadoutRecord *gtDaqReadoutRecord)
fill the content of active PSB boards
unsigned et() const
get the magnitude
uint16_t raw() const
get the data
const L1GctEtTotal * m_candETT
void setGtPsbWord(const L1GtPsbWord &, cms_uint16_t boardIdValue, int bxInEventValue)
ABC for GCT EM and jet candidates.
void setLocalBxNr(cms_uint16_t localBxNrValue)
const std::vector< L1GtTechnicalTrigger > & gtTechnicalTrigger() const
get / set the vector of technical triggers
uint16_t etSum(unsigned const i) const
static unsigned nCounts()
void setAData(cms_uint16_t aDataVal, int iA)
void init(const int nrL1NoIsoEG, const int nrL1IsoEG, const int nrL1CenJet, const int nrL1ForJet, const int nrL1TauJet, const int numberTechnicalTriggers)
initialize the class (mainly reserve)
std::vector< const L1GctCand * > * m_candL1NoIsoEG
std::vector< const L1GctCand * > * m_candL1CenJet
unsigned phi() const
get the Et
std::vector< L1GctEmCand > L1GctEmCandCollection
std::vector< const L1GctCand * > * m_candL1IsoEG