32 m_l1GtStableParCacheID(0ULL),
33 m_numberAlgorithmTriggers(0),
35 m_numberTechnicalTriggers(0),
37 m_l1GtPfAlgoCacheID(0ULL),
38 m_l1GtPfTechCacheID(0ULL),
40 m_l1GtTmAlgoCacheID(0ULL),
41 m_l1GtTmTechCacheID(0ULL),
43 m_l1GtTmVetoAlgoCacheID(0ULL),
44 m_l1GtTmVetoTechCacheID(0ULL),
46 m_l1GtMenuCacheID(0ULL),
48 m_l1EventSetupValid(
false),
50 m_l1GtMenuLiteValid(
false),
52 m_beginRunCache(
false),
56 m_physicsDaqPartition(0),
58 m_retrieveL1EventSetup(
false),
60 m_retrieveL1GtTriggerMenuLite(
false)
112 switch (trigCategory) {
114 return "Algorithm Trigger";
117 return "Technical Trigger";
138 unsigned long long l1GtStableParCacheID = l1GtStableParametersRcd.
cacheIdentifier();
166 unsigned long long l1GtPfAlgoCacheID = l1GtPrescaleFactorsAlgoTrigRcd.
cacheIdentifier();
181 unsigned long long l1GtPfTechCacheID = l1GtPrescaleFactorsTechTrigRcd.
cacheIdentifier();
199 unsigned long long l1GtTmAlgoCacheID = l1GtTriggerMaskAlgoTrigRcd.
cacheIdentifier();
214 unsigned long long l1GtTmTechCacheID = l1GtTriggerMaskTechTrigRcd.
cacheIdentifier();
229 unsigned long long l1GtTmVetoAlgoCacheID = l1GtTriggerMaskVetoAlgoTrigRcd.
cacheIdentifier();
247 unsigned long long l1GtTmVetoTechCacheID = l1GtTriggerMaskVetoTechTrigRcd.
cacheIdentifier();
265 unsigned long long l1GtMenuCacheID = l1GtTriggerMenuRcd.
cacheIdentifier();
297 <<
"\nrequested, but not found in the run." << std::endl;
388 if (itTrig->second == nameAlgoTechTrig) {
399 if (itTrig->second == nameAlgoTechTrig) {
411 if (itTrig->second == nameAlgoTechTrig) {
424 bitNumber = (itAlgo->second).algoBitNumber();
433 bitNumber = (itAlgo->second).algoBitNumber();
442 bitNumber = (itAlgo->second).algoBitNumber();
456 bitNumber = (itAlgo->second).algoBitNumber();
465 bitNumber = (itAlgo->second).algoBitNumber();
474 bitNumber = (itAlgo->second).algoBitNumber();
492 aliasL1Trigger.clear();
493 nameL1Trigger.clear();
499 bool trigAliasFound =
false;
500 bool trigNameFound =
false;
505 if (static_cast<int>(itTrig->first) ==
bitNumber) {
506 aliasL1Trigger = itTrig->second;
507 trigAliasFound =
true;
514 if (static_cast<int>(itTrig->first) ==
bitNumber) {
515 nameL1Trigger = itTrig->second;
516 trigNameFound =
true;
521 if (!(trigAliasFound && trigNameFound)) {
530 bool trigNameFound =
false;
535 if (static_cast<int>(itTrig->first) ==
bitNumber) {
536 nameL1Trigger = itTrig->second;
540 aliasL1Trigger = itTrig->second;
542 trigNameFound =
true;
547 if (!(trigNameFound)) {
561 bool trigAliasFound =
false;
564 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
565 aliasL1Trigger = itTrig->first;
567 nameL1Trigger = (itTrig->second).
algoName();
569 trigAliasFound =
true;
574 if (!(trigAliasFound)) {
583 bool trigNameFound =
false;
586 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
587 nameL1Trigger = (itTrig->second).
algoName();
590 aliasL1Trigger = nameL1Trigger;
592 trigNameFound =
true;
597 if (!(trigNameFound)) {
615 bool trigAliasFound =
false;
618 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
619 aliasL1Trigger = itTrig->first;
621 nameL1Trigger = (itTrig->second).
algoName();
623 trigAliasFound =
true;
628 if (!(trigAliasFound)) {
637 bool trigNameFound =
false;
640 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
641 nameL1Trigger = (itTrig->second).
algoName();
644 aliasL1Trigger = itTrig->first;
646 trigNameFound =
true;
651 if (!(trigNameFound)) {
673 bool& decisionBeforeMask,
674 bool& decisionAfterMask,
676 int& triggerMask)
const {
703 iError = l1ConfCode + 1;
707 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
709 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
713 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
715 <<
"\nretrieved from Event Setup" << std::endl;
720 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
722 <<
"\nretrieved from Event Setup" << std::endl;
732 iError = l1ConfCode + 2;
738 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
744 <<
"\nretrieved from Event Setup" << std::endl;
751 <<
"\nretrieved from Event Setup" << std::endl;
761 int iErrorRecord = 0;
763 bool validRecord =
false;
764 bool gtReadoutRecordValid =
false;
776 <<
"\nnot found in the event." << std::endl;
783 if (gtReadoutRecord.
isValid()) {
784 gtReadoutRecordValid =
true;
788 iErrorRecord = iErrorRecord + 100;
789 LogDebug(
"L1GtUtils") <<
"\nL1GlobalTriggerReadoutRecord with \n "
790 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nnot found in the event." << std::endl;
798 int pfIndexTechTrig = -1;
799 int pfIndexAlgoTrig = -1;
802 if (gtReadoutRecordValid) {
803 pfIndexTechTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexTech();
804 pfIndexAlgoTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexAlgo();
812 LogDebug(
"L1GtUtils") <<
"\nError: "
813 <<
"\nNo valid L1GlobalTriggerRecord with \n " <<
m_l1GtUtilsHelper->l1GtRecordInputTag()
814 <<
"\nfound in the event."
815 <<
"\nNo valid L1GlobalTriggerReadoutRecord with \n "
816 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nfound in the event." << std::endl;
818 iError = l1ConfCode + iErrorRecord;
830 size_t pfSetsSize = 0;
832 const std::vector<int>* prescaleFactorsSubset =
nullptr;
833 const std::vector<unsigned int>* triggerMasksSet =
nullptr;
835 switch (trigCategory) {
854 pfIndex = pfIndexAlgoTrig;
875 pfIndex = pfIndexTechTrig;
880 iError = l1ConfCode + iErrorRecord + 3;
889 iError = l1ConfCode + iErrorRecord + 1000;
890 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n"
892 <<
"\n Value of index retrieved from data = " << pfIndex << std::endl;
896 }
else if (pfIndex >= (static_cast<int>(pfSetsSize))) {
897 iError = l1ConfCode + iErrorRecord + 2000;
898 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n"
899 <<
"greater than the size of the vector of prescale factor sets."
900 <<
"\n Value of index retrieved from data = " << pfIndex
901 <<
"\n Vector size = " << pfSetsSize << std::endl;
906 switch (trigCategory) {
910 prescaleFactorsSubset = &((*m_prescaleFactorsAlgoTrigLite).at(pfIndex));
914 prescaleFactorsSubset = &((*m_prescaleFactorsAlgoTrig).at(pfIndex));
919 prescaleFactorsSubset = &((*m_prescaleFactorsAlgoTrig).at(pfIndex));
926 prescaleFactorsSubset = &((*m_prescaleFactorsTechTrigLite).at(pfIndex));
930 prescaleFactorsSubset = &((*m_prescaleFactorsTechTrig).at(pfIndex));
935 prescaleFactorsSubset = &((*m_prescaleFactorsTechTrig).at(pfIndex));
949 switch (trigCategory) {
951 if (gtReadoutRecordValid) {
955 return (iError + l1ConfCode + iErrorRecord);
962 return (iError + l1ConfCode + iErrorRecord);
968 if (gtReadoutRecordValid) {
972 return (iError + l1ConfCode + iErrorRecord);
979 return (iError + l1ConfCode + iErrorRecord);
993 if (
bitNumber < (static_cast<int>(prescaleFactorsSubset->size()))) {
996 iError = l1ConfCode + iErrorRecord + 4000;
998 <<
"\n " << nameAlgoTechTrig <<
"\ngreater than size of actual L1 GT prescale factor set: "
999 << prescaleFactorsSubset->size() <<
"\nError: Inconsistent L1 trigger configuration!"
1007 if (
bitNumber < (static_cast<int>((*triggerMasksSet).size()))) {
1025 iError = l1ConfCode + iErrorRecord + 5000;
1027 <<
"\n " << nameAlgoTechTrig
1028 <<
"\ngreater than size of L1 GT trigger mask set: " << (*triggerMasksSet).size()
1029 <<
"\nError: Inconsistent L1 trigger configuration!" << std::endl;
1045 int& errorCode)
const {
1059 int& errorCode)
const {
1085 int& errorCode)
const {
1111 int triggerMaskValue = -1;
1121 return triggerMaskValue;
1134 iError = l1ConfCode + 1;
1138 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
1140 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
1144 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
1146 <<
"\nretrieved from Event Setup" << std::endl;
1151 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
1153 <<
"\nretrieved from Event Setup" << std::endl;
1157 return triggerMaskValue;
1164 iError = l1ConfCode + 2;
1170 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
1176 <<
"\nretrieved from Event Setup" << std::endl;
1183 <<
"\nretrieved from Event Setup" << std::endl;
1187 return triggerMaskValue;
1195 const std::vector<unsigned int>* triggerMasksSet =
nullptr;
1197 switch (trigCategory) {
1232 iError = l1ConfCode + 3;
1235 return triggerMaskValue;
1242 if (
bitNumber < (static_cast<int>((*triggerMasksSet).size()))) {
1245 triggerMaskValue = (*triggerMasksSet)[
bitNumber];
1260 iError = l1ConfCode + 5000;
1262 <<
"\n " << nameAlgoTechTrig
1263 <<
"\ngreater than size of L1 GT trigger mask set: " << (*triggerMasksSet).size()
1264 <<
"\nError: Inconsistent L1 trigger configuration!" << std::endl;
1267 return triggerMaskValue;
1271 return triggerMaskValue;
1276 int& errorCode)
const {
1298 int iErrorRecord = 0;
1300 bool validRecord =
false;
1301 bool gtReadoutRecordValid =
false;
1313 <<
"\nnot found in the event." << std::endl;
1320 if (gtReadoutRecord.
isValid()) {
1321 gtReadoutRecordValid =
true;
1325 iErrorRecord = iErrorRecord + 100;
1326 LogDebug(
"L1GtUtils") <<
"\nL1GlobalTriggerReadoutRecord with \n "
1327 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nnot found in the event." << std::endl;
1335 int pfIndexTechTrig = -1;
1336 int pfIndexAlgoTrig = -1;
1339 if (gtReadoutRecordValid) {
1340 pfIndexTechTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexTech();
1341 pfIndexAlgoTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexAlgo();
1349 LogDebug(
"L1GtUtils") <<
"\nError: "
1350 <<
"\nNo valid L1GlobalTriggerRecord with \n " <<
m_l1GtUtilsHelper->l1GtRecordInputTag()
1351 <<
"\nfound in the event."
1352 <<
"\nNo valid L1GlobalTriggerReadoutRecord with \n "
1353 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nfound in the event." << std::endl;
1355 iError = l1ConfCode + iErrorRecord;
1369 size_t pfSetsSize = 0;
1371 switch (trigCategory) {
1387 pfIndex = pfIndexAlgoTrig;
1405 pfIndex = pfIndexTechTrig;
1410 iError = l1ConfCode + iErrorRecord + 3;
1419 iError = l1ConfCode + iErrorRecord + 1000;
1420 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n"
1421 <<
"less than zero."
1422 <<
"\n Value of index retrieved from data = " << pfIndex << std::endl;
1427 }
else if (pfIndex >= (static_cast<int>(pfSetsSize))) {
1428 iError = l1ConfCode + iErrorRecord + 2000;
1429 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n"
1430 <<
"greater than the size of the vector of prescale factor sets."
1431 <<
"\n Value of index retrieved from data = " << pfIndex
1432 <<
"\n Vector size = " << pfSetsSize << std::endl;
1458 switch (trigCategory) {
1525 switch (trigCategory) {
1570 iError = l1ConfCode + 3;
1640 iError = l1ConfCode;
1668 iError = l1ConfCode;
1674 iError = l1ConfCode;
1687 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from L1GtTriggerMenuLite only.\n" << std::endl;
1690 LogDebug(
"L1GtUtils") <<
"\nFall through: retrieve L1 trigger configuration from L1GtTriggerMenuLite."
1691 <<
"\nIf L1GtTriggerMenuLite not valid, try to retrieve from event setup.\n"
1693 l1ConfCode = 100000;
1697 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from L1GtTriggerMenuLite, valid product.\n"
1699 l1ConfCode = l1ConfCode + 10000;
1706 LogDebug(
"L1GtUtils") <<
"\nFall through: retrieve L1 trigger configuration from event setup."
1707 <<
"\nFirst option was L1GtTriggerMenuLite - but product is not valid.\n"
1709 l1ConfCode = l1ConfCode + 20000;
1715 LogDebug(
"L1GtUtils") <<
"\nFall through: L1GtTriggerMenuLite not valid, event setup not valid.\n" << std::endl;
1717 errorCode = l1ConfCode;
1723 LogDebug(
"L1GtUtils") <<
"\nError: L1 trigger configuration requested from L1GtTriggerMenuLite only"
1724 <<
"\nbut L1GtTriggerMenuLite is not valid.\n"
1727 errorCode = l1ConfCode;
1732 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from event setup."
1733 <<
"\nL1GtTriggerMenuLite product was not requested.\n"
1735 l1ConfCode = 200000;
1738 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from event setup only."
1739 <<
"\nValid L1 trigger event setup.\n"
1741 l1ConfCode = l1ConfCode + 10000;
1747 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from event setup only."
1748 <<
"\nNo valid L1 trigger event setup.\n"
1751 errorCode = l1ConfCode;
1757 LogDebug(
"L1GtUtils") <<
"\nError: no L1 trigger configuration requested to be retrieved."
1758 <<
"\nMust call before getL1GtRunCache in beginRun and analyze.\n"
1760 l1ConfCode = 300000;
1761 errorCode = l1ConfCode;
1773 int& errorCode)
const {
1774 bool trigRes =
false;
1777 if (
bitNumber < (static_cast<int>(decWord.size()))) {
1782 <<
"\n " << nameAlgoTechTrig
1783 <<
"\ngreater than size of L1 GT decision word: " << decWord.size()
1784 <<
"\nError: Inconsistent L1 trigger configuration!" << std::endl;
1793 m_logicalExpression(expression),
1795 m_l1GtUtils(l1GtUtils),
1799 m_validL1Configuration(
false),
1801 m_validLogicalExpression(
false),
1803 m_l1ResultsAlreadyCalled(
false),
1805 m_expL1TriggersSize(0),
1807 m_expBitsTechTrigger(
false) {
1825 m_expL1TriggersSize = m_expL1Triggers.size();
1827 m_validLogicalExpression =
true;
1830 m_validLogicalExpression =
false;
1844 m_expBitsTechTrigger =
true;
1846 for (
size_t iTrig = 0; iTrig < m_expL1TriggersSize; ++iTrig) {
1847 const std::string& bitString = (m_expL1Triggers[iTrig]).tokenName;
1848 std::istringstream bitStream(bitString);
1851 if ((bitStream >> bitInt).fail()) {
1852 m_expBitsTechTrigger =
false;
1857 (m_expL1Triggers[iTrig]).tokenNumber = bitInt;
1861 m_decisionsBeforeMask.resize(m_expL1TriggersSize);
1862 m_decisionsAfterMask.resize(m_expL1TriggersSize);
1863 m_prescaleFactors.resize(m_expL1TriggersSize);
1864 m_triggerMasks.resize(m_expL1TriggersSize);
1865 m_errorCodes.resize(m_expL1TriggersSize);
1866 m_expTriggerCategory.resize(m_expL1TriggersSize);
1867 m_expTriggerInMenu.resize(m_expL1TriggersSize);
1869 LogDebug(
"L1GtUtils") << std::endl;
1870 LogTrace(
"L1GtUtils") <<
"\nLogical expression\n " << m_logicalExpression <<
"\n has " << m_expL1TriggersSize
1871 <<
" L1 triggers" << std::endl;
1872 for (
size_t iTrig = 0; iTrig < m_expL1TriggersSize; ++iTrig) {
1873 const std::string& trigNameOrAlias = (m_expL1Triggers[iTrig]).tokenName;
1874 LogTrace(
"L1GtUtils") <<
" " << trigNameOrAlias << std::endl;
1876 (m_decisionsBeforeMask[iTrig]).
first = trigNameOrAlias;
1877 (m_decisionsBeforeMask[iTrig]).
second =
false;
1879 (m_decisionsAfterMask[iTrig]).
first = trigNameOrAlias;
1880 (m_decisionsAfterMask[iTrig]).
second =
false;
1882 (m_prescaleFactors[iTrig]).
first = trigNameOrAlias;
1883 (m_prescaleFactors[iTrig]).
second = -1;
1885 (m_triggerMasks[iTrig]).
first = trigNameOrAlias;
1886 (m_triggerMasks[iTrig]).
second = -1;
1888 (m_errorCodes[iTrig]).
first = trigNameOrAlias;
1889 (m_errorCodes[iTrig]).
second = -1;
1893 m_expTriggerInMenu[iTrig] =
false;
1895 LogTrace(
"L1GtUtils") << std::endl;
1909 m_logicalExpression = logicExpression;
1910 m_validLogicalExpression =
false;
1912 m_l1ResultsAlreadyCalled =
false;
1914 m_expL1TriggersSize = 0;
1915 m_expBitsTechTrigger =
false;
1918 m_decisionsBeforeMask.clear();
1919 m_decisionsAfterMask.clear();
1920 m_prescaleFactors.clear();
1921 m_triggerMasks.clear();
1922 m_errorCodes.clear();
1923 m_expTriggerCategory.clear();
1924 m_expTriggerInMenu.clear();
1929 errorCode = logicalExpressionRunUpdate(iRun, evSetup);
1943 if (!(m_l1GtUtils.availableL1Configuration(errorCode, l1ConfCode))) {
1944 m_validL1Configuration =
false;
1947 m_validL1Configuration =
true;
1948 m_l1ConfCode = l1ConfCode;
1961 for (
size_t iTrig = 0; iTrig < m_expL1TriggersSize; ++iTrig) {
1964 const std::string& trigNameOrAlias = (m_expL1Triggers[iTrig]).tokenName;
1966 if (!m_expBitsTechTrigger) {
1967 const bool triggerInMenu = m_l1GtUtils.l1AlgoTechTrigBitNumber(trigNameOrAlias, trigCategory,
bitNumber);
1969 (m_expL1Triggers[iTrig]).tokenNumber =
bitNumber;
1970 m_expTriggerCategory[iTrig] = trigCategory;
1971 m_expTriggerInMenu[iTrig] = triggerInMenu;
1978 bitNumber = (m_expL1Triggers[iTrig]).tokenNumber;
1980 const bool triggerInMenu =
1981 m_l1GtUtils.l1TriggerNameFromBit(
bitNumber, trigCategory, aliasL1Trigger, nameL1Trigger);
1983 if (!triggerInMenu) {
1984 aliasL1Trigger =
"Technical_trigger_bit_" + (m_expL1Triggers[iTrig]).tokenName +
"_empty";
1987 (m_expL1Triggers[iTrig]).tokenName = aliasL1Trigger;
1988 m_expTriggerCategory[iTrig] = trigCategory;
1989 m_expTriggerInMenu[iTrig] = triggerInMenu;
1993 (m_decisionsBeforeMask[iTrig]).
first = aliasL1Trigger;
1994 (m_decisionsAfterMask[iTrig]).
first = aliasL1Trigger;
1995 (m_prescaleFactors[iTrig]).
first = aliasL1Trigger;
1996 (m_triggerMasks[iTrig]).
first = aliasL1Trigger;
1997 (m_errorCodes[iTrig]).
first = aliasL1Trigger;
2006 if (!m_l1ResultsAlreadyCalled) {
2008 <<
"\nUsage error: "
2009 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n"
2013 return m_decisionsBeforeMask;
2018 if (!m_l1ResultsAlreadyCalled) {
2020 <<
"\nUsage error: "
2021 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n"
2025 return m_decisionsAfterMask;
2030 if (!m_l1ResultsAlreadyCalled) {
2032 <<
"\nUsage error: "
2033 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n"
2037 return m_prescaleFactors;
2042 if (!m_l1ResultsAlreadyCalled) {
2044 <<
"\nUsage error: "
2045 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n"
2049 return m_triggerMasks;
2054 m_l1ResultsAlreadyCalled =
false;
2057 if (!m_validL1Configuration) {
2058 reset(m_decisionsBeforeMask);
2059 reset(m_decisionsAfterMask);
2060 reset(m_prescaleFactors);
2061 reset(m_triggerMasks);
2062 reset(m_errorCodes);
2064 m_l1ResultsAlreadyCalled =
true;
2065 return m_errorCodes;
2070 m_l1ResultsAlreadyCalled =
true;
2072 return m_errorCodes;
2076 std::vector<std::pair<std::string, bool> > pairVector = _pairVector;
2077 for (
size_t iTrig = 0; iTrig < m_expL1TriggersSize; ++iTrig) {
2078 (pairVector[iTrig]).
second =
false;
2083 std::vector<std::pair<std::string, int> > pairVector = _pairVector;
2084 for (
size_t iTrig = 0; iTrig < m_expL1TriggersSize; ++iTrig) {
2085 (pairVector[iTrig]).
second = -1;
2091 reset(m_decisionsBeforeMask);
2092 reset(m_decisionsAfterMask);
2093 reset(m_prescaleFactors);
2094 reset(m_triggerMasks);
2095 reset(m_errorCodes);
2098 bool decisionBeforeMaskValue =
false;
2099 bool decisionAfterMaskValue =
false;
2100 int prescaleFactorValue = -1;
2101 int triggerMaskValue = -1;
2104 LogDebug(
"L1GtUtils") << std::endl;
2105 LogTrace(
"L1GtUtils") <<
"\nLogical expression\n " << m_logicalExpression << std::endl;
2109 for (
size_t iTrig = 0; iTrig < m_expL1TriggersSize; ++iTrig) {
2110 const std::string& trigNameOrAlias = (m_expL1Triggers[iTrig]).tokenName;
2112 if (m_expTriggerInMenu[iTrig]) {
2113 errorCode = m_l1GtUtils.l1Results(
iEvent,
2115 decisionBeforeMaskValue,
2116 decisionAfterMaskValue,
2117 prescaleFactorValue,
2120 if (errorCode != 0) {
2124 decisionBeforeMaskValue =
false;
2125 decisionAfterMaskValue =
false;
2126 prescaleFactorValue = -1;
2127 triggerMaskValue = -1;
2134 decisionBeforeMaskValue =
false;
2135 decisionAfterMaskValue =
false;
2136 prescaleFactorValue = -1;
2137 triggerMaskValue = -1;
2138 errorCode = m_l1ConfCode + 1;
2141 LogTrace(
"L1GtUtils") <<
"\n" << trigNameOrAlias <<
":" << std::endl;
2143 (m_decisionsBeforeMask[iTrig]).
second = decisionBeforeMaskValue;
2144 LogTrace(
"L1GtUtils") <<
" decision before mask = " << decisionBeforeMaskValue << std::endl;
2146 (m_decisionsAfterMask[iTrig]).
second = decisionAfterMaskValue;
2147 LogTrace(
"L1GtUtils") <<
" decision after mask = " << decisionAfterMaskValue << std::endl;
2149 (m_prescaleFactors[iTrig]).
second = prescaleFactorValue;
2150 LogTrace(
"L1GtUtils") <<
" prescale factor = " << prescaleFactorValue << std::endl;
2152 (m_triggerMasks[iTrig]).
second = triggerMaskValue;
2153 LogTrace(
"L1GtUtils") <<
" trigger mask = " << triggerMaskValue << std::endl;
2155 (m_errorCodes[iTrig]).
second = errorCode;
2156 LogTrace(
"L1GtUtils") <<
" error code = " << errorCode << std::endl;
2159 LogDebug(
"L1GtUtils") << std::endl;