32 : m_triggerMenuInterface(
"NULL"),
33 m_triggerMenuName(
"NULL"),
34 m_triggerMenuImplementation(0x0),
35 m_scaleDbKey(
"NULL") {
41 const unsigned int numberConditionChips,
42 const std::vector<std::vector<MuonTemplate> >& vecMuonTemplateVal,
43 const std::vector<std::vector<CaloTemplate> >& vecCaloTemplateVal,
44 const std::vector<std::vector<EnergySumTemplate> >& vecEnergySumTemplateVal,
45 const std::vector<std::vector<ExternalTemplate> >& vecExternalTemplateVal,
46 const std::vector<std::vector<CorrelationTemplate> >& vecCorrelationTemplateVal,
47 const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >& vecCorrelationWithOverlapRemovalTemplateVal,
48 const std::vector<std::vector<MuonTemplate> >& corMuonTemplateVal,
49 const std::vector<std::vector<CaloTemplate> >& corCaloTemplateVal,
50 const std::vector<std::vector<EnergySumTemplate> >& corEnergySumTemplateVal
53 : m_triggerMenuInterface(
"NULL"),
54 m_triggerMenuName(triggerMenuNameVal),
55 m_triggerMenuImplementation(0x0),
57 m_vecMuonTemplate(vecMuonTemplateVal),
58 m_vecCaloTemplate(vecCaloTemplateVal),
59 m_vecEnergySumTemplate(vecEnergySumTemplateVal),
60 m_vecExternalTemplate(vecExternalTemplateVal),
61 m_vecCorrelationTemplate(vecCorrelationTemplateVal),
62 m_vecCorrelationWithOverlapRemovalTemplate(vecCorrelationWithOverlapRemovalTemplateVal),
63 m_corMuonTemplate(corMuonTemplateVal),
64 m_corCaloTemplate(corCaloTemplateVal),
65 m_corEnergySumTemplate(corEnergySumTemplateVal) {
94 (*this).buildGtConditionMap();
108 for (std::vector<l1t::ConditionMap>::iterator itCondOnChip =
m_conditionMap.begin();
111 itCondOnChip->clear();
146 (*this).buildGtConditionMap();
158 for (std::vector<l1t::ConditionMap>::iterator itCondOnChip =
m_conditionMap.begin();
161 itCondOnChip->clear();
170 if (condMapSize < vecMuonSize) {
177 for (std::vector<std::vector<MuonTemplate> >::iterator itCondOnChip =
m_vecMuonTemplate.begin();
182 for (std::vector<MuonTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
189 if (condMapSize < vecCaloSize) {
195 for (std::vector<std::vector<CaloTemplate> >::iterator itCondOnChip =
m_vecCaloTemplate.begin();
200 for (std::vector<CaloTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
207 if (condMapSize < vecEnergySumSize) {
213 for (std::vector<std::vector<EnergySumTemplate> >::iterator itCondOnChip =
m_vecEnergySumTemplate.begin();
218 for (std::vector<EnergySumTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
228 if (condMapSize < vecExternalSize) {
234 for (std::vector<std::vector<ExternalTemplate> >::iterator itCondOnChip =
m_vecExternalTemplate.begin();
239 for (std::vector<ExternalTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
247 if (condMapSize < vecCorrelationSize) {
258 for (std::vector<CorrelationTemplate>::iterator itCond = itCondOnChip->begin(); itCond != itCondOnChip->end();
266 if (condMapSize < vecCorrelationWORSize) {
272 for (std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >::iterator itCondOnChip =
278 for (std::vector<CorrelationWithOverlapRemovalTemplate>::iterator itCond = itCondOnChip->begin();
279 itCond != itCondOnChip->end();
327 const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >& vecCorrelationTempl) {
361 std::map<int, const GlobalAlgorithm*> algoBitToAlgo;
362 typedef std::map<int, const GlobalAlgorithm*>::const_iterator CItBit;
365 int bitNumber = (itAlgo->second).algoBitNumber();
366 algoBitToAlgo[
bitNumber] = &(itAlgo->second);
369 size_t nrDefinedAlgo = algoBitToAlgo.size();
386 switch (printVerbosity) {
390 myCout <<
"\n ********** L1 Trigger Menu - printing ********** \n"
392 <<
"\nL1 Trigger Menu Name: " <<
m_triggerMenuName <<
"\nL1 Trigger Menu UUID (hash): 0x"
395 <<
"\nL1 Physics Algorithms: " << nrDefinedAlgo <<
" algorithms defined."
397 <<
"Bit Number " << std::right << std::setw(35) <<
"Algorithm Name"
398 <<
" " << std::right << std::setw(35) <<
"Algorithm Alias" << std::endl;
400 for (CItBit itBit = algoBitToAlgo.begin(); itBit != algoBitToAlgo.end(); itBit++) {
405 myCout << std::setw(6) <<
bitNumber <<
" " << std::right << std::setw(35) << aName <<
" " << std::right
406 << std::setw(35) << aAlias << std::endl;
433 myCout <<
"\n ********** L1 Trigger Menu - printing ********** \n"
435 <<
"\nL1 Trigger Menu Name: " <<
m_triggerMenuName <<
"\nL1 Trigger Menu UUID (hash): 0x"
438 <<
"\nL1 Physics Algorithms: " << nrDefinedAlgo <<
" algorithms defined."
440 <<
"Bit Number " << std::right << std::setw(35) <<
"Algorithm Name"
441 <<
" " << std::right << std::setw(35) <<
"Algorithm Alias"
442 <<
"\n Logical Expression \n"
445 for (CItBit itBit = algoBitToAlgo.begin(); itBit != algoBitToAlgo.end(); itBit++) {
449 std::string aLogicalExpression = (itBit->second)->algoLogicalExpression();
451 myCout << std::setw(6) <<
bitNumber <<
" " << std::right << std::setw(35) << aName <<
" " << std::right
452 << std::setw(35) << aAlias <<
"\n Logical expression: " << aLogicalExpression <<
"\n"
476 myCout <<
"\n ********** L1 Trigger Menu - printing ********** \n"
478 <<
"\nL1 Trigger Menu Name: " <<
m_triggerMenuName <<
"\nL1 Trigger Menu UUID (hash): 0x"
481 <<
"\nL1 Physics Algorithms: " << nrDefinedAlgo <<
" algorithms defined."
485 for (CItBit itBit = algoBitToAlgo.begin(); itBit != algoBitToAlgo.end(); itBit++) {
486 (itBit->second)->
print(myCout);
489 myCout <<
"\nNumber of condition chips: " <<
m_conditionMap.size() <<
"\n" << std::endl;
492 int totalNrConditions = 0;
494 for (std::vector<l1t::ConditionMap>::const_iterator itCondOnChip =
m_conditionMap.begin();
499 int condMapSize = itCondOnChip->size();
500 totalNrConditions += condMapSize;
502 myCout <<
"\nTotal number of conditions on condition chip " << chipNr <<
": " << condMapSize <<
" conditions.\n"
505 for (
l1t::CItCond itCond = itCondOnChip->begin(); itCond != itCondOnChip->end(); itCond++) {
506 (itCond->second)->
print(myCout);
510 myCout <<
"\nTotal number of conditions on all condition chips: " << totalNrConditions <<
"\n" << std::endl;
531 myCout <<
"\n ********** L1 Trigger Menu - printing ********** \n\n"
532 <<
"Verbosity level: " << printVerbosity <<
" not implemented.\n\n"
541 bool algResult =
false;
545 int bitNumber = (itAlgo->second).algoBitNumber();