18 return StatusCode::SUCCESS;
24 return StatusCode::FAILURE;
27 return StatusCode::SUCCESS;
33 return StatusCode::SUCCESS;
46 for (
size_t i = 0; i<items.size(); i++) {
48 const std::string& item = items[i];
49 const bool passedPhysics = isPassed[i];
50 const unsigned passBits = bits[i];
60 if (l1TAP && !l1TBP) {
64 if (l1TAV && (!l1TBP || !l1TAP)) {
65 ATH_CHECK(
reportError(item,
"Cannot pass after L1 veto if failing either before L1 prescale or after L1 prescale") );
68 if (l1TAV && !passedPhysics) {
69 ATH_CHECK(
reportError(item,
"Inconsistency - L1 pass after veto is true but isPassed is false") );
99 for (
size_t i = 0; i<items.size(); i++) {
101 const std::string& chain = items[i];
102 const bool passedPhysics = isPassed[i];
103 const unsigned passBits = bits[i];
109 const bool inTerminusNode = (terminusIDs.count(
HLT::Identifier(chain).numeric() ) == 1);
116 if (l1TAP && !l1TBP) {
120 if (l1TAV && (!l1TBP || !l1TAP)) {
121 ATH_CHECK(
reportError(chain,
"Cannot pass after L1 veto if failing either before L1 prescale or after L1 prescale") );
124 if (passedPhysics && !isPassedRaw) {
128 if (passedPhysics && !l1TAV) {
134 if (isPassedRaw && isPrescaled) {
138 if (passedPhysics && !inTerminusNode) {
139 ATH_CHECK(
reportError(chain,
"Inconsistency - passing for physics, but not present in the navigation terminus node") );
142 if (inTerminusNode && !isPassedRaw) {
143 ATH_CHECK(
reportError(chain,
"Inconsistency - in the navigation terminus node, but not passing raw") );
156 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
An algorithm that can be simultaneously executed in multiple threads.
TrigDecisionMakerValidator(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< bool > m_doL1
Gaudi::Property< bool > m_errorOnFailure
Gaudi::Property< int > m_edmVersion
PublicToolHandle< Trig::TrigDecisionTool > m_tdt
virtual StatusCode execute(const EventContext &context) const override
SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > m_navigationReadHandleKey
~TrigDecisionMakerValidator()
Gaudi::Property< bool > m_doHLT
virtual StatusCode initialize() override
Gaudi::Property< int > m_samplingFrequence
StatusCode reportError(const std::string &item, const std::string &msg) const
std::vector< bool > isPassedForEach(unsigned int condition=TrigDefs::Physics) const
return vector with isPassed decision for each chain
std::vector< unsigned int > isPassedBitsForEach() const
return result of isPassedBits for each chain in the group
std::vector< std::string > getListOfTriggers() const
xAOD::TrigComposite Decision
std::set< DecisionID > DecisionIDContainer
const Decision * getTerminusNode(SG::ReadHandle< DecisionContainer > &container)
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
static const unsigned int L1_isPassedBeforePrescale
static const unsigned int L1_isPassedAfterPrescale
static const unsigned int EF_prescaled
static const unsigned int EF_passedRaw
static const unsigned int L1_isPassedAfterVeto