From 1e35fc1b65b97f7331f1ae80d6a9690d816a2fdf Mon Sep 17 00:00:00 2001
From: Walter Lampl <Walter.Lampl@cern.ch>
Date: Wed, 9 Dec 2020 16:11:39 +0100
Subject: [PATCH] call cleanUp through MuonCombinedAlg -> MuonCombinedTool ->
 MuonCombinedFitTagTool -> CombinedMuonTrackBuilder ->
 MuonSegmentRegionRecoveryTool -> MooCandidateMatchingTool ->
 MuPatCandidateTool -> MuPatHitTool

---
 .../MuonCombinedAlgs/src/MuonCombinedAlg.cxx                | 2 ++
 .../MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx    | 4 ++++
 .../MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h      | 2 ++
 .../MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx  | 6 ++++++
 .../MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h    | 2 ++
 .../MuonCombinedBaseTools/src/MuonCombinedTool.cxx          | 6 ++++++
 .../MuonCombinedBaseTools/src/MuonCombinedTool.h            | 2 ++
 .../MuonCombinedToolInterfaces/IMuonCombinedTagTool.h       | 4 +++-
 .../MuonCombinedToolInterfaces/IMuonCombinedTool.h          | 2 ++
 9 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedAlg.cxx b/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedAlg.cxx
index 2815d4a3cbf4..971dc6536cde 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedAlg.cxx
+++ b/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedAlg.cxx
@@ -63,6 +63,8 @@ StatusCode MuonCombinedAlg::execute()
   //note that STACO does not create new Trk::Tracks so it doesn't need collections here
   m_muonCombinedTool->combine(*muonCandidateCollection,*inDetCandidateCollection,maps,muidCombTracks.ptr(),muidMETracks.ptr());
 
+  m_muonCombinedTool->cleanUp();
+  
   return StatusCode::SUCCESS;
 }
 
diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx
index c9b468236d84..f32a1bfcb7d6 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx
+++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx
@@ -790,6 +790,10 @@ namespace MuonCombined {
       return false;
     }
   }
+
+  void MuonCombinedFitTagTool::cleanUp() const {
+    m_trackBuilder->cleanUp();
+  }
   
   
 }	// end of namespace
diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h
index 17cb7d85fd74..06f8e31120a0 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h
+++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h
@@ -47,6 +47,8 @@ namespace MuonCombined {
       void combine( const MuonCandidate& muonCandidate, const std::vector<const InDetCandidate*>& indetCandidates, InDetCandidateToTagMap& tagMap,
 		    TrackCollection* combTracks, TrackCollection* METracks) const override;
 
+    void cleanUp() const override;
+
   private:
 
     Trk::Track* buildCombinedTrack(const Trk::Track& indetTrack,					     
diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx
index 33496cb470ac..825344385060 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx
+++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx
@@ -171,4 +171,10 @@ namespace MuonCombined {
                                                                           covCB ) );
   }
 
+
+  void MuonCombinedStacoTagTool::cleanUp() const {
+    //Nothing to clean up here .. hopefully
+    return;
+  }
+
 }	// end of namespace
diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h
index 4ad43e4796ec..b8737f738a3c 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h
+++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h
@@ -39,6 +39,8 @@ namespace MuonCombined {
       void combine( const MuonCandidate& muonCandidate, const std::vector<const InDetCandidate*>& indetCandidates, InDetCandidateToTagMap& tagMap,
 		    TrackCollection* combTracks, TrackCollection* METracks) const override;
 
+    void cleanUp() const override;
+
   private:
 
     std::unique_ptr<const Trk::Perigee> theCombIdMu( const Trk::Perigee& indetPerigee, const Trk::Perigee& extrPerigee, double& chi2 ) const;
diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx
index 64ea1e1a46df..fe0554923c3c 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx
+++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx
@@ -111,4 +111,10 @@ namespace MuonCombined {
     }
   }
 
+  void MuonCombinedTool::cleanUp() const {
+    for(auto& tool : m_muonCombinedTagTools){
+      tool->cleanUp();
+    }
+  }
+
 }	// end of namespace
diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h
index b9a189a20e7c..848754504049 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h
+++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h
@@ -30,6 +30,8 @@ namespace MuonCombined {
     void combine(const MuonCandidateCollection& muonCandidates,const InDetCandidateCollection& inDetCandidates, std::vector<InDetCandidateToTagMap*> tagMaps, 
 		 TrackCollection* combinedTracks, TrackCollection* METracks) const;
 
+    void cleanUp() const override;
+
   private:
 
     void associate( const MuonCandidate& muonCandidate, const InDetCandidateCollection& inDetCandidates,  
diff --git a/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTagTool.h
index bdb76be9f9b6..9e4cf30fb777 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTagTool.h
+++ b/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTagTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 ///////////////////////////////////////////////////////////////////
@@ -35,6 +35,8 @@ namespace MuonCombined {
     virtual void combine( const MuonCandidate& muonCandidate, const std::vector<const InDetCandidate*>& indetCandidates, InDetCandidateToTagMap& tagMap,
 			  TrackCollection* combTracks, TrackCollection* METracks) const = 0;
 
+
+    virtual void cleanUp() const = 0;
   };
 
   inline const InterfaceID& IMuonCombinedTagTool::interfaceID()
diff --git a/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTool.h b/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTool.h
index 23b1fcd5313a..0672d5d47786 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTool.h
+++ b/Reconstruction/MuonIdentification/MuonCombinedToolInterfaces/MuonCombinedToolInterfaces/IMuonCombinedTool.h
@@ -34,6 +34,8 @@ namespace MuonCombined {
     virtual void combine( const MuonCandidateCollection& muonCandidates,  const InDetCandidateCollection& inDetCandidates, std::vector<InDetCandidateToTagMap*> tagMaps,
 			  TrackCollection* combTracks, TrackCollection* METracks) const = 0;
 
+    virtual void cleanUp() const = 0;
+
   };
 
   inline const InterfaceID& IMuonCombinedTool::interfaceID()
-- 
GitLab