CMS 3D CMS Logo

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