CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
l1t::GtBoard Class Reference

#include <GtBoard.h>

Public Member Functions

void fillAlgRecord (int iBxInEvent, std::auto_ptr< GlobalAlgBlkBxCollection > &uGtAlgRecord, cms_uint64_t orbNr, int bxNr)
 Fill the Daq Records. More...
 
void fillExtRecord (int iBxInEvent, std::auto_ptr< GlobalExtBlkBxCollection > &uGtExtRecord, cms_uint64_t orbNr, int bxNr)
 
const std::bitset
< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > & 
getAlgorithmOR () const
 return algorithm OR decision More...
 
const BXVector< const
l1t::L1Candidate * > * 
getCandL1EG () const
 pointer to EG data list More...
 
const BXVector< const
l1t::EtSum * > * 
getCandL1EtSum () const
 pointer to Tau data list More...
 
const BXVector< const
l1t::L1Candidate * > * 
getCandL1Jet () const
 pointer to Jet data list More...
 
const BXVector< const
l1t::Muon * > * 
getCandL1Mu () const
 return global muon trigger candidate More...
 
const BXVector< const
l1t::L1Candidate * > * 
getCandL1Tau () const
 pointer to Tau data list More...
 
const std::bitset
< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > & 
getDecisionWord () const
 return decision More...
 
 GtBoard ()
 
void init (const int numberPhysTriggers, const int nrL1Mu, const int nrL1EG, const int nrL1Tau, const int nrL1Jet, int bxFirst, int bxLast)
 initialize the class (mainly reserve) More...
 
void printGmtData (const int iBxInEvent) const
 print received Muon dataWord More...
 
void receiveCaloObjectData (edm::Event &, const edm::InputTag &, const bool receiveEG, const int nrL1EG, const bool receiveTau, const int nrL1Tau, const bool receiveJet, const int nrL1Jet, const bool receiveEtSums)
 receive data from Global Muon Trigger More...
 
void receiveMuonObjectData (edm::Event &, const edm::InputTag &, const bool receiveMu, const int nrL1Mu)
 
void reset ()
 clear uGT More...
 
void resetCalo ()
 
void resetMu ()
 
void runFDL (edm::Event &iEvent, const int iBxInEvent, const bool algorithmTriggersUnprescaled, const bool algorithmTriggersUnmasked)
 run the uGT FDL (Apply Prescales and Veto) More...
 
void runGTL (edm::Event &iEvent, const edm::EventSetup &evSetup, const bool produceL1GtObjectMapRecord, const int iBxInEvent, std::auto_ptr< L1GlobalTriggerObjectMapRecord > &gtObjectMapRecord, const unsigned int numberPhysTriggers, const int nrL1Mu, const int nrL1EG, const int nrL1Tau, const int nrL1Jet, const int nrL1JetCounts)
 run the uGT GTL (Conditions and Algorithms) More...
 
void setBxFirst (int bx)
 
void setBxLast (int bx)
 
void setVerbosity (const int verbosity)
 
virtual ~GtBoard ()
 

Private Attributes

bool m_algFinalOr
 
bool m_algInitialOr
 
bool m_algPrescaledOr
 
unsigned int m_boardEventCount
 
int m_bxFirst_
 
int m_bxLast_
 
BXVector< const
l1t::L1Candidate * > * 
m_candL1EG
 
BXVector< const l1t::EtSum * > * m_candL1EtSum
 
BXVector< const
l1t::L1Candidate * > * 
m_candL1Jet
 
BXVector< const l1t::Muon * > * m_candL1Mu
 
BXVector< const
l1t::L1Candidate * > * 
m_candL1Tau
 
std::vector
< AlgorithmEvaluation::ConditionEvaluationMap
m_conditionResultMaps
 
L1GtEtaPhiConversionsm_gtEtaPhiConversions
 
std::bitset
< L1GlobalTriggerReadoutSetup::NumberPhysTriggers
m_gtlAlgorithmOR
 
std::bitset
< L1GlobalTriggerReadoutSetup::NumberPhysTriggers
m_gtlDecisionWord
 
bool m_isDebugEnabled
 
const L1CaloGeometrym_l1CaloGeometry
 
unsigned long long m_l1CaloGeometryCacheID
 
const TriggerMenum_l1GtMenu
 
unsigned long long m_l1GtMenuCacheID
 
const L1MuTriggerScalesm_l1MuTriggerScales
 
unsigned long long m_l1MuTriggerScalesCacheID
 
GlobalAlgBlk m_uGtAlgBlk
 
int m_uGtBoardNumber
 
GlobalExtBlk m_uGtExtBlk
 
bool m_uGtFinalBoard
 
int m_verbosity
 verbosity level More...
 

Detailed Description

Definition at line 53 of file GtBoard.h.

Constructor & Destructor Documentation

GtBoard::GtBoard ( )

Definition at line 85 of file GtBoard.cc.

References m_boardEventCount, m_gtlAlgorithmOR, m_gtlDecisionWord, m_l1CaloGeometryCacheID, m_l1GtMenuCacheID, m_l1MuTriggerScalesCacheID, m_uGtAlgBlk, m_uGtBoardNumber, m_uGtExtBlk, m_uGtFinalBoard, GlobalExtBlk::reset(), and GlobalAlgBlk::reset().

85  :
92 {
93 
96 
97  m_gtlAlgorithmOR.reset();
98  m_gtlDecisionWord.reset();
99 
100  // initialize cached IDs
101  m_l1GtMenuCacheID = 0ULL;
104 
105  // Counter for number of events board sees
107 
108  // Need to expand use with more than one uGt GtBoard for now assume 1
109  m_uGtBoardNumber = 0;
110  m_uGtFinalBoard = true;
111 
112 /* Do we need this?
113  // pointer to conversion - actually done in the event loop (cached)
114  m_gtEtaPhiConversions = new L1GtEtaPhiConversions();
115  m_gtEtaPhiConversions->setVerbosity(m_verbosity);
116 */
117 
118 }
GlobalExtBlk m_uGtExtBlk
Definition: GtBoard.h:242
bool isDebugEnabled()
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlAlgorithmOR
Definition: GtBoard.h:238
GlobalAlgBlk m_uGtAlgBlk
Definition: GtBoard.h:241
void reset()
reset the content of a GlobalExtBlk
Definition: GlobalExtBlk.cc:92
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GtBoard.h:224
bool m_uGtFinalBoard
Definition: GtBoard.h:264
unsigned int m_boardEventCount
Definition: GtBoard.h:260
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlDecisionWord
Definition: GtBoard.h:239
unsigned long long m_l1MuTriggerScalesCacheID
Definition: GtBoard.h:217
bool m_isDebugEnabled
Definition: GtBoard.h:252
void reset()
reset the content of a GlobalAlgBlk
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GtBoard.h:228
unsigned long long m_l1GtMenuCacheID
Definition: GtBoard.h:210
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GtBoard.h:225
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GtBoard.h:226
int m_uGtBoardNumber
Definition: GtBoard.h:263
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GtBoard.h:227
unsigned long long m_l1CaloGeometryCacheID
Definition: GtBoard.h:214
GtBoard::~GtBoard ( )
virtual

Definition at line 121 of file GtBoard.cc.

References reset().

