62 m_candHfRingEtSums(0),
88 const int nrL1CenJet,
const int nrL1ForJet,
const int nrL1TauJet,
89 const int numberTechnicalTriggers)
108 const bool receiveNoIsoEG,
const int nrL1NoIsoEG,
109 const bool receiveIsoEG,
const int nrL1IsoEG,
110 const bool receiveCenJet,
const int nrL1CenJet,
111 const bool receiveForJet,
const int nrL1ForJet,
112 const bool receiveTauJet,
const int nrL1TauJet,
113 const bool receiveETM,
const bool receiveETT,
const bool receiveHTT,
const bool receiveHTM,
114 const bool receiveJetCounts,
115 const bool receiveHfBitCounts,
116 const bool receiveHfRingEtSums)
126 std::ostringstream warningsStream;
129 if (receiveNoIsoEG) {
136 if (warningEnabled) {
138 <<
"\nWarning: L1GctEmCandCollection with input label " << caloGctInputTag.
label()
139 <<
" and instance \"nonIsoEm\" \n"
140 <<
"requested in configuration, but not found in the event.\n"
146 for (L1GctEmCandCollection::const_iterator it = emCands->begin(); it
147 != emCands->end(); it++) {
149 if ((*it).bx() == iBxInEvent) {
151 (*m_candL1NoIsoEG).push_back(&(*it));
167 if (warningEnabled) {
169 <<
"\nWarning: L1GctEmCandCollection with input label "
170 << caloGctInputTag.
label()
171 <<
" and instance \"isoEm\" \n"
172 <<
"requested in configuration, but not found in the event.\n"
178 for (L1GctEmCandCollection::const_iterator it = isoEmCands->begin(); it
179 != isoEmCands->end(); it++) {
181 if ((*it).bx() == iBxInEvent) {
183 (*m_candL1IsoEG).push_back(&(*it));
200 if (warningEnabled) {
202 <<
"\nWarning: L1GctJetCandCollection with input label " << caloGctInputTag.
label()
203 <<
" and instance \"cenJets\" \n"
204 <<
"requested in configuration, but not found in the event.\n"
210 for (L1GctJetCandCollection::const_iterator it = cenJets->begin(); it
211 != cenJets->end(); it++) {
213 if ((*it).bx() == iBxInEvent) {
215 (*m_candL1CenJet).push_back(&(*it));
231 if (warningEnabled) {
233 <<
"\nWarning: L1GctJetCandCollection with input label "
234 << caloGctInputTag.
label()
235 <<
" and instance \"forJets\" \n"
236 <<
"requested in configuration, but not found in the event.\n"
242 for (L1GctJetCandCollection::const_iterator it = forJets->begin(); it
243 != forJets->end(); it++) {
245 if ((*it).bx() == iBxInEvent) {
247 (*m_candL1ForJet).push_back(&(*it));
263 if (warningEnabled) {
265 <<
"\nWarning: L1GctJetCandCollection with input label " << caloGctInputTag.
label()
266 <<
" and instance \"tauJets\" \n"
267 <<
"requested in configuration, but not found in the event.\n"
273 for (L1GctJetCandCollection::const_iterator it = tauJets->begin(); it
274 != tauJets->end(); it++) {
276 if ((*it).bx() == iBxInEvent) {
278 (*m_candL1TauJet).push_back(&(*it));
291 iEvent.
getByLabel(caloGctInputTag, missEtColl) ;
294 if (warningEnabled) {
296 <<
"\nWarning: L1GctEtMissCollection with input tag " << caloGctInputTag
297 <<
"\nrequested in configuration, but not found in the event.\n"
303 for (L1GctEtMissCollection::const_iterator it = missEtColl->begin(); it
304 != missEtColl->end(); it++) {
306 if ((*it).bx() == iBxInEvent) {
321 iEvent.
getByLabel(caloGctInputTag, sumEtColl) ;
324 if (warningEnabled) {
326 <<
"\nWarning: L1GctEtTotalCollection with input tag " << caloGctInputTag
327 <<
"\nrequested in configuration, but not found in the event.\n"
333 for (L1GctEtTotalCollection::const_iterator it = sumEtColl->begin(); it
334 != sumEtColl->end(); it++) {
336 if ((*it).bx() == iBxInEvent) {
351 iEvent.
getByLabel(caloGctInputTag, sumHtColl) ;
354 if (warningEnabled) {
356 <<
"\nWarning: L1GctEtHadCollection with input tag " << caloGctInputTag
357 <<
"\nrequested in configuration, but not found in the event.\n"
363 for (L1GctEtHadCollection::const_iterator it = sumHtColl->begin(); it
364 != sumHtColl->end(); it++) {
366 if ((*it).bx() == iBxInEvent) {
381 iEvent.
getByLabel(caloGctInputTag, missHtColl) ;
384 if (warningEnabled) {
386 <<
"\nWarning: L1GctHtMissCollection with input tag " << caloGctInputTag
387 <<
"\nrequested in configuration, but not found in the event.\n"
393 for (L1GctHtMissCollection::const_iterator it = missHtColl->begin(); it
394 != missHtColl->end(); it++) {
396 if ((*it).bx() == iBxInEvent) {
408 if (receiveJetCounts) {
411 iEvent.
getByLabel(caloGctInputTag, jetCountColl) ;
414 if (warningEnabled) {
416 <<
"\nWarning: L1GctJetCountsCollection with input tag " << caloGctInputTag
417 <<
"\nrequested in configuration, but not found in the event.\n"
423 for (L1GctJetCountsCollection::const_iterator it =
424 jetCountColl->begin(); it != jetCountColl->end(); it++) {
426 if ((*it).bx() == iBxInEvent) {
439 if (receiveHfBitCounts) {
442 iEvent.
getByLabel(caloGctInputTag, hfBitCountsColl) ;
444 if (!hfBitCountsColl.
isValid()) {
445 if (warningEnabled) {
447 <<
"\nWarning: L1GctHFBitCountsCollection with input tag " << caloGctInputTag
448 <<
"\nrequested in configuration, but not found in the event.\n"
454 for (L1GctHFBitCountsCollection::const_iterator it =
455 hfBitCountsColl->begin(); it != hfBitCountsColl->end(); it++) {
457 if ((*it).bx() == iBxInEvent) {
470 if (receiveHfRingEtSums) {
473 iEvent.
getByLabel(caloGctInputTag, hfRingEtSums) ;
476 if (warningEnabled) {
478 <<
"\nWarning: L1GctHFRingEtSumsCollection with input tag " << caloGctInputTag
479 <<
"\nrequested in configuration, but not found in the event.\n"
485 for (L1GctHFRingEtSumsCollection::const_iterator it =
486 hfRingEtSums->begin(); it != hfRingEtSums->end(); it++) {
488 if ((*it).bx() == iBxInEvent) {
501 if (warningsStream.tellp() > 0) {
509 <<
"\n**** L1GlobalTriggerPSB receiving calorimeter data for BxInEvent = "
510 << iBxInEvent <<
"\n from " << caloGctInputTag <<
"\n"
522 const bool receiveCastor,
const bool readFromPsb) {
566 const bool receiveBptx,
const bool readFromPsb) {
575 const std::vector<edm::InputTag>& externalInputTags,
576 const int iBxInEvent,
577 const bool receiveExternal,
const bool readFromPsb) {
587 edm::Event&
iEvent,
const std::vector<edm::InputTag>& technicalTriggersInputTags,
588 const int iBxInEvent,
const bool receiveTechTr,
const int nrL1TechTr) {
590 std::ostringstream warningsStream;
602 for (std::vector<edm::InputTag>::const_iterator it = technicalTriggersInputTags.begin(); it
603 != technicalTriggersInputTags.end(); it++) {
608 if (!techTrigRecord.
isValid()) {
609 if (warningEnabled) {
610 warningsStream <<
"\nWarning: L1GtTechnicalTriggerRecord with input tag "
612 <<
"\nrequested in configuration, but not found in the event.\n"
617 const std::vector<L1GtTechnicalTrigger>& ttVec =
618 techTrigRecord->gtTechnicalTrigger();
619 size_t ttVecSize = ttVec.size();
621 for (
size_t iTT = 0; iTT < ttVecSize; ++iTT) {
624 int ttBxInEvent = ttBxRecord.
bxInEvent();
626 if (ttBxInEvent == iBxInEvent) {
633 LogTrace(
"L1GlobalTrigger") <<
"Add for BxInEvent " << iBxInEvent
634 <<
" the technical trigger produced by " << (*it) <<
" : name "
636 << ttBitNumber <<
" and result " << ttResult << std::endl;
650 if (warningsStream.tellp() > 0) {
657 <<
"\n**** L1GlobalTriggerPSB receiving technical triggers: " << std::endl;
662 std::ostringstream myCout;
667 myCout << ( *ritBit ?
'1' :
'0' );
669 if ( ( ( ( iBit + 1 ) % 16 ) == ( sizeW64 % 16 ) ) && ( iBit != 63 )) {
676 LogTrace(
"L1GlobalTrigger") << myCout.str() <<
"\n" << std::endl;
686 const boost::uint16_t& activeBoardsGtDaq,
687 const int recordLength0,
688 const int recordLength1,
689 const unsigned int altNrBxBoardDaq,
690 const std::vector<L1GtBoard>& boardMaps,
691 const int iBxInEvent,
692 std::auto_ptr<L1GlobalTriggerReadoutRecord>& gtDaqReadoutRecord)
698 boost::uint16_t bxCrossHw = 0;
699 if ((bxCross & 0xFFF) == bxCross) {
700 bxCrossHw =
static_cast<boost::uint16_t
> (bxCross);
707 <<
"\nBunch cross number [hex] = " << std::hex << bxCross
708 <<
"\n larger than 12 bits. Set to 0! \n" << std::dec
713 typedef std::vector<L1GtBoard>::const_iterator CItBoardMaps;
719 itBoard = boardMaps.begin();
720 itBoard != boardMaps.end(); ++itBoard) {
722 int iPosition = itBoard->gtPositionDaqRecord();
725 int iActiveBit = itBoard->gtBitDaqActiveBoards();
726 bool activeBoard =
false;
727 bool writeBoard =
false;
731 if (iActiveBit >= 0) {
732 activeBoard = activeBoardsGtDaq & (1 << iActiveBit);
734 int altNrBxBoard = (altNrBxBoardDaq & ( 1 << iActiveBit )) >> iActiveBit;
736 if (altNrBxBoard == 1) {
737 recLength = recordLength1;
739 recLength = recordLength0;
742 int lowBxInEvent = (recLength + 1)/2 - recLength;
743 int uppBxInEvent = (recLength + 1)/2 - 1;
745 if ((iBxInEvent >= lowBxInEvent) && (iBxInEvent <= uppBxInEvent)) {
764 if (activeBoard && writeBoard && (itBoard->gtBoardType() ==
PSB)) {
769 psbWordValue.
setBoardId(itBoard->gtBoardId());
775 boost::uint16_t bxNrValue = bxCrossHw;
776 psbWordValue.
setBxNr(bxNrValue);
781 static_cast<boost::uint32_t>(iEvent.
id().
event()) );
785 boost::uint16_t localBxNrValue = bxCrossHw;
793 std::vector<L1GtPsbQuad> quadInPsb = itBoard->gtQuadInPsb();
794 int nrCables = quadInPsb.size();
796 boost::uint16_t aDataVal = 0;
797 boost::uint16_t bDataVal = 0;
800 for (std::vector<L1GtPsbQuad>::const_iterator
801 itQuad = quadInPsb.begin();
802 itQuad != quadInPsb.end(); ++itQuad) {
806 int iAB = (nrCables - iCable - 1)*nrObjRow;
820 int bitsPerWord = 16;
827 boost::uint16_t bitVal = 0;
829 for (
int i = 0;
i < bitsPerWord; ++
i) {
837 aDataVal = aDataVal | (bitVal <<
i);
840 psbWordValue.
setAData(aDataVal, iAB + iPair);
845 for (
int i = 0;
i < bitsPerWord; ++
i) {
853 bDataVal = bDataVal | (bitVal <<
i);
856 psbWordValue.
setBData(bDataVal, iAB + iPair);
862 for (
int i = 0;
i < bitsPerWord; ++
i) {
870 aDataVal = aDataVal | (bitVal <<
i);
873 psbWordValue.
setAData(aDataVal, iAB + iPair);
877 for (
int i = 0;
i < bitsPerWord; ++
i) {
885 bDataVal = bDataVal | (bitVal <<
i);
888 psbWordValue.
setBData(bDataVal, iAB + iPair);
902 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
903 if (iPair < recL1NoIsoEG) {
905 (
static_cast<const L1GctEmCand*
> ((*m_candL1NoIsoEG)[iPair]))->raw();
910 psbWordValue.
setAData(aDataVal, iAB + iPair);
912 if ((iPair + nrObjRow) < recL1NoIsoEG) {
914 (
static_cast<const L1GctEmCand*
> ((*m_candL1NoIsoEG)[iPair + nrObjRow]))->raw();
919 psbWordValue.
setBData(bDataVal, iAB + iPair);
935 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
936 if (iPair < recL1IsoEG) {
938 (
static_cast<const L1GctEmCand*
> ((*m_candL1IsoEG)[iPair]))->raw();
943 psbWordValue.
setAData(aDataVal, iAB + iPair);
945 if ((iPair + nrObjRow) < recL1IsoEG) {
947 (
static_cast<const L1GctEmCand*
> ((*m_candL1IsoEG)[iPair + nrObjRow]))->raw();
952 psbWordValue.
setBData(bDataVal, iAB + iPair);
969 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
970 if (iPair < recL1CenJet) {
972 (
static_cast<const L1GctJetCand*
> ((*m_candL1CenJet)[iPair]))->raw();
977 psbWordValue.
setAData(aDataVal, iAB + iPair);
979 if ((iPair + nrObjRow) < recL1CenJet) {
981 (
static_cast<const L1GctJetCand*
> ((*m_candL1CenJet)[iPair + nrObjRow]))->raw();
986 psbWordValue.
setBData(bDataVal, iAB + iPair);
1002 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
1003 if (iPair < recL1ForJet) {
1005 (
static_cast<const L1GctJetCand*
> ((*m_candL1ForJet)[iPair]))->raw();
1010 psbWordValue.
setAData(aDataVal, iAB + iPair);
1012 if ((iPair + nrObjRow) < recL1ForJet) {
1014 (
static_cast<const L1GctJetCand*
> ((*m_candL1ForJet)[iPair + nrObjRow]))->raw();
1019 psbWordValue.
setBData(bDataVal, iAB + iPair);
1036 for (
int iPair = 0; iPair < nrObjRow; ++iPair) {
1037 if (iPair < recL1TauJet) {
1039 (
static_cast<const L1GctJetCand*
> ((*m_candL1TauJet)[iPair]))->raw();
1044 psbWordValue.
setAData(aDataVal, iAB + iPair);
1046 if ((iPair + nrObjRow) < recL1TauJet) {
1048 (
static_cast<const L1GctJetCand*
> ((*m_candL1TauJet)[iPair + nrObjRow]))->raw();
1053 psbWordValue.
setBData(bDataVal, iAB + iPair);
1087 psbWordValue.
setAData(aDataVal, iAB + iPair);
1095 psbWordValue.
setBData(bDataVal, iAB + iPair);
1119 psbWordValue.
setAData(aDataVal, iAB + iPair);
1134 psbWordValue.
setBData(bDataVal, iAB + iPair);
1158 int jetCountsBits = 5;
1159 int countsPerWord = 3;
1170 for (
int i = 0;
i < countsPerWord; ++
i) {
1173 << (jetCountsBits*
i));
1179 for (
int i = 0;
i < countsPerWord; ++
i) {
1182 << (jetCountsBits*
i));
1188 psbWordValue.
setAData(aDataVal, iAB + iPair);
1189 psbWordValue.
setBData(bDataVal, iAB + iPair);
1197 for (
int i = 0;
i < countsPerWord; ++
i) {
1200 << (jetCountsBits*
i));
1206 for (
int i = 0;
i < countsPerWord; ++
i) {
1209 << (jetCountsBits*
i));
1215 psbWordValue.
setAData(aDataVal, iAB + iPair);
1216 psbWordValue.
setBData(bDataVal, iAB + iPair);
1237 int nHfBitCounts = hfBitCounts.
nCounts();
1240 int nHfRingEtSums = hfRingEtSums.
nSums();
1248 int hfPerWord =
sizeof(aDataVal)*8/hfBits;
1256 bool aDataFlag =
true;
1257 bool bDataFlag =
false;
1261 for (
int i = 0;
i < nHfBitCounts; ++
i) {
1264 if (iHf < hfPerWord) {
1282 if (iHf < hfPerWord) {
1300 iHf = nHfBitCounts%hfPerWord;
1307 if (aDataFlag && bDataFlag) {
1309 <<
"\n HfBitCounts collection filled aData and bData ["
1310 << (iAB + iPair) <<
"]"
1311 <<
"\n HfRingEtSums collection has no space to be written"
1317 for (
int i = 0;
i < nHfRingEtSums; ++
i) {
1320 if (iHf < hfPerWord) {
1338 if (iHf < hfPerWord) {
1356 iHf = nHfRingEtSums%hfPerWord;
1363 psbWordValue.
setAData(aDataVal, iAB + iPair);
1364 psbWordValue.
setBData(bDataVal, iAB + iPair);
1373 if (aDataFlag && bDataFlag) {
1375 <<
"\n aData and bData ["
1376 << (iAB + iPair) <<
"] full"
1377 <<
"\n HfRingEtSums collection has not enough space to be written"
1399 gtDaqReadoutRecord->setGtPsbWord(psbWordValue);
1439 <<
"\nL1GlobalTrigger: GCT data [hex] received by PSBs for BxInEvent = "
1440 << iBxInEvent <<
"\n" << std::endl;
1442 std::vector<const L1GctCand*>::const_iterator iterConst;
1444 LogTrace(
"L1GlobalTrigger") <<
" GCT NoIsoEG " << std::endl;
1449 <<
"Rank = " << (*iterConst)->rank()
1450 <<
" Eta index = " << (*iterConst)->etaIndex()
1451 <<
" Phi index = " << (*iterConst)->phiIndex()
1456 LogTrace(
"L1GlobalTrigger") <<
" GCT IsoEG " << std::endl;
1460 <<
"Rank = " << (*iterConst)->rank()
1461 <<
" Eta index = " << (*iterConst)->etaIndex()
1462 <<
" Phi index = " << (*iterConst)->phiIndex()
1467 LogTrace(
"L1GlobalTrigger") <<
" GCT CenJet " << std::endl;
1471 <<
"Rank = " << (*iterConst)->rank()
1472 <<
" Eta index = " << (*iterConst)->etaIndex()
1473 <<
" Phi index = " << (*iterConst)->phiIndex()
1478 LogTrace(
"L1GlobalTrigger") <<
" GCT ForJet " << std::endl;
1482 <<
"Rank = " << (*iterConst)->rank()
1483 <<
" Eta index = " << (*iterConst)->etaIndex()
1484 <<
" Phi index = " << (*iterConst)->phiIndex()
1489 LogTrace(
"L1GlobalTrigger") <<
" GCT TauJet " << std::endl;
1493 <<
"Rank = " << (*iterConst)->rank()
1494 <<
" Eta index = " << (*iterConst)->etaIndex()
1495 <<
" Phi index = " << (*iterConst)->phiIndex()
1500 LogTrace(
"L1GlobalTrigger") <<
" GCT ETM " << std::endl;
1515 LogTrace(
"L1GlobalTrigger") <<
" GCT ETT " << std::endl;
1524 LogTrace(
"L1GlobalTrigger") <<
" GCT HTT " << std::endl;
1533 LogTrace(
"L1GlobalTrigger") <<
" GCT HTM " << std::endl;
1548 LogTrace(
"L1GlobalTrigger") <<
" GCT JetCounts " << std::endl;
1550 LogTrace(
"L1GlobalTrigger") << (*m_candJetCounts) << std::endl;
1553 LogTrace(
"L1GlobalTrigger") <<
" GCT HfBitCounts " << std::endl;
1555 LogTrace(
"L1GlobalTrigger") << (*m_candHfBitCounts) << std::endl;
1558 LogTrace(
"L1GlobalTrigger") <<
" GCT HfRingEtSums " << std::endl;
1560 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< const L1GctCand * > * m_candL1TauJet
Level-1 Trigger jet candidate.
int bunchCrossing() const
void setBData(cms_uint16_t bDataVal, int iB)
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
std::vector< const L1GctCand * > * m_candL1ForJet
Level-1 Trigger EM candidate at output of GCT.
uint16_t bitCount(unsigned const i) const
const L1GctHFBitCounts * m_candHfBitCounts
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 ...
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
unsigned et() const
get the magnitude
uint16_t raw() const
get the data
const L1GctEtTotal * m_candETT
ABC for GCT EM and jet candidates.
void setLocalBxNr(cms_uint16_t localBxNrValue)
uint16_t etSum(unsigned const i) const
static unsigned nCounts()
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, std::auto_ptr< L1GlobalTriggerReadoutRecord > >DaqReadoutRecord)
fill the content of active PSB boards
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< const L1GctCand * > * m_candL1IsoEG