51 m_l1GtStableParCacheID(0ULL),
52 m_numberAlgorithmTriggers(0),
54 m_numberTechnicalTriggers(0),
56 m_l1GtPfAlgoCacheID(0ULL),
57 m_l1GtPfTechCacheID(0ULL),
59 m_l1GtTmAlgoCacheID(0ULL),
60 m_l1GtTmTechCacheID(0ULL),
62 m_l1GtTmVetoAlgoCacheID(0ULL),
63 m_l1GtTmVetoTechCacheID(0ULL),
65 m_l1GtMenuCacheID(0ULL),
67 m_l1EventSetupValid(
false),
69 m_l1GtMenuLiteValid(
false),
71 m_beginRunCache(
false),
75 m_physicsDaqPartition(0),
77 m_retrieveL1EventSetup(
false),
79 m_retrieveL1GtTriggerMenuLite(
false)
86 :
L1GtUtils(pset, iC, useL1GtTriggerMenuLite) {}
99 switch (trigCategory) {
101 return "Algorithm Trigger";
104 return "Technical Trigger";
252 <<
"\nrequested, but not found in the run." << std::endl;
284 if (useL1EventSetup) {
293 if (useL1GtTriggerMenuLite) {
306 if (useL1EventSetup) {
321 if (useL1GtTriggerMenuLite) {
341 if (itTrig->second == nameAlgoTechTrig) {
343 bitNumber = itTrig->first;
352 if (itTrig->second == nameAlgoTechTrig) {
354 bitNumber = itTrig->first;
364 if (itTrig->second == nameAlgoTechTrig) {
366 bitNumber = itTrig->first;
377 bitNumber = (itAlgo->second).algoBitNumber();
386 bitNumber = (itAlgo->second).algoBitNumber();
395 bitNumber = (itAlgo->second).algoBitNumber();
409 bitNumber = (itAlgo->second).algoBitNumber();
418 bitNumber = (itAlgo->second).algoBitNumber();
427 bitNumber = (itAlgo->second).algoBitNumber();
445 aliasL1Trigger.clear();
446 nameL1Trigger.clear();
452 bool trigAliasFound =
false;
453 bool trigNameFound =
false;
458 if (static_cast<int>(itTrig->first) ==
bitNumber) {
459 aliasL1Trigger = itTrig->second;
460 trigAliasFound =
true;
467 if (static_cast<int>(itTrig->first) ==
bitNumber) {
468 nameL1Trigger = itTrig->second;
469 trigNameFound =
true;
474 if (!(trigAliasFound && trigNameFound)) {
483 bool trigNameFound =
false;
488 if (static_cast<int>(itTrig->first) ==
bitNumber) {
489 nameL1Trigger = itTrig->second;
493 aliasL1Trigger = itTrig->second;
495 trigNameFound =
true;
500 if (!(trigNameFound)) {
514 bool trigAliasFound =
false;
517 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
518 aliasL1Trigger = itTrig->first;
520 nameL1Trigger = (itTrig->second).
algoName();
522 trigAliasFound =
true;
527 if (!(trigAliasFound)) {
536 bool trigNameFound =
false;
539 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
540 nameL1Trigger = (itTrig->second).
algoName();
543 aliasL1Trigger = nameL1Trigger;
545 trigNameFound =
true;
550 if (!(trigNameFound)) {
568 bool trigAliasFound =
false;
571 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
572 aliasL1Trigger = itTrig->first;
574 nameL1Trigger = (itTrig->second).
algoName();
576 trigAliasFound =
true;
581 if (!(trigAliasFound)) {
590 bool trigNameFound =
false;
593 if ((itTrig->second).algoBitNumber() ==
bitNumber) {
594 nameL1Trigger = (itTrig->second).
algoName();
597 aliasL1Trigger = itTrig->first;
599 trigNameFound =
true;
604 if (!(trigNameFound)) {
631 decisionBeforeMask =
false;
632 decisionAfterMask =
false;
656 iError = l1ConfCode + 1;
660 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
662 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
666 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
668 <<
"\nretrieved from Event Setup" << std::endl;
673 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
675 <<
"\nretrieved from Event Setup" << std::endl;
685 iError = l1ConfCode + 2;
691 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
697 <<
"\nretrieved from Event Setup" << std::endl;
704 <<
"\nretrieved from Event Setup" << std::endl;
714 int iErrorRecord = 0;
716 bool validRecord =
false;
717 bool gtReadoutRecordValid =
false;
729 <<
"\nnot found in the event." << std::endl;
736 if (gtReadoutRecord.
isValid()) {
737 gtReadoutRecordValid =
true;
741 iErrorRecord = iErrorRecord + 100;
742 LogDebug(
"L1GtUtils") <<
"\nL1GlobalTriggerReadoutRecord with \n " 743 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nnot found in the event." << std::endl;
751 int pfIndexTechTrig = -1;
752 int pfIndexAlgoTrig = -1;
755 if (gtReadoutRecordValid) {
756 pfIndexTechTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexTech();
757 pfIndexAlgoTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexAlgo();
765 LogDebug(
"L1GtUtils") <<
"\nError: " 766 <<
"\nNo valid L1GlobalTriggerRecord with \n " <<
m_l1GtUtilsHelper->l1GtRecordInputTag()
767 <<
"\nfound in the event." 768 <<
"\nNo valid L1GlobalTriggerReadoutRecord with \n " 769 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nfound in the event." << std::endl;
771 iError = l1ConfCode + iErrorRecord;
783 size_t pfSetsSize = 0;
785 const std::vector<int>* prescaleFactorsSubset =
nullptr;
786 const std::vector<unsigned int>* triggerMasksSet =
nullptr;
788 switch (trigCategory) {
807 pfIndex = pfIndexAlgoTrig;
828 pfIndex = pfIndexTechTrig;
833 iError = l1ConfCode + iErrorRecord + 3;
842 iError = l1ConfCode + iErrorRecord + 1000;
843 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n" 845 <<
"\n Value of index retrieved from data = " << pfIndex << std::endl;
849 }
else if (pfIndex >= (static_cast<int>(pfSetsSize))) {
850 iError = l1ConfCode + iErrorRecord + 2000;
851 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n" 852 <<
"greater than the size of the vector of prescale factor sets." 853 <<
"\n Value of index retrieved from data = " << pfIndex
854 <<
"\n Vector size = " << pfSetsSize << std::endl;
859 switch (trigCategory) {
863 prescaleFactorsSubset = &((*m_prescaleFactorsAlgoTrigLite).at(pfIndex));
867 prescaleFactorsSubset = &((*m_prescaleFactorsAlgoTrig).at(pfIndex));
872 prescaleFactorsSubset = &((*m_prescaleFactorsAlgoTrig).at(pfIndex));
879 prescaleFactorsSubset = &((*m_prescaleFactorsTechTrigLite).at(pfIndex));
883 prescaleFactorsSubset = &((*m_prescaleFactorsTechTrig).at(pfIndex));
888 prescaleFactorsSubset = &((*m_prescaleFactorsTechTrig).at(pfIndex));
902 switch (trigCategory) {
904 if (gtReadoutRecordValid) {
906 decisionBeforeMask =
trigResult(decWord, bitNumber, nameAlgoTechTrig, trigCategory, iError);
908 return (iError + l1ConfCode + iErrorRecord);
913 decisionBeforeMask =
trigResult(decWord, bitNumber, nameAlgoTechTrig, trigCategory, iError);
915 return (iError + l1ConfCode + iErrorRecord);
921 if (gtReadoutRecordValid) {
923 decisionBeforeMask =
trigResult(decWord, bitNumber, nameAlgoTechTrig, trigCategory, iError);
925 return (iError + l1ConfCode + iErrorRecord);
930 decisionBeforeMask =
trigResult(decWord, bitNumber, nameAlgoTechTrig, trigCategory, iError);
932 return (iError + l1ConfCode + iErrorRecord);
946 if (bitNumber < (static_cast<int>(prescaleFactorsSubset->size()))) {
947 prescaleFactor = (*prescaleFactorsSubset)[
bitNumber];
949 iError = l1ConfCode + iErrorRecord + 4000;
950 LogDebug(
"L1GtUtils") <<
"\nError: bit number " << bitNumber <<
" retrieved for " <<
triggerCategory(trigCategory)
951 <<
"\n " << nameAlgoTechTrig <<
"\ngreater than size of actual L1 GT prescale factor set: " 952 << prescaleFactorsSubset->size() <<
"\nError: Inconsistent L1 trigger configuration!" 960 if (bitNumber < (static_cast<int>((*triggerMasksSet).size()))) {
963 triggerMask = (*triggerMasksSet)[
bitNumber];
978 iError = l1ConfCode + iErrorRecord + 5000;
979 LogDebug(
"L1GtUtils") <<
"\nError: bit number " << bitNumber <<
" retrieved for " <<
triggerCategory(trigCategory)
980 <<
"\n " << nameAlgoTechTrig
981 <<
"\ngreater than size of L1 GT trigger mask set: " << (*triggerMasksSet).size()
982 <<
"\nError: Inconsistent L1 trigger configuration!" << std::endl;
990 decisionAfterMask =
false;
998 int& errorCode)
const {
1005 errorCode =
l1Results(iEvent, nameAlgoTechTrig, decisionBeforeMask, decisionAfterMask, prescaleFactor, triggerMask);
1012 int& errorCode)
const {
1019 errorCode =
l1Results(iEvent, nameAlgoTechTrig, decisionBeforeMask, decisionAfterMask, prescaleFactor, triggerMask);
1031 errorCode =
l1Results(iEvent, nameAlgoTechTrig, decisionBeforeMask, decisionAfterMask, prescaleFactor, triggerMask);
1038 int& errorCode)
const {
1045 errorCode =
l1Results(iEvent, nameAlgoTechTrig, decisionBeforeMask, decisionAfterMask, prescaleFactor, triggerMask);
1057 errorCode =
l1Results(iEvent, nameAlgoTechTrig, decisionBeforeMask, decisionAfterMask, prescaleFactor, triggerMask);
1064 int triggerMaskValue = -1;
1074 return triggerMaskValue;
1087 iError = l1ConfCode + 1;
1091 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
1093 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
1097 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
1099 <<
"\nretrieved from Event Setup" << std::endl;
1104 LogDebug(
"L1GtUtils") <<
"\nAlgorithm/technical trigger \n " << nameAlgoTechTrig
1106 <<
"\nretrieved from Event Setup" << std::endl;
1110 return triggerMaskValue;
1116 if (bitNumber < 0) {
1117 iError = l1ConfCode + 2;
1123 <<
"\nretrieved from L1GtTriggerMenuLite" << std::endl;
1129 <<
"\nretrieved from Event Setup" << std::endl;
1136 <<
"\nretrieved from Event Setup" << std::endl;
1140 return triggerMaskValue;
1148 const std::vector<unsigned int>* triggerMasksSet =
nullptr;
1150 switch (trigCategory) {
1185 iError = l1ConfCode + 3;
1188 return triggerMaskValue;
1195 if (bitNumber < (static_cast<int>((*triggerMasksSet).size()))) {
1198 triggerMaskValue = (*triggerMasksSet)[
bitNumber];
1213 iError = l1ConfCode + 5000;
1214 LogDebug(
"L1GtUtils") <<
"\nError: bit number " << bitNumber <<
" retrieved for " <<
triggerCategory(trigCategory)
1215 <<
"\n " << nameAlgoTechTrig
1216 <<
"\ngreater than size of L1 GT trigger mask set: " << (*triggerMasksSet).size()
1217 <<
"\nError: Inconsistent L1 trigger configuration!" << std::endl;
1220 return triggerMaskValue;
1224 return triggerMaskValue;
1229 int& errorCode)
const {
1251 int iErrorRecord = 0;
1253 bool validRecord =
false;
1254 bool gtReadoutRecordValid =
false;
1266 <<
"\nnot found in the event." << std::endl;
1273 if (gtReadoutRecord.
isValid()) {
1274 gtReadoutRecordValid =
true;
1278 iErrorRecord = iErrorRecord + 100;
1279 LogDebug(
"L1GtUtils") <<
"\nL1GlobalTriggerReadoutRecord with \n " 1280 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nnot found in the event." << std::endl;
1288 int pfIndexTechTrig = -1;
1289 int pfIndexAlgoTrig = -1;
1292 if (gtReadoutRecordValid) {
1293 pfIndexTechTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexTech();
1294 pfIndexAlgoTrig = (gtReadoutRecord->
gtFdlWord()).gtPrescaleFactorIndexAlgo();
1302 LogDebug(
"L1GtUtils") <<
"\nError: " 1303 <<
"\nNo valid L1GlobalTriggerRecord with \n " <<
m_l1GtUtilsHelper->l1GtRecordInputTag()
1304 <<
"\nfound in the event." 1305 <<
"\nNo valid L1GlobalTriggerReadoutRecord with \n " 1306 <<
m_l1GtUtilsHelper->l1GtReadoutRecordInputTag() <<
"\nfound in the event." << std::endl;
1308 iError = l1ConfCode + iErrorRecord;
1322 size_t pfSetsSize = 0;
1324 switch (trigCategory) {
1340 pfIndex = pfIndexAlgoTrig;
1358 pfIndex = pfIndexTechTrig;
1363 iError = l1ConfCode + iErrorRecord + 3;
1372 iError = l1ConfCode + iErrorRecord + 1000;
1373 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n" 1374 <<
"less than zero." 1375 <<
"\n Value of index retrieved from data = " << pfIndex << std::endl;
1380 }
else if (pfIndex >= (static_cast<int>(pfSetsSize))) {
1381 iError = l1ConfCode + iErrorRecord + 2000;
1382 LogDebug(
"L1GtUtils") <<
"\nError: index of prescale factor set retrieved from the data \n" 1383 <<
"greater than the size of the vector of prescale factor sets." 1384 <<
"\n Value of index retrieved from data = " << pfIndex
1385 <<
"\n Vector size = " << pfSetsSize << std::endl;
1411 switch (trigCategory) {
1478 switch (trigCategory) {
1523 iError = l1ConfCode + 3;
1593 iError = l1ConfCode;
1621 iError = l1ConfCode;
1627 iError = l1ConfCode;
1640 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from L1GtTriggerMenuLite only.\n" << std::endl;
1643 LogDebug(
"L1GtUtils") <<
"\nFall through: retrieve L1 trigger configuration from L1GtTriggerMenuLite." 1644 <<
"\nIf L1GtTriggerMenuLite not valid, try to retrieve from event setup.\n" 1646 l1ConfCode = 100000;
1650 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from L1GtTriggerMenuLite, valid product.\n" 1652 l1ConfCode = l1ConfCode + 10000;
1659 LogDebug(
"L1GtUtils") <<
"\nFall through: retrieve L1 trigger configuration from event setup." 1660 <<
"\nFirst option was L1GtTriggerMenuLite - but product is not valid.\n" 1662 l1ConfCode = l1ConfCode + 20000;
1668 LogDebug(
"L1GtUtils") <<
"\nFall through: L1GtTriggerMenuLite not valid, event setup not valid.\n" << std::endl;
1670 errorCode = l1ConfCode;
1676 LogDebug(
"L1GtUtils") <<
"\nError: L1 trigger configuration requested from L1GtTriggerMenuLite only" 1677 <<
"\nbut L1GtTriggerMenuLite is not valid.\n" 1680 errorCode = l1ConfCode;
1685 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from event setup." 1686 <<
"\nL1GtTriggerMenuLite product was not requested.\n" 1688 l1ConfCode = 200000;
1691 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from event setup only." 1692 <<
"\nValid L1 trigger event setup.\n" 1694 l1ConfCode = l1ConfCode + 10000;
1700 LogDebug(
"L1GtUtils") <<
"\nRetrieve L1 trigger configuration from event setup only." 1701 <<
"\nNo valid L1 trigger event setup.\n" 1704 errorCode = l1ConfCode;
1710 LogDebug(
"L1GtUtils") <<
"\nError: no L1 trigger configuration requested to be retrieved." 1711 <<
"\nMust call before getL1GtRunCache in beginRun and analyze.\n" 1713 l1ConfCode = 300000;
1714 errorCode = l1ConfCode;
1726 int& errorCode)
const {
1727 bool trigRes =
false;
1730 if (bitNumber < (static_cast<int>(decWord.size()))) {
1734 LogDebug(
"L1GtUtils") <<
"\nError: bit number " << bitNumber <<
" retrieved for " <<
triggerCategory(trigCategory)
1735 <<
"\n " << nameAlgoTechTrig
1736 <<
"\ngreater than size of L1 GT decision word: " << decWord.size()
1737 <<
"\nError: Inconsistent L1 trigger configuration!" << std::endl;
1746 m_logicalExpression(expression),
1748 m_l1GtUtils(l1GtUtils),
1752 m_validL1Configuration(
false),
1754 m_validLogicalExpression(
false),
1756 m_l1ResultsAlreadyCalled(
false),
1758 m_expL1TriggersSize(0),
1760 m_expBitsTechTrigger(
false) {
1801 std::istringstream bitStream(bitString);
1804 if ((bitStream >> bitInt).fail()) {
1822 LogDebug(
"L1GtUtils") << std::endl;
1824 <<
" L1 triggers" << std::endl;
1827 LogTrace(
"L1GtUtils") <<
" " << trigNameOrAlias << std::endl;
1848 LogTrace(
"L1GtUtils") << std::endl;
1933 const bool triggerInMenu =
1936 if (!triggerInMenu) {
1937 aliasL1Trigger =
"Technical_trigger_bit_" + (
m_expL1Triggers[iTrig]).tokenName +
"_empty";
1961 <<
"\nUsage error: " 1962 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n" 1973 <<
"\nUsage error: " 1974 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n" 1985 <<
"\nUsage error: " 1986 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n" 1997 <<
"\nUsage error: " 1998 <<
"\n Method 'errorCodes' must be called in the event loop before attempting to use this method.\n" 2029 std::vector<std::pair<std::string, bool> > pairVector = _pairVector;
2031 (pairVector[iTrig]).
second =
false;
2036 std::vector<std::pair<std::string, int> > pairVector = _pairVector;
2038 (pairVector[iTrig]).
second = -1;
2051 bool decisionBeforeMaskValue =
false;
2052 bool decisionAfterMaskValue =
false;
2053 int prescaleFactorValue = -1;
2054 int triggerMaskValue = -1;
2057 LogDebug(
"L1GtUtils") << std::endl;
2068 decisionBeforeMaskValue,
2069 decisionAfterMaskValue,
2070 prescaleFactorValue,
2073 if (errorCode != 0) {
2077 decisionBeforeMaskValue =
false;
2078 decisionAfterMaskValue =
false;
2079 prescaleFactorValue = -1;
2080 triggerMaskValue = -1;
2087 decisionBeforeMaskValue =
false;
2088 decisionAfterMaskValue =
false;
2089 prescaleFactorValue = -1;
2090 triggerMaskValue = -1;
2094 LogTrace(
"L1GtUtils") <<
"\n" << trigNameOrAlias <<
":" << std::endl;
2097 LogTrace(
"L1GtUtils") <<
" decision before mask = " << decisionBeforeMaskValue << std::endl;
2100 LogTrace(
"L1GtUtils") <<
" decision after mask = " << decisionAfterMaskValue << std::endl;
2103 LogTrace(
"L1GtUtils") <<
" prescale factor = " << prescaleFactorValue << std::endl;
2106 LogTrace(
"L1GtUtils") <<
" trigger mask = " << triggerMaskValue << std::endl;
2109 LogTrace(
"L1GtUtils") <<
" error code = " << errorCode << std::endl;
2112 LogDebug(
"L1GtUtils") << std::endl;
bool m_retrieveL1GtTriggerMenuLite
edm::RunID m_runIDCache
run cache ID
bool m_validLogicalExpression
true if the logical expression uses accepted L1GtLogicParser operators
const bool l1TriggerNameFromBit(const int &bitNumber, const TriggerCategory &trigCategory, std::string &aliasL1Trigger, std::string &nameL1Trigger) const
void l1Results(const edm::Event &iEvent)
LogicalExpressionL1Results(const std::string &, L1GtUtils &)
constructor(s)
std::vector< std::pair< std::string, bool > > m_decisionsBeforeMask
std::vector< unsigned int > m_triggerMaskSet
unsigned long long m_l1GtMenuCacheID
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
const int logicalExpressionRunUpdate(const edm::Run &, const edm::EventSetup &, const std::string &)
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
std::vector< L1GtLogicParser::OperandToken > m_expL1Triggers
const L1GtTriggerMenuLite * ptrL1GtTriggerMenuLite(int &errorCode)
return a pointer to the L1GtTriggerMenuLite product
int m_l1ConfCode
code for L1 trigger configuration
const std::vector< unsigned int > * m_triggerMaskTechTrig
bool getByToken(EDGetToken token, Handle< PROD > &result) const
virtual std::string explainSelf() const
const L1GtTriggerMask * m_l1GtTmVetoTech
const bool l1AlgoTechTrigBitNumber(const std::string &nameAlgoTechTrig, TriggerCategory &trigCategory, int &bitNumber) const
const int prescaleFactorSetIndex(const edm::Event &iEvent, const TriggerCategory &trigCategory, int &errorCode) const
const bool availableL1Configuration(int &errorCode, int &l1ConfCode) const
const DecisionWord decisionWordBeforeMask() const
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrigLite
virtual ~L1GtUtils()
destructor
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks & veto masks
const AlgorithmMap * m_algorithmMap
const std::vector< std::pair< std::string, int > > & prescaleFactors()
const bool decision(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
Run const & getRun() const
const L1GtStableParameters * m_l1GtStablePar
event setup cached stuff
char const * what() const override
unsigned long long m_l1GtPfAlgoCacheID
const std::vector< unsigned int > & triggerMaskSet(const TriggerCategory &trigCategory, int &errorCode)
const std::vector< std::pair< std::string, int > > & triggerMasks()
const std::string & l1TriggerMenu() const
return the L1 trigger menu name
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
const L1GtTriggerMenuLite::L1TriggerMap * m_algorithmAliasMapLite
U second(std::pair< T, U > const &p)
const L1GtTriggerMenuLite::L1TriggerMap * m_algorithmMapLite
unsigned int gtNumberTechnicalTriggers() const
get / set the number of technical triggers
unsigned long long m_l1GtTmVetoTechCacheID
const std::vector< std::pair< std::string, bool > > & decisionsAfterMask()
std::vector< std::pair< std::string, int > > m_errorCodes
unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
std::vector< std::pair< std::string, int > > m_triggerMasks
std::vector< std::pair< std::string, int > > m_prescaleFactors
const std::vector< std::pair< std::string, bool > > & decisionsBeforeMask()
const std::string & l1TriggerMenuImplementation() const
return the L1 trigger menu implementation
const AlgorithmMap * m_algorithmAliasMap
std::vector< OperandToken > & operandTokenVector()
return the vector of operand tokens
unsigned long long m_l1GtTmTechCacheID
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrigLite
const L1GtTriggerMask * m_l1GtTmVetoAlgo
std::vector< bool > DecisionWord
typedefs
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static const std::string EmptyString
const std::string triggerCategory(const TriggerCategory &) const
public methods
std::string m_logicalExpression
private members as input parameters
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
unsigned long long m_l1GtTmAlgoCacheID
unsigned int m_numberTechnicalTriggers
number of technical triggers
std::vector< bool > m_expTriggerInMenu
const int l1Results(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, bool &decisionBeforeMask, bool &decisionAfterMask, int &prescaleFactor, int &triggerMask) const
const unsigned int gtPrescaleFactorIndexAlgo() const
bool m_retrieveL1EventSetup
flags to check which method was used to retrieve L1 trigger configuration
void retrieveL1EventSetup(const edm::EventSetup &)
retrieve all the relevant L1 trigger event setup records and cache them to improve the speed ...
RunAuxiliary const & runAuxiliary() const override
unsigned int m_physicsDaqPartition
index of physics DAQ partition
unsigned int m_numberAlgorithmTriggers
number of algorithm triggers
const DecisionWord & decisionWord(int bxInEventValue) const
const int triggerMask(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return trigger mask for a given algorithm or technical trigger
bool m_l1ResultsAlreadyCalled
set to true if the method l1Results was called once
const std::vector< int > & prescaleFactorSet(const edm::Event &iEvent, const TriggerCategory &trigCategory, int &errorCode)
bool m_expBitsTechTrigger
flag true, if the logical expression is built from technical trigger bits
std::vector< L1GtUtils::TriggerCategory > m_expTriggerCategory
trigger category for each L1 trigger in the logical expression
const L1GtTriggerMask * m_l1GtTmTech
const L1GtTriggerMenuLite * m_l1GtMenuLite
L1GtTriggerMenuLite cached stuff.
const bool decisionBeforeMask(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return decision before trigger mask for a given algorithm or technical trigger
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
void reset(const std::vector< std::pair< std::string, bool > > &) const
reset for each L1 trigger the value from pair.second
T const * product() const
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
size_t m_expL1TriggersSize
const L1GtPrescaleFactors * m_l1GtPfTech
const AlgorithmMap * m_technicalTriggerMap
const std::vector< unsigned int > * m_triggerMaskVetoAlgoTrig
std::unique_ptr< L1GtUtilsHelper > m_l1GtUtilsHelper
const std::vector< unsigned int > * m_triggerMaskTechTrigLite
static const bool useL1GtTriggerMenuLite(true)
const std::vector< unsigned int > * m_triggerMaskAlgoTrigLite
bool m_beginRunCache
flag for call of getL1GtRunCache in beginRun
const bool trigResult(const DecisionWord &decWord, const int bitNumber, const std::string &nameAlgoTechTrig, const TriggerCategory &trigCategory, int &errorCode) const
void getL1GtRunCache(const edm::Run &, const edm::EventSetup &, const bool, const bool)
get all the run-constant quantities for L1 trigger and cache them
bool m_validL1Configuration
true if valid L1 configuration - if not, reset all quantities and return
const L1GtTriggerMenu * m_l1GtMenu
~LogicalExpressionL1Results()
destructor
unsigned long long m_l1GtPfTechCacheID
const TechnicalTriggerWord technicalTriggerWordBeforeMask() const
static const int L1GtNotValidError
std::vector< std::pair< std::string, bool > > m_decisionsAfterMask
unsigned long long m_l1GtTmVetoAlgoCacheID
std::vector< int > m_prescaleFactorSet
const unsigned int gtPrescaleFactorIndexTech() const
get/set index of the set of prescale factors
const L1GtTriggerMenu * ptrL1TriggerMenuEventSetup(int &errorCode)
return a pointer to the L1 trigger menu from event setup
const bool decisionAfterMask(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return decision after trigger mask for a given algorithm or technical trigger
T const * product() const
unsigned long long m_l1GtStableParCacheID
const L1GtTriggerMenuLite::L1TriggerMap * m_technicalTriggerMapLite
static const bool useL1EventSetup(true)
const std::vector< unsigned int > * m_triggerMaskVetoTechTrig
void retrieveL1GtTriggerMenuLite(const edm::Run &)
retrieve L1GtTriggerMenuLite (per run product) and cache it to improve the speed
const std::vector< std::pair< std::string, int > > & errorCodes(const edm::Event &)
const int prescaleFactor(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return prescale factor for a given algorithm or technical trigger