From ea3e5ebdddde717fd3cd25fed72aa5ce4b3968cb Mon Sep 17 00:00:00 2001
From: Rafal Bielski <rafal.bielski@cern.ch>
Date: Thu, 20 Dec 2018 18:47:05 +0100
Subject: [PATCH] Fix decision creating in MTCalibPebHypoAlg

It was broken by recent updates in TrigCompositeUtils. This commit updates the alg to the new TrigCompositeUtils interface.
---
 .../TrigExPartialEB/src/MTCalibPebHypoAlg.cxx | 26 +++++++++----------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoAlg.cxx b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoAlg.cxx
index 45ff6f53daa..8d9466b1ea9 100644
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoAlg.cxx
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/src/MTCalibPebHypoAlg.cxx
@@ -5,10 +5,14 @@
 #include "MTCalibPebHypoAlg.h"
 #include "DecisionHandling/HLTIdentifier.h"
 
+// TrigCompositeUtils types used here
 using TrigCompositeUtils::Decision;
 using TrigCompositeUtils::DecisionContainer;
-using TrigCompositeUtils::DecisionAuxContainer;
+using TrigCompositeUtils::DecisionID;
 using TrigCompositeUtils::DecisionIDContainer;
+
+// TrigCompositeUtils methods used here
+using TrigCompositeUtils::createAndStore;
 using TrigCompositeUtils::decisionIDs;
 using TrigCompositeUtils::newDecisionIn;
 
@@ -47,13 +51,12 @@ StatusCode MTCalibPebHypoAlg::finalize() {
 StatusCode MTCalibPebHypoAlg::execute(const EventContext& eventContext) const {
   ATH_MSG_DEBUG("Executing " << name());
 
-  // New output
-  auto decisions = std::make_unique<DecisionContainer>();
-  auto aux = std::make_unique<DecisionAuxContainer>();
-  decisions->setStore(aux.get());
+  // New output decision container
+  SG::WriteHandle<DecisionContainer> outputHandle = createAndStore(decisionOutput(), eventContext);
+  DecisionContainer* decisions = outputHandle.ptr();
 
-  // Create new decision
-  Decision* newd = newDecisionIn(decisions.get()); // DecisionContainer decisions owns the pointer
+  // Create new decision (DecisionContainer* decisions owns the new object)
+  Decision* newd = newDecisionIn(decisions, "", eventContext);
 
   // Prepare input for hypo tools
   MTCalibPebHypoTool::Input toolInput(newd, eventContext);
@@ -64,16 +67,13 @@ StatusCode MTCalibPebHypoAlg::execute(const EventContext& eventContext) const {
     ATH_CHECK(tool->decide(toolInput));
   }
 
-  auto outputHandle = SG::makeHandle(decisionOutput(), eventContext);
-  CHECK( outputHandle.record(std::move(decisions), std::move(aux) ) );
-
   ATH_MSG_DEBUG( "Exiting with "<< outputHandle->size() <<" decisions");
 
   for (auto outh: *outputHandle) {
-    TrigCompositeUtils::DecisionIDContainer objDecisions;
-    TrigCompositeUtils::decisionIDs(outh, objDecisions);
+    DecisionIDContainer objDecisions;
+    decisionIDs(outh, objDecisions);
     ATH_MSG_DEBUG("Number of positive decisions for this input: " << objDecisions.size());
-    for ( TrigCompositeUtils::DecisionID id : objDecisions ) {
+    for ( DecisionID id : objDecisions ) {
       ATH_MSG_DEBUG(" --- found new decision " << HLT::Identifier(id));
     }
   }
-- 
GitLab