CMS 3D CMS Logo

L1GtTriggerMenu.cc
Go to the documentation of this file.
1 
17 // this class header
19 
20 // system include files
21 #include <iostream>
22 #include <iomanip>
23 
24 // user include files
27 
28 // forward declarations
29 
30 // constructor
32  : m_triggerMenuInterface("NULL"),
33  m_triggerMenuName("NULL"),
34  m_triggerMenuImplementation("NULL"),
35  m_scaleDbKey("NULL") {
36  // empty
37 }
38 
40  const unsigned int numberConditionChips,
41  const std::vector<std::vector<L1GtMuonTemplate> >& vecMuonTemplateVal,
42  const std::vector<std::vector<L1GtCaloTemplate> >& vecCaloTemplateVal,
43  const std::vector<std::vector<L1GtEnergySumTemplate> >& vecEnergySumTemplateVal,
44  const std::vector<std::vector<L1GtJetCountsTemplate> >& vecJetCountsTemplateVal,
45  const std::vector<std::vector<L1GtCastorTemplate> >& vecCastorTemplateVal,
46  const std::vector<std::vector<L1GtHfBitCountsTemplate> >& vecHfBitCountsTemplateVal,
47  const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >& vecHfRingEtSumsTemplateVal,
48  const std::vector<std::vector<L1GtBptxTemplate> >& vecBptxTemplateVal,
49  const std::vector<std::vector<L1GtExternalTemplate> >& vecExternalTemplateVal,
50  const std::vector<std::vector<L1GtCorrelationTemplate> >& vecCorrelationTemplateVal,
51  const std::vector<std::vector<L1GtMuonTemplate> >& corMuonTemplateVal,
52  const std::vector<std::vector<L1GtCaloTemplate> >& corCaloTemplateVal,
53  const std::vector<std::vector<L1GtEnergySumTemplate> >& corEnergySumTemplateVal
54 
55  )
56  : m_triggerMenuInterface("NULL"),
57  m_triggerMenuName(triggerMenuNameVal),
59  m_scaleDbKey("NULL"),
60  m_vecMuonTemplate(vecMuonTemplateVal),
61  m_vecCaloTemplate(vecCaloTemplateVal),
62  m_vecEnergySumTemplate(vecEnergySumTemplateVal),
63  m_vecJetCountsTemplate(vecJetCountsTemplateVal),
64  m_vecCastorTemplate(vecCastorTemplateVal),
65  m_vecHfBitCountsTemplate(vecHfBitCountsTemplateVal),
66  m_vecHfRingEtSumsTemplate(vecHfRingEtSumsTemplateVal),
67  m_vecBptxTemplate(vecBptxTemplateVal),
68  m_vecExternalTemplate(vecExternalTemplateVal),
69  m_vecCorrelationTemplate(vecCorrelationTemplateVal),
70  m_corMuonTemplate(corMuonTemplateVal),
71  m_corCaloTemplate(corCaloTemplateVal),
72  m_corEnergySumTemplate(corEnergySumTemplateVal) {
73  m_conditionMap.resize(numberConditionChips);
75 }
76 
77 // copy constructor
83 
84  // copy physics conditions
94 
99 
100  // rebuild condition map to update the pointers
101  // (only physics conditions are included in it)
102  m_conditionMap.resize(rhs.m_conditionMap.size());
103  (*this).buildGtConditionMap();
104 
105  // copy algorithm map
108 
109  // copy technical triggers
110  // (separate map for technical triggers and physics triggers)
112 }
113 
114 // destructor
116  // loop over condition maps (one map per condition chip)
117  for (std::vector<ConditionMap>::iterator itCondOnChip = m_conditionMap.begin(); itCondOnChip != m_conditionMap.end();
118  itCondOnChip++) {
119  itCondOnChip->clear();
120  }
121 
122  m_algorithmMap.clear();
123  m_algorithmAliasMap.clear();
124 }
125 
126 // assignment operator
128  if (this != &rhs) {
132 
142 
147 
150 
152  }
153 
154  // rebuild condition map to update the pointers
155  // (only physics conditions are included in it)
156  m_conditionMap.resize(rhs.m_conditionMap.size());
157  (*this).buildGtConditionMap();
158 
159  // return the object
160  return *this;
161 }
162 
163 // set the condition maps
164 void L1GtTriggerMenu::setGtConditionMap(const std::vector<ConditionMap>& condMap) { m_conditionMap = condMap; }
165 
166 // build the condition maps
168  // clear the conditions from the maps, if any
169  for (std::vector<ConditionMap>::iterator itCondOnChip = m_conditionMap.begin(); itCondOnChip != m_conditionMap.end();
170  itCondOnChip++) {
171  itCondOnChip->clear();
172  }
173 
174  // always check that the size of the condition map is greater than the size
175  // of the specific condition vector
176  size_t condMapSize = m_conditionMap.size();
177 
178  //
179  size_t vecMuonSize = m_vecMuonTemplate.size();
180  if (condMapSize < vecMuonSize) {
181  m_conditionMap.resize(vecMuonSize);
182  condMapSize = m_conditionMap.size();
183  }
184 
185  int chipNr = -1;
186 
187  for (std::vector<std::vector<L1GtMuonTemplate> >::iterator itCondOnChip = m_vecMuonTemplate.begin();
188  itCondOnChip != m_vecMuonTemplate.end();
189  itCondOnChip++) {
190  chipNr++;
191 
192  for (std::vector<L1GtMuonTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
193  itCond++) {
194  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
195  }
196  }
197 
198  //
199  size_t vecCaloSize = m_vecCaloTemplate.size();
200  if (condMapSize < vecCaloSize) {
201  m_conditionMap.resize(vecCaloSize);
202  condMapSize = m_conditionMap.size();
203  }
204 
205  chipNr = -1;
206  for (std::vector<std::vector<L1GtCaloTemplate> >::iterator itCondOnChip = m_vecCaloTemplate.begin();
207  itCondOnChip != m_vecCaloTemplate.end();
208  itCondOnChip++) {
209  chipNr++;
210 
211  for (std::vector<L1GtCaloTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
212  itCond++) {
213  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
214  }
215  }
216 
217  //
218  size_t vecEnergySumSize = m_vecEnergySumTemplate.size();
219  if (condMapSize < vecEnergySumSize) {
220  m_conditionMap.resize(vecEnergySumSize);
221  condMapSize = m_conditionMap.size();
222  }
223 
224  chipNr = -1;
225  for (std::vector<std::vector<L1GtEnergySumTemplate> >::iterator itCondOnChip = m_vecEnergySumTemplate.begin();
226  itCondOnChip != m_vecEnergySumTemplate.end();
227  itCondOnChip++) {
228  chipNr++;
229 
230  for (std::vector<L1GtEnergySumTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
231  itCond++) {
232  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
233  }
234  }
235 
236  //
237  size_t vecJetCountsSize = m_vecJetCountsTemplate.size();
238  if (condMapSize < vecJetCountsSize) {
239  m_conditionMap.resize(vecJetCountsSize);
240  condMapSize = m_conditionMap.size();
241  }
242 
243  chipNr = -1;
244  for (std::vector<std::vector<L1GtJetCountsTemplate> >::iterator itCondOnChip = m_vecJetCountsTemplate.begin();
245  itCondOnChip != m_vecJetCountsTemplate.end();
246  itCondOnChip++) {
247  chipNr++;
248 
249  for (std::vector<L1GtJetCountsTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
250  itCond++) {
251  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
252  }
253  }
254 
255  //
256  size_t vecCastorSize = m_vecCastorTemplate.size();
257  if (condMapSize < vecCastorSize) {
258  m_conditionMap.resize(vecCastorSize);
259  condMapSize = m_conditionMap.size();
260  }
261 
262  chipNr = -1;
263  for (std::vector<std::vector<L1GtCastorTemplate> >::iterator itCondOnChip = m_vecCastorTemplate.begin();
264  itCondOnChip != m_vecCastorTemplate.end();
265  itCondOnChip++) {
266  chipNr++;
267 
268  for (std::vector<L1GtCastorTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
269  itCond++) {
270  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
271  }
272  }
273 
274  //
275  size_t vecHfBitCountsSize = m_vecHfBitCountsTemplate.size();
276  if (condMapSize < vecHfBitCountsSize) {
277  m_conditionMap.resize(vecHfBitCountsSize);
278  condMapSize = m_conditionMap.size();
279  }
280 
281  chipNr = -1;
282  for (std::vector<std::vector<L1GtHfBitCountsTemplate> >::iterator itCondOnChip = m_vecHfBitCountsTemplate.begin();
283  itCondOnChip != m_vecHfBitCountsTemplate.end();
284  itCondOnChip++) {
285  chipNr++;
286 
287  for (std::vector<L1GtHfBitCountsTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
288  itCond++) {
289  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
290  }
291  }
292 
293  //
294  size_t vecHfRingEtSumsSize = m_vecHfRingEtSumsTemplate.size();
295  if (condMapSize < vecHfRingEtSumsSize) {
296  m_conditionMap.resize(vecHfRingEtSumsSize);
297  condMapSize = m_conditionMap.size();
298  }
299 
300  chipNr = -1;
301  for (std::vector<std::vector<L1GtHfRingEtSumsTemplate> >::iterator itCondOnChip = m_vecHfRingEtSumsTemplate.begin();
302  itCondOnChip != m_vecHfRingEtSumsTemplate.end();
303  itCondOnChip++) {
304  chipNr++;
305 
306  for (std::vector<L1GtHfRingEtSumsTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
307  itCond++) {
308  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
309  }
310  }
311 
312  //
313  size_t vecBptxSize = m_vecBptxTemplate.size();
314  if (condMapSize < vecBptxSize) {
315  m_conditionMap.resize(vecBptxSize);
316  condMapSize = m_conditionMap.size();
317  }
318 
319  chipNr = -1;
320  for (std::vector<std::vector<L1GtBptxTemplate> >::iterator itCondOnChip = m_vecBptxTemplate.begin();
321  itCondOnChip != m_vecBptxTemplate.end();
322  itCondOnChip++) {
323  chipNr++;
324 
325  for (std::vector<L1GtBptxTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
326  itCond++) {
327  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
328  }
329  }
330 
331  //
332  size_t vecExternalSize = m_vecExternalTemplate.size();
333  if (condMapSize < vecExternalSize) {
334  m_conditionMap.resize(vecExternalSize);
335  condMapSize = m_conditionMap.size();
336  }
337 
338  chipNr = -1;
339  for (std::vector<std::vector<L1GtExternalTemplate> >::iterator itCondOnChip = m_vecExternalTemplate.begin();
340  itCondOnChip != m_vecExternalTemplate.end();
341  itCondOnChip++) {
342  chipNr++;
343 
344  for (std::vector<L1GtExternalTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
345  itCond++) {
346  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
347  }
348  }
349 
350  //
351  size_t vecCorrelationSize = m_vecCorrelationTemplate.size();
352  if (condMapSize < vecCorrelationSize) {
353  m_conditionMap.resize(vecCorrelationSize);
354  condMapSize = m_conditionMap.size();
355  }
356 
357  chipNr = -1;
358  for (std::vector<std::vector<L1GtCorrelationTemplate> >::iterator itCondOnChip = m_vecCorrelationTemplate.begin();
359  itCondOnChip != m_vecCorrelationTemplate.end();
360  itCondOnChip++) {
361  chipNr++;
362 
363  for (std::vector<L1GtCorrelationTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
364  itCond++) {
365  (m_conditionMap.at(chipNr))[itCond->condName()] = &(*itCond);
366  }
367  }
368 }
369 
370 // set the trigger menu name
372  m_triggerMenuInterface = menuInterface;
373 }
374 
376 
378  m_triggerMenuImplementation = menuImplementation;
379 }
380 
381 // set menu associated scale key
382 void L1GtTriggerMenu::setGtScaleDbKey(const std::string& scaleKey) { m_scaleDbKey = scaleKey; }
383 
384 // get / set the vectors containing the conditions
385 void L1GtTriggerMenu::setVecMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >& vecMuonTempl) {
386  m_vecMuonTemplate = vecMuonTempl;
387 }
388 
389 void L1GtTriggerMenu::setVecCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >& vecCaloTempl) {
390  m_vecCaloTemplate = vecCaloTempl;
391 }
392 
394  const std::vector<std::vector<L1GtEnergySumTemplate> >& vecEnergySumTempl) {
395  m_vecEnergySumTemplate = vecEnergySumTempl;
396 }
397 
399  const std::vector<std::vector<L1GtJetCountsTemplate> >& vecJetCountsTempl) {
400  m_vecJetCountsTemplate = vecJetCountsTempl;
401 }
402 
403 void L1GtTriggerMenu::setVecCastorTemplate(const std::vector<std::vector<L1GtCastorTemplate> >& vecCastorTempl) {
404  m_vecCastorTemplate = vecCastorTempl;
405 }
406 
408  const std::vector<std::vector<L1GtHfBitCountsTemplate> >& vecHfBitCountsTempl) {
409  m_vecHfBitCountsTemplate = vecHfBitCountsTempl;
410 }
411 
413  const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >& vecHfRingEtSumsTempl) {
414  m_vecHfRingEtSumsTemplate = vecHfRingEtSumsTempl;
415 }
416 
417 void L1GtTriggerMenu::setVecBptxTemplate(const std::vector<std::vector<L1GtBptxTemplate> >& vecBptxTempl) {
418  m_vecBptxTemplate = vecBptxTempl;
419 }
420 
421 void L1GtTriggerMenu::setVecExternalTemplate(const std::vector<std::vector<L1GtExternalTemplate> >& vecExternalTempl) {
422  m_vecExternalTemplate = vecExternalTempl;
423 }
424 
426  const std::vector<std::vector<L1GtCorrelationTemplate> >& vecCorrelationTempl) {
427  m_vecCorrelationTemplate = vecCorrelationTempl;
428 }
429 
430 // set the vectors containing the conditions for correlation templates
431 void L1GtTriggerMenu::setCorMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >& corMuonTempl) {
432  m_corMuonTemplate = corMuonTempl;
433 }
434 
435 void L1GtTriggerMenu::setCorCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >& corCaloTempl) {
436  m_corCaloTemplate = corCaloTempl;
437 }
438 
440  const std::vector<std::vector<L1GtEnergySumTemplate> >& corEnergySumTempl) {
441  m_corEnergySumTemplate = corEnergySumTempl;
442 }
443 
444 // set the algorithm map (by algorithm names)
446 
447 // set the algorithm map (by algorithm aliases)
449 
450 // set the technical trigger map
452 
453 // print the trigger menu (bit number, algorithm name, logical expression)
454 void L1GtTriggerMenu::print(std::ostream& myCout, int& printVerbosity) const {
455  // use another map <int, L1GtAlgorithm> to get the menu sorted after bit number
456  // both algorithm and bit numbers are unique
457  std::map<int, const L1GtAlgorithm*> algoBitToAlgo;
458  typedef std::map<int, const L1GtAlgorithm*>::const_iterator CItBit;
459 
460  for (CItAlgo itAlgo = m_algorithmMap.begin(); itAlgo != m_algorithmMap.end(); itAlgo++) {
461  int bitNumber = (itAlgo->second).algoBitNumber();
462  algoBitToAlgo[bitNumber] = &(itAlgo->second);
463  }
464 
465  size_t nrDefinedAlgo = algoBitToAlgo.size();
466 
467  // idem for technical trigger map - only name and bit number are relevant for them
468  std::map<int, const L1GtAlgorithm*> ttBitToTt;
469 
470  for (CItAlgo itAlgo = m_technicalTriggerMap.begin(); itAlgo != m_technicalTriggerMap.end(); itAlgo++) {
471  int bitNumber = (itAlgo->second).algoBitNumber();
472  ttBitToTt[bitNumber] = &(itAlgo->second);
473  }
474 
475  size_t nrDefinedTechTrig = ttBitToTt.size();
476 
477  //
478 
479  switch (printVerbosity) {
480  case 0: {
481  // header for printing algorithms
482 
483  myCout << "\n ********** L1 Trigger Menu - printing ********** \n"
484  << "\nL1 Trigger Menu Interface: " << m_triggerMenuInterface
485  << "\nL1 Trigger Menu Name: " << m_triggerMenuName
486  << "\nL1 Trigger Menu Implementation: " << m_triggerMenuImplementation
487  << "\nAssociated Scale DB Key: " << m_scaleDbKey << "\n\n"
488  << "\nL1 Physics Algorithms: " << nrDefinedAlgo << " algorithms defined."
489  << "\n\n"
490  << "Bit Number " << std::right << std::setw(35) << "Algorithm Name"
491  << " " << std::right << std::setw(35) << "Algorithm Alias" << std::endl;
492 
493  for (CItBit itBit = algoBitToAlgo.begin(); itBit != algoBitToAlgo.end(); itBit++) {
494  int bitNumber = itBit->first;
495  std::string aName = (itBit->second)->algoName();
496  std::string aAlias = (itBit->second)->algoAlias();
497 
498  myCout << std::setw(6) << bitNumber << " " << std::right << std::setw(35) << aName << " " << std::right
499  << std::setw(35) << aAlias << std::endl;
500  }
501 
502  myCout << "\nL1 Technical Triggers: " << nrDefinedTechTrig << " technical triggers defined."
503  << "\n\n"
504  << std::endl;
505  if (nrDefinedTechTrig) {
506  myCout << "Bit Number "
507  << " Technical trigger name " << std::endl;
508  }
509 
510  for (CItBit itBit = ttBitToTt.begin(); itBit != ttBitToTt.end(); itBit++) {
511  int bitNumber = itBit->first;
512  std::string aName = (itBit->second)->algoName();
513  std::string aAlias = (itBit->second)->algoAlias();
514 
515  myCout << std::setw(6) << bitNumber << " " << std::right << std::setw(35) << aName << " " << std::right
516  << std::setw(35) << aAlias << std::endl;
517  }
518 
519  } break;
520 
521  case 1: {
522  // header for printing algorithms
523 
524  myCout << "\n ********** L1 Trigger Menu - printing ********** \n"
525  << "\nL1 Trigger Menu Interface: " << m_triggerMenuInterface
526  << "\nL1 Trigger Menu Name: " << m_triggerMenuName
527  << "\nL1 Trigger Menu Implementation: " << m_triggerMenuImplementation
528  << "\nAssociated Scale DB Key: " << m_scaleDbKey << "\n\n"
529  << "\nL1 Physics Algorithms: " << nrDefinedAlgo << " algorithms defined."
530  << "\n\n"
531  << "Bit Number " << std::right << std::setw(35) << "Algorithm Name"
532  << " " << std::right << std::setw(35) << "Algorithm Alias"
533  << "\n Logical Expression \n"
534  << std::endl;
535 
536  for (CItBit itBit = algoBitToAlgo.begin(); itBit != algoBitToAlgo.end(); itBit++) {
537  int bitNumber = itBit->first;
538  std::string aName = (itBit->second)->algoName();
539  std::string aAlias = (itBit->second)->algoAlias();
540  std::string aLogicalExpression = (itBit->second)->algoLogicalExpression();
541 
542  myCout << std::setw(6) << bitNumber << " " << std::right << std::setw(35) << aName << " " << std::right
543  << std::setw(35) << aAlias << "\n Logical expression: " << aLogicalExpression << "\n"
544  << std::endl;
545  }
546 
547  myCout << "\nL1 Technical Triggers: " << nrDefinedTechTrig << " technical triggers defined."
548  << "\n\n"
549  << std::endl;
550  if (nrDefinedTechTrig) {
551  myCout << "Bit Number "
552  << " Technical trigger name " << std::endl;
553  }
554 
555  for (CItBit itBit = ttBitToTt.begin(); itBit != ttBitToTt.end(); itBit++) {
556  int bitNumber = itBit->first;
557  std::string aName = (itBit->second)->algoName();
558 
559  myCout << std::setw(6) << bitNumber << " " << aName << std::endl;
560  }
561  } break;
562 
563  case 2: {
564  // header for printing algorithms
565 
566  myCout << "\n ********** L1 Trigger Menu - printing ********** \n"
567  << "\nL1 Trigger Menu Interface: " << m_triggerMenuInterface
568  << "\nL1 Trigger Menu Name: " << m_triggerMenuName
569  << "\nL1 Trigger Menu Implementation: " << m_triggerMenuImplementation
570  << "\nAssociated Scale DB Key: " << m_scaleDbKey << "\n\n"
571  << "\nL1 Physics Algorithms: " << nrDefinedAlgo << " algorithms defined."
572  << "\n\n"
573  << std::endl;
574 
575  for (CItBit itBit = algoBitToAlgo.begin(); itBit != algoBitToAlgo.end(); itBit++) {
576  (itBit->second)->print(myCout);
577  }
578 
579  myCout << "\nNumber of condition chips: " << m_conditionMap.size() << "\n" << std::endl;
580 
581  int chipNr = -1;
582  int totalNrConditions = 0;
583 
584  for (std::vector<ConditionMap>::const_iterator itCondOnChip = m_conditionMap.begin();
585  itCondOnChip != m_conditionMap.end();
586  itCondOnChip++) {
587  chipNr++;
588 
589  int condMapSize = itCondOnChip->size();
590  totalNrConditions += condMapSize;
591 
592  myCout << "\nTotal number of conditions on condition chip " << chipNr << ": " << condMapSize << " conditions.\n"
593  << std::endl;
594 
595  for (CItCond itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
596  (itCond->second)->print(myCout);
597  }
598  }
599 
600  myCout << "\nTotal number of conditions on all condition chips: " << totalNrConditions << "\n" << std::endl;
601 
602  myCout << "\nL1 Technical Triggers: " << nrDefinedTechTrig << " technical triggers defined."
603  << "\n\n"
604  << std::endl;
605  if (nrDefinedTechTrig) {
606  myCout << "Bit Number "
607  << " Technical trigger name " << std::endl;
608  }
609 
610  for (CItBit itBit = ttBitToTt.begin(); itBit != ttBitToTt.end(); itBit++) {
611  int bitNumber = itBit->first;
612  std::string aName = (itBit->second)->algoName();
613 
614  myCout << std::setw(6) << bitNumber << " " << aName << std::endl;
615  }
616 
617  } break;
618 
619  default: {
620  myCout << "\n ********** L1 Trigger Menu - printing ********** \n\n"
621  << "Verbosity level: " << printVerbosity << " not implemented.\n\n"
622  << std::endl;
623  } break;
624  }
625 }
626 
627 // get the result for algorithm with name algName
628 // use directly the format of decisionWord (no typedef)
629 const bool L1GtTriggerMenu::gtAlgorithmResult(const std::string& algName, const std::vector<bool>& decWord) const {
630  bool algResult = false;
631 
632  CItAlgo itAlgo = m_algorithmMap.find(algName);
633  if (itAlgo != m_algorithmMap.end()) {
634  int bitNumber = (itAlgo->second).algoBitNumber();
635  algResult = decWord.at(bitNumber);
636  return algResult;
637  }
638 
639  // return false if the algorithm name is not found in the menu
640  // TODO throw exception or LogInfo would be better - but the class is used in
641  // XDAQ Trigger Supervisor (outside CMSSW) hence no CMSSW dependence
642  // is allowed here...
643 
644  return false;
645 }
std::vector< std::vector< L1GtBptxTemplate > > m_vecBptxTemplate
AlgorithmMap m_algorithmAliasMap
map containing the physics algorithms (by alias)
std::vector< std::vector< L1GtCaloTemplate > > m_vecCaloTemplate
void setGtScaleDbKey(const std::string &)
std::vector< std::vector< L1GtMuonTemplate > > m_vecMuonTemplate
std::vector< std::vector< L1GtHfBitCountsTemplate > > m_vecHfBitCountsTemplate
L1GtTriggerMenu & operator=(const L1GtTriggerMenu &)
void setGtAlgorithmMap(const AlgorithmMap &)
std::vector< std::vector< L1GtMuonTemplate > > m_corMuonTemplate
std::map< std::string, L1GtAlgorithm > AlgorithmMap
map containing the algorithms
void setCorCaloTemplate(const std::vector< std::vector< L1GtCaloTemplate > > &)
ConditionMap::const_iterator CItCond
iterators through map containing the conditions
void setGtTechnicalTriggerMap(const AlgorithmMap &)
void setGtTriggerMenuInterface(const std::string &)
std::vector< ConditionMap > m_conditionMap
map containing the conditions (per condition chip) - transient
void setVecHfBitCountsTemplate(const std::vector< std::vector< L1GtHfBitCountsTemplate > > &)
void setVecCastorTemplate(const std::vector< std::vector< L1GtCastorTemplate > > &)
void setVecCaloTemplate(const std::vector< std::vector< L1GtCaloTemplate > > &)
void setGtAlgorithmAliasMap(const AlgorithmMap &)
void setVecBptxTemplate(const std::vector< std::vector< L1GtBptxTemplate > > &)
void setGtConditionMap(const std::vector< ConditionMap > &)
std::vector< std::vector< L1GtJetCountsTemplate > > m_vecJetCountsTemplate
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
void setVecCorrelationTemplate(const std::vector< std::vector< L1GtCorrelationTemplate > > &)
std::vector< std::vector< L1GtCastorTemplate > > m_vecCastorTemplate
std::string m_scaleDbKey
menu associated scale key
void print(std::ostream &, int &) const
void setGtTriggerMenuImplementation(const std::string &)
void setVecJetCountsTemplate(const std::vector< std::vector< L1GtJetCountsTemplate > > &)
const bool gtAlgorithmResult(const std::string &algName, const std::vector< bool > &decWord) const
void setCorMuonTemplate(const std::vector< std::vector< L1GtMuonTemplate > > &)
std::string m_triggerMenuName
void setCorEnergySumTemplate(const std::vector< std::vector< L1GtEnergySumTemplate > > &)
void setVecMuonTemplate(const std::vector< std::vector< L1GtMuonTemplate > > &)
void setVecEnergySumTemplate(const std::vector< std::vector< L1GtEnergySumTemplate > > &)
virtual ~L1GtTriggerMenu()
std::vector< std::vector< L1GtCaloTemplate > > m_corCaloTemplate
std::vector< std::vector< L1GtEnergySumTemplate > > m_vecEnergySumTemplate
void setGtTriggerMenuName(const std::string &)
std::vector< std::vector< L1GtExternalTemplate > > m_vecExternalTemplate
std::vector< std::vector< L1GtHfRingEtSumsTemplate > > m_vecHfRingEtSumsTemplate
std::vector< std::vector< L1GtEnergySumTemplate > > m_corEnergySumTemplate
AlgorithmMap m_technicalTriggerMap
map containing the technical triggers
std::vector< std::vector< L1GtCorrelationTemplate > > m_vecCorrelationTemplate
std::string m_triggerMenuImplementation
void setVecExternalTemplate(const std::vector< std::vector< L1GtExternalTemplate > > &)
AlgorithmMap m_algorithmMap
map containing the physics algorithms (by name)
void setVecHfRingEtSumsTemplate(const std::vector< std::vector< L1GtHfRingEtSumsTemplate > > &)
std::string m_triggerMenuInterface
menu names