From 84b92f87c6eab7fe860a87ef5e10e5d24362c80b Mon Sep 17 00:00:00 2001
From: scott snyder <snyder@bnl.gov>
Date: Wed, 8 Jul 2020 17:55:21 +0200
Subject: [PATCH] InDetAlignGenTools: createSummary -> summary

Use ITrackSummaryTool::summary instead of createSummary to resolve
thread-safety issues.
---
 .../InDetAlignGenTools/src/InDetAlignFillTrack.cxx     |  8 +++-----
 .../InDetAlignGenTools/src/InDetAlignTrackSelTool.cxx  | 10 ++++------
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx
index 9148ea93b01f..f2946b9a5bff 100644
--- a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx
+++ b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+   Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
  */
 
 //////////////////////////////////////////////////////////////////////////
@@ -877,8 +877,8 @@ void InDetAlignFillTrack::dumpTrack(int itrk, const Trk::Track* trk,
     int nshared = 0, nshpix = 0, nshsct = 0;
     int nholes = 0, nhpix = 0, nhsct = 0;
 
-    const Trk::TrackSummary* summary = m_trackSumTool->createSummary((*trk));
-    if (summary == 0) ATH_MSG_ERROR("Could not create TrackSummary");
+    std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary((*trk));
+    if (!summary) ATH_MSG_ERROR("Could not create TrackSummary");
 
     else {
       // hits
@@ -939,8 +939,6 @@ void InDetAlignFillTrack::dumpTrack(int itrk, const Trk::Track* trk,
       }
     }
 
-    delete summary;
-
     // get fit quality and chi2 probability of track
     // chi2Prob = TMath::Prob(chi2,DoF) ROOT function
     double chi2Prob = 0.;
diff --git a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignTrackSelTool.cxx b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignTrackSelTool.cxx
index aa62250dbbb2..4ab3502d887f 100755
--- a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignTrackSelTool.cxx
+++ b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignTrackSelTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // InDetAlignTrackSelTool.h
@@ -126,8 +126,8 @@ int InDetAlignTrackSelTool::nShared(const Trk::Track& track) const {
   ATH_MSG_DEBUG( "in nShared()" ) ;
   int nshared=0, nshpix, nshsct;
 
-  const Trk::TrackSummary* summary = m_trackSumTool->createSummary(track);
-  if(summary==0){
+  std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary(track);
+  if(!summary){
     ATH_MSG_ERROR( "Could not create TrackSummary" ) ;
     nshared = 1000;
   }
@@ -143,7 +143,6 @@ int InDetAlignTrackSelTool::nShared(const Trk::Track& track) const {
 
     nshared = nshpix + nshsct;
   }
-  delete summary;
   return nshared;
 }
 
@@ -153,7 +152,7 @@ int InDetAlignTrackSelTool::nHoles(const Trk::Track& track) const {
   ATH_MSG_DEBUG( "in nHoles() " ) ;
   int nholes=0, nhpix, nhsct;
 
-  const Trk::TrackSummary* summary = m_trackSumTool->createSummary(track);
+  std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary(track);
   if(summary==0){
     ATH_MSG_ERROR( "Could not create TrackSummary" ) ;
     nholes = 1000;
@@ -173,7 +172,6 @@ int InDetAlignTrackSelTool::nHoles(const Trk::Track& track) const {
 
     nholes =  nhpix + nhsct;
   }
-  delete summary;
   return nholes;
 }
 
-- 
GitLab