From 80f33ae4be2795d3f949b4016a34e529c4bffdac Mon Sep 17 00:00:00 2001
From: Tim Martin <Tim.Martin@cern.ch>
Date: Sat, 25 Jul 2020 16:03:22 +0200
Subject: [PATCH] Make filter status of DecisionSummaryMaker a configurable
 property

---
 .../TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx      | 6 +++++-
 .../TrigOutputHandling/src/DecisionSummaryMakerAlg.h        | 4 ++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx
index d409eb5b4c2..fd12b2d5064 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.cxx
@@ -146,7 +146,11 @@ StatusCode DecisionSummaryMakerAlg::execute(const EventContext& context) const {
 
   // Set the algorithm's filter status. This controlls the running of finalisation algs which we only want to execute
   // in events which are accepted by one ore more chains.
-  setFilterPassed( allPassingFinalIDs.size() > 0, context );
+  bool filterStatus = true;
+  if (m_setFilterStatus) {
+    filterStatus = (allPassingFinalIDs.size() > 0);
+  }
+  setFilterPassed(filterStatus, context );
 
   return StatusCode::SUCCESS;
 }
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h
index 5041d00c02a..96e4bd9b4b7 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/DecisionSummaryMakerAlg.h
@@ -47,6 +47,10 @@ private:
   Gaudi::Property<bool> m_doCostMonitoring{this, "DoCostMonitoring", false, 
     "Enables end-of-event cost monitoring behavior."};
 
+  Gaudi::Property<bool> m_setFilterStatus{this, "SetFilterStatus", false, 
+    "Enables chain-passed filter. This will cause the downstream EDMCreator to not run if no chains pass, saving CPU in rejected events. "
+    "Cannot be used in jobs producing RDO output."};
+
   std::map<std::string, TrigCompositeUtils::DecisionIDContainer> m_collectionFilter;
 
 };
-- 
GitLab