diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
index 190c97da5a7616221f2d97753ef104a229a020bd..a3651a9ff7bde06cadf6f53c6f1d38961a5df234 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // **********************************************************************
@@ -1237,13 +1237,11 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
       } // end of outliers 
     } // TSOS on track 
     
-    const Trk::TrackSummary* summary = m_trackSumTool->createSummary(**trksItr);
+    std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary(**trksItr);
     if( !summary->get(Trk::numberOfPixelHits) && !summary->get(Trk::numberOfSCTHits) && (summary->get(Trk::numberOfPixelHoles)==0) && (summary->get(Trk::numberOfSCTHoles)==0) && (m_doHoleSearch)){
       if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "No Pixel or SCT hits skip hole search" << endmsg;
-      delete summary;
       continue;
     }
-    delete summary;
 
     const DataVector<const Trk::TrackStateOnSurface>* HTSOS;
     HTSOS = m_holeSearchTool->getHolesOnTrack(**trksItr); 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.cxx
index 23b83e689896b1882b5da3f93c0cce72aea40f35..35c72f34082ea555a62e29d286263f9d8a08e915 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 // **********************************************************************
@@ -276,15 +276,13 @@ StatusCode IDAlignMonSivsTRT::fillHistograms()
       continue;
     }
 
-    const Trk::TrackSummary* summary = NULL;       
-    summary = m_trackSumTool->createSummary(*trackTRT);
+    std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary(*trackTRT);
     int nhpix=0, nhsct=0, nhtrt=0;
 
-    if ( summary != NULL ){
+    if ( summary  ){
       nhpix = summary->get(Trk::numberOfPixelHits);
       nhsct = summary->get(Trk::numberOfSCTHits);
       nhtrt = summary->get(Trk::numberOfTRTHits);
-      delete summary;
     }
     
 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx
index 25a6de7bcc248e34a73277f2d7723f70a74f0ae8..7c4f54fc87e960a35b28fff2d4ba6aec0a564f90 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.cxx
@@ -681,8 +681,7 @@ StatusCode IDAlignMonTrackSegments::fillHistograms()
     }else
       if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Got the "<< nTracksUpper << " Upper Track" << endmsg;
 
-    const Trk::TrackSummary* summary = NULL;       
-    summary = m_trackSumTool->createSummary(*trackUpper);
+    std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary(*trackUpper);
     unsigned int nHitsPixUp = 0;
     unsigned int nHitsSCTUp=0;
     unsigned int nHitsTRTUp=0;
@@ -690,7 +689,6 @@ StatusCode IDAlignMonTrackSegments::fillHistograms()
     nHitsSCTUp = summary->get(Trk::numberOfSCTHits);
     nHitsTRTUp = summary->get(Trk::numberOfTRTHits);
     unsigned int nHitsUp = nHitsPixUp + nHitsSCTUp + nHitsTRTUp;
-    delete summary;
 
     
     const Trk::Perigee* measUpperPer = trackUpper->perigeeParameters();
@@ -797,8 +795,7 @@ StatusCode IDAlignMonTrackSegments::fillHistograms()
 	continue;
       }
 
-      const Trk::TrackSummary* summary = NULL;       
-      summary = m_trackSumTool->createSummary(*trackLower);
+      std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary(*trackLower);
       unsigned int nHitsPixLow = 0;
       unsigned int nHitsSCTLow = 0;
       unsigned int nHitsTRTLow = 0;
@@ -806,7 +803,6 @@ StatusCode IDAlignMonTrackSegments::fillHistograms()
       nHitsSCTLow = summary->get(Trk::numberOfSCTHits);
       nHitsTRTLow = summary->get(Trk::numberOfTRTHits);
       nHitsLow = nHitsPixLow + nHitsSCTLow + nHitsTRTLow;
-      delete summary;
 
       
       const Trk::Perigee* measLowerPer = trackLower->perigeeParameters();
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/TrackSelectionAlg.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/TrackSelectionAlg.cxx
index 1f03f22ba6932cef8c3e71327a900e83eefc3877..8c30ca9ee67e338e17c874051f7d7642a2cfe559 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/TrackSelectionAlg.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/TrackSelectionAlg.cxx
@@ -164,8 +164,7 @@ bool TrackSelectionAlg::makeTrackCuts(const Trk::Track* track, float zVtx)
   if(z0zVtx > m_trackMaxVtxZ0) trackPassed = false;
   if(fabs(d0) > m_trackMaxD0) trackPassed = false;
 
-  const Trk::TrackSummary* summary = NULL;       
-  summary = m_trackSumTool->createSummary(*track);
+  std::unique_ptr<Trk::TrackSummary> summary = m_trackSumTool->summary(*track);
   
   int nhtrt = 0;
   int nhtrtHT = 0;
@@ -173,7 +172,7 @@ bool TrackSelectionAlg::makeTrackCuts(const Trk::Track* track, float zVtx)
   int nhsct = 0;
   int nhblay = 0;
 
-  if(summary==0){
+  if(!summary){
     if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "Could not create TrackSummary  - Track will likely fail hits requirements" << endmsg;}  
   else{
 
@@ -191,8 +190,5 @@ bool TrackSelectionAlg::makeTrackCuts(const Trk::Track* track, float zVtx)
   if(nhtrt < m_minTRTHits) trackPassed = false;
   if(nhtrtHT < m_minTRTHitsHT) trackPassed = false;
 
-    
-  delete summary;
-  
   return trackPassed;
 }