121  {
122 
123  reset();
124  delete m_candL1Mu;
125  delete m_candL1EG;
126  delete m_candL1Tau;
127  delete m_candL1Jet;
128  delete m_candL1EtSum;
129 
130 // delete m_gtEtaPhiConversions;
131 
132 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GtBoard.h:224
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GtBoard.h:228
void reset()
clear uGT
Definition: GtBoard.cc:1050
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GtBoard.h:225
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GtBoard.h:226
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GtBoard.h:227

Member Function Documentation

void GtBoard::fillAlgRecord ( int  iBxInEvent,
std::auto_ptr< GlobalAlgBlkBxCollection > &  uGtAlgRecord,
cms_uint64_t  orbNr,
int  bxNr 
)

Fill the Daq Records.

Definition at line 992 of file GtBoard.cc.

References LogDebug.

997 {
998 
999  if (m_verbosity) {
1000  LogDebug("l1t|Global")
1001  << "\n**** GtBoard fill DAQ Records for bx= " << iBxInEvent
1002  << std::endl;
1003 
1004  }
1005 
1006 // Set header information
1007  m_uGtAlgBlk.setOrbitNr((unsigned int)(orbNr & 0xFFFFFFFF));
1008  m_uGtAlgBlk.setbxNr((bxNr & 0xFFFF));
1009  m_uGtAlgBlk.setbxInEventNr((iBxInEvent & 0xF));
1010 
1011 // Set the header information and Final OR
1012  int finalOR = 0x0;
1013  if(m_algFinalOr) finalOR = (finalOR | 0x2);
1014  if(m_uGtFinalBoard) {
1015  finalOR = (finalOR | 0x8);
1016  if( (finalOR >>1) & 0x1 ) finalOR = (finalOR | 0x1);
1017  }
1018  m_uGtAlgBlk.setFinalOR(finalOR);
1019 
1020 
1021  uGtAlgRecord->push_back(iBxInEvent, m_uGtAlgBlk);
1022 
1023 }
#define LogDebug(id)
void setFinalOR(int fOR)
Definition: GlobalAlgBlk.h:57
int m_verbosity
verbosity level
Definition: GtBoard.h:251
GlobalAlgBlk m_uGtAlgBlk
Definition: GtBoard.h:241
void setbxInEventNr(int bxNr)
Definition: GlobalAlgBlk.h:56
bool m_uGtFinalBoard
Definition: GtBoard.h:264
bool m_algFinalOr
Definition: GtBoard.h:257
void setbxNr(int bxNr)
Definition: GlobalAlgBlk.h:55
void setOrbitNr(int orbNr)
set simple members
Definition: GlobalAlgBlk.h:54
void GtBoard::fillExtRecord ( int  iBxInEvent,
std::auto_ptr< GlobalExtBlkBxCollection > &  uGtExtRecord,
cms_uint64_t  orbNr,
int  bxNr 
)

Definition at line 1026 of file GtBoard.cc.

References LogDebug.

1031 {
1032 
1033  if (m_verbosity) {
1034  LogDebug("l1t|Global")
1035  << "\n**** Board fill DAQ Records for bx= " << iBxInEvent
1036  << std::endl;
1037 
1038  }
1039 // Set header information
1040  m_uGtExtBlk.setOrbitNr((unsigned int)(orbNr & 0xFFFFFFFF));
1041  m_uGtExtBlk.setbxNr((bxNr & 0xFFFF));
1042  m_uGtExtBlk.setbxInEventNr((iBxInEvent & 0xF));
1043 
1044  uGtExtRecord->push_back(iBxInEvent, m_uGtExtBlk);
1045 
1046 }
#define LogDebug(id)
GlobalExtBlk m_uGtExtBlk
Definition: GtBoard.h:242
int m_verbosity
verbosity level
Definition: GtBoard.h:251
void setbxInEventNr(int bxNr)
Definition: GlobalExtBlk.h:53
void setOrbitNr(int orbNr)
set simple members
Definition: GlobalExtBlk.h:51
void setbxNr(int bxNr)
Definition: GlobalExtBlk.h:52
const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& l1t::GtBoard::getAlgorithmOR ( ) const
inline

return algorithm OR decision

Definition at line 131 of file GtBoard.h.

References m_gtlAlgorithmOR.

132  {
133  return m_gtlAlgorithmOR;
134  }
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlAlgorithmOR
Definition: GtBoard.h:238
const BXVector<const l1t::L1Candidate*>* l1t::GtBoard::getCandL1EG ( ) const
inline

pointer to EG data list

Definition at line 143 of file GtBoard.h.

References m_candL1EG.

144  {
145  return m_candL1EG;
146  }
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GtBoard.h:225
const BXVector<const l1t::EtSum*>* l1t::GtBoard::getCandL1EtSum ( ) const
inline

pointer to Tau data list

Definition at line 162 of file GtBoard.h.

References m_candL1EtSum.

163  {
164  return m_candL1EtSum;
165  }
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GtBoard.h:228
const BXVector<const l1t::L1Candidate*>* l1t::GtBoard::getCandL1Jet ( ) const
inline

pointer to Jet data list

Definition at line 149 of file GtBoard.h.

References m_candL1Jet.

150  {
151  return m_candL1Jet;
152  }
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GtBoard.h:227
const BXVector<const l1t::Muon*>* l1t::GtBoard::getCandL1Mu ( ) const
inline

return global muon trigger candidate

Definition at line 137 of file GtBoard.h.

References m_candL1Mu.

138  {
139  return m_candL1Mu;
140  }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GtBoard.h:224
const BXVector<const l1t::L1Candidate*>* l1t::GtBoard::getCandL1Tau ( ) const
inline

pointer to Tau data list

Definition at line 156 of file GtBoard.h.

References m_candL1Tau.

157  {
158  return m_candL1Tau;
159  }
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GtBoard.h:226
const std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers>& l1t::GtBoard::getDecisionWord ( ) const
inline

return decision

Definition at line 125 of file GtBoard.h.

References m_gtlDecisionWord.

126  {
127  return m_gtlDecisionWord;
128  }
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlDecisionWord
Definition: GtBoard.h:239
void GtBoard::init ( const int  numberPhysTriggers,
const int  nrL1Mu,
const int  nrL1EG,
const int  nrL1Tau,
const int  nrL1Jet,
int  bxFirst,
int  bxLast 
)

initialize the class (mainly reserve)

Definition at line 147 of file GtBoard.cc.

References LogDebug.

148  {
149 
151  setBxLast(bxLast);
152 
153  m_candL1Mu->setBXRange( m_bxFirst_, m_bxLast_ );
154  m_candL1EG->setBXRange( m_bxFirst_, m_bxLast_ );
155  m_candL1Tau->setBXRange( m_bxFirst_, m_bxLast_ );
156  m_candL1Jet->setBXRange( m_bxFirst_, m_bxLast_ );
157  m_candL1EtSum->setBXRange( m_bxFirst_, m_bxLast_ );
158 
159  m_uGtAlgBlk.reset();
160  m_uGtExtBlk.reset();
161 
162  LogDebug("l1t|Global") << "\t Initializing Board with bxFirst = " << m_bxFirst_ << ", bxLast = " << m_bxLast_ << std::endl;
163 
164  //m_candL1Mu->resizeAll(nrL1Mu);
165 
166  // FIXME move from bitset to std::vector<bool> to be able to use
167  // numberPhysTriggers from EventSetup
168 
169  //m_gtlAlgorithmOR.reserve(numberPhysTriggers);
170  //m_gtlAlgorithmOR.assign(numberPhysTriggers, false);
171 
172  //m_gtlDecisionWord.reserve(numberPhysTriggers);
173  //m_gtlDecisionWord.assign(numberPhysTriggers, false);
174 
175 }
#define LogDebug(id)
GlobalExtBlk m_uGtExtBlk
Definition: GtBoard.h:242
GlobalAlgBlk m_uGtAlgBlk
Definition: GtBoard.h:241
void reset()
reset the content of a GlobalExtBlk
Definition: GlobalExtBlk.cc:92
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GtBoard.h:224
int m_bxFirst_
Definition: GtBoard.h:235
void setBxLast(int bx)
Definition: GtBoard.cc:141
void reset()
reset the content of a GlobalAlgBlk
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GtBoard.h:228
void setBxFirst(int bx)
Definition: GtBoard.cc:135
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GtBoard.h:225
int m_bxLast_
Definition: GtBoard.h:236
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GtBoard.h:226
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GtBoard.h:227
void GtBoard::printGmtData ( const int  iBxInEvent) const

print received Muon dataWord

Definition at line 1089 of file GtBoard.cc.

References LogTrace.

1089  {
1090 
1091  LogTrace("l1t|Global")
1092  << "\nl1t::L1GlobalTrigger: GMT data received for BxInEvent = "
1093  << iBxInEvent << std::endl;
1094 
1095  int nrL1Mu = m_candL1Mu->size(iBxInEvent);
1096  LogTrace("l1t|Global")
1097  << "Number of GMT muons = " << nrL1Mu << "\n"
1098  << std::endl;
1099 /*
1100  for (std::vector<const L1MuGMTCand*>::const_iterator iter =
1101  m_candL1Mu->begin(); iter != m_candL1Mu->end(); iter++) {
1102 
1103  LogTrace("l1t|Global") << *(*iter) << std::endl;
1104 
1105  }
1106 */
1107  LogTrace("l1t|Global") << std::endl;
1108 
1109 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GtBoard.h:224
#define LogTrace(id)
void GtBoard::receiveCaloObjectData ( edm::Event iEvent,
const edm::InputTag caloInputTag,
const bool  receiveEG,
const int  nrL1EG,
const bool  receiveTau,
const int  nrL1Tau,
const bool  receiveJet,
const int  nrL1Jet,
const bool  receiveEtSums 
)

receive data from Global Muon Trigger

Definition at line 180 of file GtBoard.cc.

References edm::Event::getByLabel(), i, edm::HandleBase::isValid(), metsig::jet, LogDebug, and metsig::tau.

185  {
186 
187  if (m_verbosity) {
188  LogDebug("l1t|Global")
189  << "\n**** Board receiving Calo Data "
190  << "\n from input tag " << caloInputTag << "\n"
191  << std::endl;
192 
193  }
194 
195  resetCalo();
196 
197  // get data from Calorimeter
198  if (receiveEG) {
200  iEvent.getByLabel(caloInputTag, egData);
201 
202  if (!egData.isValid()) {
203  if (m_verbosity) {
204  edm::LogWarning("l1t|Global")
205  << "\nWarning: BXVector<l1t::EGamma> with input tag "
206  << caloInputTag
207  << "\nrequested in configuration, but not found in the event.\n"
208  << std::endl;
209  }
210  } else {
211  // bx in EG data
212  for(int i = egData->getFirstBX(); i <= egData->getLastBX(); ++i) {
213 
214  //Loop over EG in this bx
215  for(std::vector<l1t::EGamma>::const_iterator eg = egData->begin(i); eg != egData->end(i); ++eg) {
216 
217  (*m_candL1EG).push_back(i,&(*eg));
218  LogDebug("l1t|Global") << "EG Pt " << eg->hwPt() << " Eta " << eg->hwEta() << " Phi " << eg->hwPhi() << " Qual " << eg->hwQual() <<" Iso " << eg->hwIso() << std::endl;
219  } //end loop over EG in bx
220  } //end loop over bx
221 
222  } //end if over valid EG data
223 
224  } //end if ReveiveEG data
225 
226 
227  if (receiveTau) {
229  iEvent.getByLabel(caloInputTag, tauData);
230 
231  if (!tauData.isValid()) {
232  if (m_verbosity) {
233  edm::LogWarning("l1t|Global")
234  << "\nWarning: BXVector<l1t::Tau> with input tag "
235  << caloInputTag
236  << "\nrequested in configuration, but not found in the event.\n"
237  << std::endl;
238  }
239  } else {
240  // bx in tau data
241  for(int i = tauData->getFirstBX(); i <= tauData->getLastBX(); ++i) {
242 
243  //Loop over tau in this bx
244  for(std::vector<l1t::Tau>::const_iterator tau = tauData->begin(i); tau != tauData->end(i); ++tau) {
245 
246  (*m_candL1Tau).push_back(i,&(*tau));
247  LogDebug("l1t|Global") << "tau Pt " << tau->hwPt() << " Eta " << tau->hwEta() << " Phi " << tau->hwPhi() << " Qual " << tau->hwQual() <<" Iso " << tau->hwIso() << std::endl;
248  } //end loop over tau in bx
249  } //end loop over bx
250 
251  } //end if over valid tau data
252 
253  } //end if ReveiveTau data
254 
255 
256  if (receiveJet) {
258  iEvent.getByLabel(caloInputTag, jetData);
259 
260  if (!jetData.isValid()) {
261  if (m_verbosity) {
262  edm::LogWarning("l1t|Global")
263  << "\nWarning: BXVector<l1t::Jet> with input tag "
264  << caloInputTag
265  << "\nrequested in configuration, but not found in the event.\n"
266  << std::endl;
267  }
268  } else {
269  // bx in jet data
270  for(int i = jetData->getFirstBX(); i <= jetData->getLastBX(); ++i) {
271 
272  //Loop over jet in this bx
273  for(std::vector<l1t::Jet>::const_iterator jet = jetData->begin(i); jet != jetData->end(i); ++jet) {
274 
275  (*m_candL1Jet).push_back(i,&(*jet));
276  LogDebug("l1t|Global") << "Jet Pt " << jet->hwPt() << " Eta " << jet->hwEta() << " Phi " << jet->hwPhi() << " Qual " << jet->hwQual() <<" Iso " << jet->hwIso() << std::endl;
277  } //end loop over jet in bx
278  } //end loop over bx
279 
280  } //end if over valid jet data
281 
282  } //end if ReveiveJet data
283 
284 
285  if(receiveEtSums) {
287  iEvent.getByLabel(caloInputTag, etSumData);
288 
289  if(!etSumData.isValid()) {
290  if (m_verbosity) {
291  edm::LogWarning("l1t|Global")
292  << "\nWarning: BXVector<l1t::EtSum> with input tag "
293  << caloInputTag
294  << "\nrequested in configuration, but not found in the event.\n"
295  << std::endl;
296  }
297  } else {
298 
299  for(int i = etSumData->getFirstBX(); i <= etSumData->getLastBX(); ++i) {
300 
301  //Loop over jet in this bx
302  for(std::vector<l1t::EtSum>::const_iterator etsum = etSumData->begin(i); etsum != etSumData->end(i); ++etsum) {
303 
304  (*m_candL1EtSum).push_back(i,&(*etsum));
305 
306 /* In case we need to split these out
307  switch ( etsum->getType() ) {
308  case l1t::EtSum::EtSumType::kMissingEt:
309  (*m_candETM).push_back(i,&(*etsum));
310  LogDebug("l1t|Global") << "ETM: Pt " << etsum->hwPt() << " Phi " << etsum->hwPhi() << std::endl;
311  break;
312  case l1t::EtSum::EtSumType::kMissingHt:
313  (*m_candHTM.push_back(i,&(*etsum);
314  LogDebug("l1t|Global") << "HTM: Pt " << etsum->hwPt() << " Phi " << etsum->hwPhi() << std::endl;
315  break;
316  case l1t::EtSum::EtSumType::kTotalEt:
317  (*m_candETT.push_back(i,&(*etsum);
318  LogDebug("l1t|Global") << "ETT: Pt " << etsum->hwPt() << std::endl;
319  break;
320  case l1t::EtSum::EtSumType::kTotalHt:
321  (*m_candHTT.push_back(i,&(*etsum);
322  LogDebug("l1t|Global") << "HTT: Pt " << etsum->hwPt() << std::endl;
323  break;
324  }
325 */
326 
327  } //end loop over jet in bx
328  } //end loop over Bx
329 
330  }
331 
332 
333  }
334 
335 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
int m_verbosity
verbosity level
Definition: GtBoard.h:251
bool isValid() const
Definition: HandleBase.h:75
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:420
void resetCalo()
Definition: GtBoard.cc:1074
void GtBoard::receiveMuonObjectData ( edm::Event iEvent,
const edm::InputTag muInputTag,
const bool  receiveMu,
const int  nrL1Mu 
)

Definition at line 339 of file GtBoard.cc.

References edm::Event::getByLabel(), i, edm::HandleBase::isValid(), LogDebug, and RPCpg::mu.

341  {
342 
343  if (m_verbosity) {
344  LogDebug("l1t|Global")
345  << "\n**** GtBoard receiving muon data = "
346  << "\n from input tag " << muInputTag << "\n"
347  << std::endl;
348  }
349 
350  resetMu();
351 
352  // get data from Global Muon Trigger
353  if (receiveMu) {
355  iEvent.getByLabel(muInputTag, muonData);
356 
357  if (!muonData.isValid()) {
358  if (m_verbosity) {
359  edm::LogWarning("l1t|Global")
360  << "\nWarning: BXVector<l1t::Muon> with input tag "
361  << muInputTag
362  << "\nrequested in configuration, but not found in the event.\n"
363  << std::endl;
364  }
365  } else {
366  // bx in muon data
367  for(int i = muonData->getFirstBX(); i <= muonData->getLastBX(); ++i) {
368 
369  //Loop over Muons in this bx
370  for(std::vector<l1t::Muon>::const_iterator mu = muonData->begin(i); mu != muonData->end(i); ++mu) {
371 
372  (*m_candL1Mu).push_back(i,&(*mu));
373  LogDebug("l1t|Global") << "Muon Pt " << mu->hwPt() << " Eta " << mu->hwEta() << " Phi " << mu->hwPhi() << " Qual " << mu->hwQual() <<" Iso " << mu->hwIso() << std::endl;
374  } //end loop over muons in bx
375  } //end loop over bx
376 
377  } //end if over valid muon data
378 
379  } //end if ReveiveMuon data
380 
381  if (m_verbosity && m_isDebugEnabled) {
382 // *** Needs fixing
383 // printGmtData(iBxInEvent);
384  }
385 
386 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
void resetMu()
Definition: GtBoard.cc:1066
int m_verbosity
verbosity level
Definition: GtBoard.h:251
bool m_isDebugEnabled
Definition: GtBoard.h:252
const int mu
Definition: Constants.h:22
bool isValid() const
Definition: HandleBase.h:75
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:420
void GtBoard::reset ( void  )

clear uGT

Definition at line 1050 of file GtBoard.cc.

1050  {
1051 
1052  resetMu();
1053  resetCalo();
1054 
1055  m_uGtAlgBlk.reset();
1056  m_uGtExtBlk.reset();
1057 
1058  m_gtlDecisionWord.reset();
1059  m_gtlAlgorithmOR.reset();
1060 
1061 
1062 
1063 }
GlobalExtBlk m_uGtExtBlk
Definition: GtBoard.h:242
void resetMu()
Definition: GtBoard.cc:1066
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlAlgorithmOR
Definition: GtBoard.h:238
GlobalAlgBlk m_uGtAlgBlk
Definition: GtBoard.h:241
void reset()
reset the content of a GlobalExtBlk
Definition: GlobalExtBlk.cc:92
std::bitset< L1GlobalTriggerReadoutSetup::NumberPhysTriggers > m_gtlDecisionWord
Definition: GtBoard.h:239
void reset()
reset the content of a GlobalAlgBlk
void resetCalo()
Definition: GtBoard.cc:1074
void GtBoard::resetCalo ( )

Definition at line 1074 of file GtBoard.cc.

1074  {
1075 
1076  m_candL1EG->clear();
1077  m_candL1Tau->clear();
1078  m_candL1Jet->clear();
1079  m_candL1EtSum->clear();
1080 
1081  m_candL1EG->setBXRange( m_bxFirst_, m_bxLast_ );
1082  m_candL1Tau->setBXRange( m_bxFirst_, m_bxLast_ );
1083  m_candL1Jet->setBXRange( m_bxFirst_, m_bxLast_ );
1084  m_candL1EtSum->setBXRange( m_bxFirst_, m_bxLast_ );
1085 
1086 }
int m_bxFirst_
Definition: GtBoard.h:235
BXVector< const l1t::EtSum * > * m_candL1EtSum
Definition: GtBoard.h:228
BXVector< const l1t::L1Candidate * > * m_candL1EG
Definition: GtBoard.h:225
int m_bxLast_
Definition: GtBoard.h:236
BXVector< const l1t::L1Candidate * > * m_candL1Tau
Definition: GtBoard.h:226
BXVector< const l1t::L1Candidate * > * m_candL1Jet
Definition: GtBoard.h:227
void GtBoard::resetMu ( )

Definition at line 1066 of file GtBoard.cc.

1066  {
1067 
1068  m_candL1Mu->clear();
1069  m_candL1Mu->setBXRange( m_bxFirst_, m_bxLast_ );
1070 
1071 }
BXVector< const l1t::Muon * > * m_candL1Mu
Definition: GtBoard.h:224
int m_bxFirst_
Definition: GtBoard.h:235
int m_bxLast_
Definition: GtBoard.h:236
void GtBoard::runFDL ( edm::Event iEvent,
const int  iBxInEvent,
const bool  algorithmTriggersUnprescaled,
const bool  algorithmTriggersUnmasked 
)

run the uGT FDL (Apply Prescales and Veto)

if we are masking.

Definition at line 897 of file GtBoard.cc.

References LogDebug.

900  {
901 
902 
903  if (m_verbosity) {
904  LogDebug("l1t|Global")
905  << "\n**** GtBoard apply Final Decision Logic "
906  << std::endl;
907 
908  }
909 
910 /* Nothing with prescales right now.
911  // prescale counters are reset at the beginning of the luminosity segment
912  if (m_firstEv) {
913 
914  m_firstEv = false;
915  }
916 
917  // TODO FIXME find the beginning of the luminosity segment
918  if (m_firstEvLumiSegment) {
919 
920  m_firstEvLumiSegment = false;
921 
922  }
923 */
924 
925  // Copy Algorithm bits to Prescaled word
926  // Prescaling and Masking done below if requested.
928 
929 
930  // -------------------------------------------
931  // Apply Prescales or skip if turned off
932  // -------------------------------------------
933  if (!algorithmTriggersUnprescaled){
934 /*
935  for (unsigned int iBit = 0; iBit < numberPhysTriggers; ++iBit) {
936 
937  if (prescaleFactorsAlgoTrig.at(iBit) != 1) {
938 
939  bool bitValue = algoDecisionWord.at( iBit );
940  if (bitValue) {
941 
942  (m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit))--;
943  if (m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit) == 0) {
944 
945  // bit already true in algoDecisionWord, just reset counter
946  m_prescaleCounterAlgoTrig.at(inBxInEvent).at(iBit) =
947  prescaleFactorsAlgoTrig.at(iBit);
948  } else {
949 
950  // change bit to false in prescaled word and final decision word
951  algoDecisionWord[iBit] = false;
952 
953  } //if Prescale counter reached zero
954  } //if algo bit is set true
955  } //if prescale factor is not 1 (ie. no prescale)
956  } //loop over alg bits
957 */
959 
960  } else {
961 
962  // Since not Prescaling just take OR of Initial Work
964 
965  }//if we are going to apply prescales.
966 
967 
968 
969  // Copy Algorithm bits fron Prescaled word to Final Word
970  // Masking done below if requested.
972 
973  if(!algorithmTriggersUnmasked) {
974 
975 
976 /*
977  masking the bits goes here.
978 */
980 
981  } else {
982 
984 
985  }
986 
987 
988 
989 }
#define LogDebug(id)
int m_verbosity
verbosity level
Definition: GtBoard.h:251
GlobalAlgBlk m_uGtAlgBlk
Definition: GtBoard.h:241
bool m_algFinalOr
Definition: GtBoard.h:257
void copyPrescaledToFinal()
Definition: GlobalAlgBlk.h:67
bool m_algInitialOr
Definition: GtBoard.h:255
void copyInitialToPrescaled()
Copy vectors words.
Definition: GlobalAlgBlk.h:66
bool m_algPrescaledOr
Definition: GtBoard.h:256
void GtBoard::runGTL ( edm::Event iEvent,
const edm::EventSetup evSetup,
const bool  produceL1GtObjectMapRecord,
const int  iBxInEvent,
std::auto_ptr< L1GlobalTriggerObjectMapRecord > &  gtObjectMapRecord,
const unsigned int  numberPhysTriggers,
const int  nrL1Mu,
const int  nrL1EG,
const int  nrL1Tau,
const int  nrL1Jet,
const int  nrL1JetCounts 
)

run the uGT GTL (Conditions and Algorithms)

DMP Start debugging here

Definition at line 389 of file GtBoard.cc.

References l1t::CondCalo, l1t::CondCorrelation, l1t::CondEnergySum, l1t::CondExternal, l1t::CondMuon, l1t::CondNull, l1t::AlgorithmEvaluation::evaluateAlgorithm(), l1t::ConditionEvaluation::evaluateConditionStoreResult(), edm::EventSetup::get(), l1t::AlgorithmEvaluation::gtAlgoCombinationVector(), l1t::AlgorithmEvaluation::gtAlgoResult(), l1CaloGeometry_cfi::l1CaloGeometry, LogDebug, LogTrace, l1t::AlgorithmEvaluation::operandTokenVector(), reco::print(), l1t::EnergySumCondition::print(), l1t::MuCondition::print(), l1t::CaloCondition::print(), l1t::AlgorithmEvaluation::print(), L1GlobalTriggerObjectMap::print(), edm::ESHandle< class >::product(), L1GlobalTriggerObjectMap::setAlgoBitNumber(), L1GlobalTriggerObjectMap::setAlgoGtlResult(), L1GlobalTriggerObjectMap::setAlgoName(), l1t::ConditionEvaluation::setVerbosity(), L1GlobalTriggerObjectMap::swapCombinationVector(), and L1GlobalTriggerObjectMap::swapOperandTokenVector().

399  {
400 
401 
402  // get / update the trigger menu from the EventSetup
403  // local cache & check on cacheIdentifier
404  unsigned long long l1GtMenuCacheID = evSetup.get<L1TGlobalTriggerMenuRcd>().cacheIdentifier();
405 
406  if (m_l1GtMenuCacheID != l1GtMenuCacheID) {
407 
409  evSetup.get< L1TGlobalTriggerMenuRcd>().get(l1GtMenu) ;
410  m_l1GtMenu = l1GtMenu.product();
411  (const_cast<TriggerMenu*>(m_l1GtMenu))->buildGtConditionMap();
412 
413  m_l1GtMenuCacheID = l1GtMenuCacheID;
414  }
415 
416  const std::vector<ConditionMap>& conditionMap = m_l1GtMenu->gtConditionMap();
417  const AlgorithmMap& algorithmMap = m_l1GtMenu->gtAlgorithmMap();
418 
419  // Reset AlgBlk for this bx
420  m_uGtAlgBlk.reset();
421  m_uGtExtBlk.reset();
422  m_algInitialOr=false;
423  m_algPrescaledOr=false;
424  m_algFinalOr=false;
425 
426 
427  /*
428  const std::vector<std::vector<MuonTemplate> >& corrMuon =
429  m_l1GtMenu->corMuonTemplate();
430 
431  // Comment out for now
432  const std::vector<std::vector<CaloTemplate> >& corrCalo =
433  m_l1GtMenu->corCaloTemplate();
434 
435  const std::vector<std::vector<EnergySumTemplate> >& corrEnergySum =
436  m_l1GtMenu->corEnergySumTemplate();
437 
438  LogDebug("l1t|Global") << "Size corrMuon " << corrMuon.size()
439  << "\nSize corrCalo " << corrCalo.size()
440  << "\nSize corrSums " << corrEnergySum.size() << std::endl;
441  */
442 
443  // conversion needed for correlation conditions
444  // done in the condition loop when the first correlation template is in the menu
445  bool convertScale = false;
446 
447  // get / update the calorimeter geometry from the EventSetup
448  // local cache & check on cacheIdentifier
449  unsigned long long l1CaloGeometryCacheID =
450  evSetup.get<L1CaloGeometryRecord>().cacheIdentifier();
451 
452 
453  if (m_l1CaloGeometryCacheID != l1CaloGeometryCacheID) {
454 
456  evSetup.get<L1CaloGeometryRecord>().get(l1CaloGeometry) ;
457  m_l1CaloGeometry = l1CaloGeometry.product();
458 
459  m_l1CaloGeometryCacheID = l1CaloGeometryCacheID;
460  convertScale = true;
461 
462  }
463 
464  // get / update the eta and phi muon trigger scales from the EventSetup
465  // local cache & check on cacheIdentifier
466  unsigned long long l1MuTriggerScalesCacheID =
467  evSetup.get<L1MuTriggerScalesRcd>().cacheIdentifier();
468 
469  if (m_l1MuTriggerScalesCacheID != l1MuTriggerScalesCacheID) {
470 
471  edm::ESHandle< L1MuTriggerScales> l1MuTriggerScales;
472  evSetup.get< L1MuTriggerScalesRcd>().get(l1MuTriggerScales);
473  m_l1MuTriggerScales = l1MuTriggerScales.product();
474 
475  m_l1MuTriggerScalesCacheID = l1MuTriggerScalesCacheID;
476  convertScale = true;
477  }
478 
479  if (convertScale) {
480 
481 /* Comment out for now
482  m_gtEtaPhiConversions->setVerbosity(m_verbosity);
483  m_gtEtaPhiConversions->convertL1Scales(m_l1CaloGeometry,
484  m_l1MuTriggerScales, ifCaloEtaNumberBits, ifMuEtaNumberBits);
485 
486  // print the conversions if DEBUG and verbosity enabled
487 
488  if (m_verbosity && m_isDebugEnabled) {
489  std::ostringstream myCout;
490  m_gtEtaPhiConversions->print(myCout);
491 
492  LogTrace("l1t|Global") << myCout.str() << std::endl;
493  }
494 
495  // set convertScale to false to avoid executing the conversion
496  // more than once - in case the scales change it will be set to true
497  // in the cache check
498 */
499  convertScale = false;
500  }
501 
502 
503  // loop over condition maps (one map per condition chip)
504  // then loop over conditions in the map
505  // save the results in temporary maps
506 
507  // never happens in production but at first event...
508  if (m_conditionResultMaps.size() != conditionMap.size()) {
509  m_conditionResultMaps.clear();
510  m_conditionResultMaps.resize(conditionMap.size());
511  }
512 
513  int iChip = -1;
514 
515  for (std::vector<ConditionMap>::const_iterator
516  itCondOnChip = conditionMap.begin(); itCondOnChip != conditionMap.end(); itCondOnChip++) {
517 
518  iChip++;
519 
520 // blw was this commented out before?
521  //AlgorithmEvaluation::ConditionEvaluationMap cMapResults;
522  // AlgorithmEvaluation::ConditionEvaluationMap cMapResults((*itCondOnChip).size()); // hash map
523 
525  m_conditionResultMaps[iChip];
526 
527 
528 
529  for (CItCond itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
530 
531  // evaluate condition
532  switch ((itCond->second)->condCategory()) {
533  case CondMuon: {
534 
535  // BLW Not sure what to do with this for now
536  const int ifMuEtaNumberBits = 0;
537 
538  MuCondition* muCondition = new MuCondition(itCond->second, this,
539  nrL1Mu, ifMuEtaNumberBits);
540 
541  muCondition->setVerbosity(m_verbosity);
542  // BLW Comment out for now
543  // muCondition->setGtCorrParDeltaPhiNrBins(
544  // (m_gtEtaPhiConversions->gtObjectNrBinsPhi(Mu)) / 2
545  // + 1);
546  // BLW Need to pass the bx we are working on.
547  muCondition->evaluateConditionStoreResult(iBxInEvent);
548 
549  // BLW COmment out for now
550  cMapResults[itCond->first] = muCondition;
551 
552  if (m_verbosity && m_isDebugEnabled) {
553  std::ostringstream myCout;
554  muCondition->print(myCout);
555 
556  LogTrace("l1t|Global") << myCout.str() << std::endl;
557  }
558  //delete muCondition;
559 
560  }
561  break;
562  case CondCalo: {
563 
564  // BLW Not sure w hat to do with this for now
565  const int ifCaloEtaNumberBits = 0;
566 
567  CaloCondition* caloCondition = new CaloCondition(
568  itCond->second, this,
569  nrL1EG,
570  nrL1Jet,
571  nrL1Tau,
572  ifCaloEtaNumberBits);
573 
574  caloCondition->setVerbosity(m_verbosity);
575 
576  // BLW COmment out for Now
577  //caloCondition->setGtCorrParDeltaPhiNrBins(
578  // (m_gtEtaPhiConversions->gtObjectNrBinsPhi(
579  // ((itCond->second)->objectType())[0])) / 2
580  // + 1);
581  caloCondition->evaluateConditionStoreResult(iBxInEvent);
582 
583  // BLW Comment out for now
584  cMapResults[itCond->first] = caloCondition;
585 
586  if (m_verbosity && m_isDebugEnabled) {
587  std::ostringstream myCout;
588  caloCondition->print(myCout);
589 
590  LogTrace("l1t|Global") << myCout.str() << std::endl;
591  }
592  // delete caloCondition;
593 
594  }
595  break;
596  case CondEnergySum: {
597 
598  EnergySumCondition* eSumCondition = new EnergySumCondition(
599  itCond->second, this);
600 
601  eSumCondition->setVerbosity(m_verbosity);
602  eSumCondition->evaluateConditionStoreResult(iBxInEvent);
603 
604  cMapResults[itCond->first] = eSumCondition;
605 
606  if (m_verbosity && m_isDebugEnabled) {
607  std::ostringstream myCout;
608  eSumCondition->print(myCout);
609 
610  LogTrace("l1t|Global") << myCout.str() << std::endl;
611  }
612  // delete eSumCondition;
613 
614  }
615  break;
616 /* Don't access conditions for now
617  case CondJetCounts: {
618  L1GtJetCountsCondition* jcCondition = new L1GtJetCountsCondition(
619  itCond->second, this, nrL1JetCounts);
620 
621  jcCondition->setVerbosity(m_verbosity);
622  jcCondition->evaluateConditionStoreResult();
623 
624  cMapResults[itCond->first] = jcCondition;
625 
626  if (m_verbosity && m_isDebugEnabled) {
627  std::ostringstream myCout;
628  jcCondition->print(myCout);
629 
630  LogTrace("l1t|Global") << myCout.str() << std::endl;
631  }
632 
633  // delete jcCondition;
634  }
635  break;
636 */
637  case CondExternal: {
638 
639  /* Don't access conditions for now
640  bool externalCondResult = true;
641 
642  // FIXME need a solution to read External with real value
643 
644  L1GtExternalCondition* externalCondition = new L1GtExternalCondition(
645  itCond->second, externalCondResult);
646 
647  externalCondition->setVerbosity(m_verbosity);
648  externalCondition->evaluateConditionStoreResult();
649 
650  cMapResults[itCond->first] = externalCondition;
651 
652  if (m_verbosity && m_isDebugEnabled) {
653  std::ostringstream myCout;
654  externalCondition->print(myCout);
655 
656  LogTrace("l1t|Global") << myCout.str() << std::endl;
657  }
658 
659  // delete externalCondition;
660 */
661  }
662  break;
663  case CondCorrelation: {
664 
665 
666 /* Don't access conditions for now
667  // get first the sub-conditions
668  const L1GtCorrelationTemplate* corrTemplate =
669  static_cast<const L1GtCorrelationTemplate*>(itCond->second);
670  const L1GtConditionCategory cond0Categ = corrTemplate->cond0Category();
671  const L1GtConditionCategory cond1Categ = corrTemplate->cond1Category();
672  const int cond0Ind = corrTemplate->cond0Index();
673  const int cond1Ind = corrTemplate->cond1Index();
674 
675  const L1GtCondition* cond0Condition = 0;
676  const L1GtCondition* cond1Condition = 0;
677 
678  // maximum number of objects received for evaluation of l1t::Type1s condition
679  int cond0NrL1Objects = 0;
680  int cond1NrL1Objects = 0;
681 
682  int cond0EtaBits = 0;
683  int cond1EtaBits = 0;
684 
685  switch (cond0Categ) {
686  case CondMuon: {
687  cond0Condition = &((corrMuon[iChip])[cond0Ind]);
688  cond0NrL1Objects = nrL1Mu;
689  cond0EtaBits = ifMuEtaNumberBits;
690  }
691  break;
692  case CondCalo: {
693  cond0Condition = &((corrCalo[iChip])[cond0Ind]);
694 
695  switch ((cond0Condition->objectType())[0]) {
696  case NoIsoEG:
697  cond0NrL1Objects= nrL1NoIsoEG;
698  break;
699  case IsoEG:
700  cond0NrL1Objects = nrL1IsoEG;
701  break;
702  case CenJet:
703  cond0NrL1Objects = nrL1CenJet;
704  break;
705  case ForJet:
706  cond0NrL1Objects = nrL1ForJet;
707  break;
708  case TauJet:
709  cond0NrL1Objects = nrL1TauJet;
710  break;
711  default:
712  cond0NrL1Objects = 0;
713  break;
714  }
715 
716  cond0EtaBits = ifCaloEtaNumberBits;
717  }
718  break;
719  case CondEnergySum: {
720  cond0Condition = &((corrEnergySum[iChip])[cond0Ind]);
721  cond0NrL1Objects = 1;
722  }
723  break;
724  default: {
725  // do nothing, should not arrive here
726  }
727  break;
728  }
729 
730  switch (cond1Categ) {
731  case CondMuon: {
732  cond1Condition = &((corrMuon[iChip])[cond1Ind]);
733  cond1NrL1Objects = nrL1Mu;
734  cond1EtaBits = ifMuEtaNumberBits;
735  }
736  break;
737  case CondCalo: {
738  cond1Condition = &((corrCalo[iChip])[cond1Ind]);
739 
740  switch ((cond1Condition->objectType())[0]) {
741  case NoIsoEG:
742  cond1NrL1Objects= nrL1NoIsoEG;
743  break;
744  case IsoEG:
745  cond1NrL1Objects = nrL1IsoEG;
746  break;
747  case CenJet:
748  cond1NrL1Objects = nrL1CenJet;
749  break;
750  case ForJet:
751  cond1NrL1Objects = nrL1ForJet;
752  break;
753  case TauJet:
754  cond1NrL1Objects = nrL1TauJet;
755  break;
756  default:
757  cond1NrL1Objects = 0;
758  break;
759  }
760 
761  cond1EtaBits = ifCaloEtaNumberBits;
762  }
763  break;
764  case CondEnergySum: {
765  cond1Condition = &((corrEnergySum[iChip])[cond1Ind]);
766  cond1NrL1Objects = 1;
767  }
768  break;
769  default: {
770  // do nothing, should not arrive here
771  }
772  break;
773  }
774 
775  L1GtCorrelationCondition* correlationCond =
776  new L1GtCorrelationCondition(itCond->second,
777  cond0Condition, cond1Condition,
778  cond0NrL1Objects, cond1NrL1Objects,
779  cond0EtaBits, cond1EtaBits,
780  this, this, m_gtEtaPhiConversions);
781 
782  correlationCond->setVerbosity(m_verbosity);
783  correlationCond->evaluateConditionStoreResult();
784 
785  cMapResults[itCond->first] = correlationCond;
786 
787  if (m_verbosity && m_isDebugEnabled) {
788  std::ostringstream myCout;
789  correlationCond->print(myCout);
790 
791  LogTrace("l1t|Global") << myCout.str() << std::endl;
792  }
793 
794  // delete correlationCond;
795 */
796  }
797  break;
798  case CondNull: {
799 
800  // do nothing
801 
802  }
803  break;
804  default: {
805  // do nothing
806 
807  }
808  break;
809  }
810 
811  }
812 
813  }
814 
815  // loop over algorithm map
817  // empty vector for object maps - filled during loop
818  std::vector<L1GlobalTriggerObjectMap> objMapVec;
819  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) objMapVec.reserve(numberPhysTriggers);
820 
821  for (CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
822  AlgorithmEvaluation gtAlg(itAlgo->second);
823  gtAlg.evaluateAlgorithm((itAlgo->second).algoChipNumber(), m_conditionResultMaps);
824 
825  int algBitNumber = (itAlgo->second).algoBitNumber();
826  bool algResult = gtAlg.gtAlgoResult();
827 
828  LogDebug("l1t|Global") << " ===> for iBxInEvent = " << iBxInEvent << ":\t algBitName = " << itAlgo->first << ",\t algBitNumber = " << algBitNumber << ",\t algResult = " << algResult << std::endl;
829 
830  if (algResult) {
831 // m_gtlAlgorithmOR.set(algBitNumber);
832  m_uGtAlgBlk.setAlgoDecisionInitial(algBitNumber,algResult);
833  m_algInitialOr = true;
834  }
835 
836  if (m_verbosity && m_isDebugEnabled) {
837  std::ostringstream myCout;
838  ( itAlgo->second ).print(myCout);
839  gtAlg.print(myCout);
840 
841  LogTrace("l1t|Global") << myCout.str() << std::endl;
842  }
843 
844 
845  // object maps only for BxInEvent = 0
846  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) {
847 
848  // set object map
850 
851  objMap.setAlgoName(itAlgo->first);
852  objMap.setAlgoBitNumber(algBitNumber);
853  objMap.setAlgoGtlResult(algResult);
854  objMap.swapOperandTokenVector(gtAlg.operandTokenVector());
855  objMap.swapCombinationVector(gtAlg.gtAlgoCombinationVector());
856  // gtAlg is empty now...
857 
858  if (m_verbosity && m_isDebugEnabled) {
859  std::ostringstream myCout1;
860  objMap.print(myCout1);
861 
862  LogTrace("l1t|Global") << myCout1.str() << std::endl;
863  }
864 
865  objMapVec.push_back(objMap);
866 
867  }
868 
869 
870  }
871 
872  // object maps only for BxInEvent = 0
873  if (produceL1GtObjectMapRecord && (iBxInEvent == 0)) {
874  gtObjectMapRecord->swapGtObjectMap(objMapVec);
875  }
876 
877  // loop over condition maps (one map per condition chip)
878  // then loop over conditions in the map
879  // delete the conditions created with new, zero pointer, do not clear map, keep the vector as is...
880  for (std::vector<AlgorithmEvaluation::ConditionEvaluationMap>::iterator
881  itCondOnChip = m_conditionResultMaps.begin();
882  itCondOnChip != m_conditionResultMaps.end(); itCondOnChip++) {
883 
885  itCond = itCondOnChip->begin();
886  itCond != itCondOnChip->end(); itCond++) {
887 
888  delete itCond->second;
889  itCond->second = 0;
890  }
891  }
892 
893 }
#define LogDebug(id)
GlobalExtBlk m_uGtExtBlk
Definition: GtBoard.h:242
const L1CaloGeometry * m_l1CaloGeometry
Definition: GtBoard.h:213
std::vector< AlgorithmEvaluation::ConditionEvaluationMap > m_conditionResultMaps
Definition: GtBoard.h:245
int m_verbosity
verbosity level
Definition: GtBoard.h:251
GlobalAlgBlk m_uGtAlgBlk
Definition: GtBoard.h:241
void reset()
reset the content of a GlobalExtBlk
Definition: GlobalExtBlk.cc:92
void swapCombinationVector(std::vector< CombinationsInCond > &combinationVectorValue)
void setAlgoName(const std::string &algoNameValue)
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
std::string print(const Track &, edm::Verbosity=edm::Concise)
Track print utility.
Definition: print.cc:10
ConditionMap::const_iterator CItCond
iterators through map containing the conditions
__gnu_cxx::hash_map< std::string, ConditionEvaluation * > ConditionEvaluationMap
copy constructor
void swapOperandTokenVector(std::vector< L1GtLogicParser::OperandToken > &operandTokenVectorValue)
const L1MuTriggerScales * m_l1MuTriggerScales
Definition: GtBoard.h:216
ConditionEvaluationMap::iterator ItEvalMap
bool m_algFinalOr
Definition: GtBoard.h:257
const TriggerMenu * m_l1GtMenu
Definition: GtBoard.h:209
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
unsigned long long m_l1MuTriggerScalesCacheID
Definition: GtBoard.h:217
bool m_isDebugEnabled
Definition: GtBoard.h:252
bool m_algInitialOr
Definition: GtBoard.h:255
void reset()
reset the content of a GlobalAlgBlk
void print(std::ostream &myCout) const
print the full object map
const l1t::AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
Definition: TriggerMenu.h:239
const std::vector< l1t::ConditionMap > & gtConditionMap() const
get / set / build the condition maps
Definition: TriggerMenu.h:82
#define LogTrace(id)
void setAlgoGtlResult(bool algoGtlResultValue)
unsigned long long m_l1GtMenuCacheID
Definition: GtBoard.h:210
void setAlgoDecisionInitial(int bit, bool val)
Set decision bits.
Definition: GlobalAlgBlk.cc:83
const T & get() const
Definition: EventSetup.h:56
T const * product() const
Definition: ESHandle.h:86
bool m_algPrescaledOr
Definition: GtBoard.h:256
void setAlgoBitNumber(int algoBitNumberValue)
unsigned long long m_l1CaloGeometryCacheID
Definition: GtBoard.h:214
void GtBoard::setBxFirst ( int  bx)

Definition at line 135 of file GtBoard.cc.

135  {
136 
137  m_bxFirst_ = bx;
138 
139 }
int m_bxFirst_
Definition: GtBoard.h:235
void GtBoard::setBxLast ( int  bx)

Definition at line 141 of file GtBoard.cc.

141  {
142 
143  m_bxLast_ = bx;
144 
145 }
int m_bxLast_
Definition: GtBoard.h:236
void l1t::GtBoard::setVerbosity ( const int  verbosity)
inline

Definition at line 200 of file GtBoard.h.

References m_verbosity, and HLT_25ns14e33_v1_cff::verbosity.

Referenced by l1t::GtProducer::GtProducer().

200  {
202  }
int m_verbosity
verbosity level
Definition: GtBoard.h:251

Member Data Documentation

bool l1t::GtBoard::m_algFinalOr
private

Definition at line 257 of file GtBoard.h.

bool l1t::GtBoard::m_algInitialOr
private

Definition at line 255 of file GtBoard.h.

bool l1t::GtBoard::m_algPrescaledOr
private

Definition at line 256 of file GtBoard.h.

unsigned int l1t::GtBoard::m_boardEventCount
private

Definition at line 260 of file GtBoard.h.

Referenced by GtBoard().

int l1t::GtBoard::m_bxFirst_
private

Definition at line 235 of file GtBoard.h.

int l1t::GtBoard::m_bxLast_
private

Definition at line 236 of file GtBoard.h.

BXVector<const l1t::L1Candidate*>* l1t::GtBoard::m_candL1EG
private

Definition at line 225 of file GtBoard.h.

Referenced by getCandL1EG().

BXVector<const l1t::EtSum*>* l1t::GtBoard::m_candL1EtSum
private

Definition at line 228 of file GtBoard.h.

Referenced by getCandL1EtSum().

BXVector<const l1t::L1Candidate*>* l1t::GtBoard::m_candL1Jet
private

Definition at line 227 of file GtBoard.h.

Referenced by getCandL1Jet().

BXVector<const l1t::Muon*>* l1t::GtBoard::m_candL1Mu
private

Definition at line 224 of file GtBoard.h.

Referenced by getCandL1Mu().

BXVector<const l1t::L1Candidate*>* l1t::GtBoard::m_candL1Tau
private

Definition at line 226 of file GtBoard.h.

Referenced by getCandL1Tau().

std::vector<AlgorithmEvaluation::ConditionEvaluationMap> l1t::GtBoard::m_conditionResultMaps
private

Definition at line 245 of file GtBoard.h.

L1GtEtaPhiConversions* l1t::GtBoard::m_gtEtaPhiConversions
private

Definition at line 220 of file GtBoard.h.

std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> l1t::GtBoard::m_gtlAlgorithmOR
private

Definition at line 238 of file GtBoard.h.

Referenced by getAlgorithmOR(), and GtBoard().

std::bitset<L1GlobalTriggerReadoutSetup::NumberPhysTriggers> l1t::GtBoard::m_gtlDecisionWord
private

Definition at line 239 of file GtBoard.h.

Referenced by getDecisionWord(), and GtBoard().

bool l1t::GtBoard::m_isDebugEnabled
private

Definition at line 252 of file GtBoard.h.

const L1CaloGeometry* l1t::GtBoard::m_l1CaloGeometry
private

Definition at line 213 of file GtBoard.h.

unsigned long long l1t::GtBoard::m_l1CaloGeometryCacheID
private

Definition at line 214 of file GtBoard.h.

Referenced by GtBoard().

const TriggerMenu* l1t::GtBoard::m_l1GtMenu
private

Definition at line 209 of file GtBoard.h.

unsigned long long l1t::GtBoard::m_l1GtMenuCacheID
private

Definition at line 210 of file GtBoard.h.

Referenced by GtBoard().

const L1MuTriggerScales* l1t::GtBoard::m_l1MuTriggerScales
private

Definition at line 216 of file GtBoard.h.

unsigned long long l1t::GtBoard::m_l1MuTriggerScalesCacheID
private

Definition at line 217 of file GtBoard.h.

Referenced by GtBoard().

GlobalAlgBlk l1t::GtBoard::m_uGtAlgBlk
private

Definition at line 241 of file GtBoard.h.

Referenced by GtBoard().

int l1t::GtBoard::m_uGtBoardNumber
private

Definition at line 263 of file GtBoard.h.

Referenced by GtBoard().

GlobalExtBlk l1t::GtBoard::m_uGtExtBlk
private

Definition at line 242 of file GtBoard.h.

Referenced by GtBoard().

bool l1t::GtBoard::m_uGtFinalBoard
private

Definition at line 264 of file GtBoard.h.

Referenced by GtBoard().

int l1t::GtBoard::m_verbosity
private

verbosity level

Definition at line 251 of file GtBoard.h.

Referenced by setVerbosity().