diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h
index d5bc418c774625ca3b6db2213276291c6b6ad8aa..ba1bc35961e19a9c54b9d246805a509b3e353c22 100755
--- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h
+++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARREADOUTGEOMETRY_LARDETECTORMANAGER_H
@@ -30,11 +30,6 @@ class LArDetectorManager : public GeoVDetectorManager
    */
   LArDetectorManager (const EMBDetectorManager* emb, const EMECDetectorManager* emec, const HECDetectorManager* hec, const FCALDetectorManager* fcal);
 
-  /**
-   * @brief Destructor
-   */
-  ~LArDetectorManager();
-      
   /**
    * @brief	Gets the ith tree top.
    */
@@ -48,7 +43,7 @@ class LArDetectorManager : public GeoVDetectorManager
   /**
    * @brief	Add a Tree Top
    */
-  void addTreeTop (PVLink treeTop);
+  void addTreeTop (PVConstLink treeTop);
       
   /**
    * @brief	Pointer to the manager for the Electromagnetic Barrel. May be NULL.
@@ -94,7 +89,7 @@ class LArDetectorManager : public GeoVDetectorManager
   const EMECDetectorManager* m_emecManager{nullptr};
   const HECDetectorManager* m_hecManager{nullptr};
   const FCALDetectorManager* m_fcalManager{nullptr};
-  std::vector<PVLink> m_treeTop;
+  std::vector<PVConstLink> m_treeTop;
   bool m_isTestBeam{false};
 };
 
diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx
index 3b95085f5d6a92a15db8f3f0b4d2d681a4ef49b7..25debdc1bdf791c02b7aa3865d44ce6c573101f4 100755
--- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx
+++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "LArReadoutGeometry/LArDetectorManager.h"
@@ -18,12 +18,6 @@ LArDetectorManager::LArDetectorManager (const EMBDetectorManager* emb
   setName("LArMgr");
 }
 
-LArDetectorManager::~LArDetectorManager()
-{
-  unsigned int ntree = LArDetectorManager::getNumTreeTops();
-  for (unsigned int i=0;i<ntree;i++) LArDetectorManager::getTreeTop(i)->unref();
-}
-
 PVConstLink LArDetectorManager::getTreeTop (unsigned int i) const
 {
   return m_treeTop[i];
@@ -34,10 +28,9 @@ unsigned int LArDetectorManager::getNumTreeTops () const
   return m_treeTop.size();
 }
 
-void LArDetectorManager::addTreeTop (PVLink treeTop)
+void LArDetectorManager::addTreeTop (PVConstLink treeTop)
 {
   if (std::find(m_treeTop.begin(),m_treeTop.end(),treeTop)!=m_treeTop.end())  return;
   m_treeTop.push_back(treeTop);
-  treeTop->ref();
 }
 
diff --git a/TileCalorimeter/TileDetDescr/TileDetDescr/TileDetDescrManager.h b/TileCalorimeter/TileDetDescr/TileDetDescr/TileDetDescrManager.h
index e1eb21bd8becc1a1b4d471bf5599579447ae7f9f..8a7ea27426357ed3fa2349a3455b03007d87ff6d 100755
--- a/TileCalorimeter/TileDetDescr/TileDetDescr/TileDetDescrManager.h
+++ b/TileCalorimeter/TileDetDescr/TileDetDescr/TileDetDescrManager.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef TILEDETDESCR_TILEDETDESCRMANAGER_H
@@ -67,10 +67,10 @@ public:
   ~TileDetDescrManager();
 
   // Access to raw geometry:
-  virtual unsigned int getNumTreeTops() const;
-  virtual PVConstLink getTreeTop(unsigned int i) const;
+  virtual unsigned int getNumTreeTops() const override;
+  virtual PVConstLink getTreeTop(unsigned int i) const override;
 
-  void addTreeTop(PVLink);      // Add a Tree top:
+  void addTreeTop(PVConstLink);      // Add a Tree top:
 
   // ----------------  Access to raw geometry:
 
@@ -201,7 +201,7 @@ private:
   // ----------- Data members -------------
 
   // Tree Tops
-  std::vector<PVLink> m_treeTops;
+  std::vector<PVConstLink> m_treeTops;
 
   // DB Manager
   TileDddbManager_ptr m_dbManager;
diff --git a/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx b/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx
index 6f75e82cc629df908e244382c5be8df6012eb07f..be5c38a60c36cacfaaafff252e3a9ab103b40f73 100755
--- a/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx
+++ b/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 /*
@@ -67,8 +67,6 @@ TileDetDescrManager::TileDetDescrManager(TileDddbManager_ptr dbManager)
 
 TileDetDescrManager::~TileDetDescrManager()
 {
-  for (unsigned int i=0; i<m_treeTops.size(); i++)
-    m_treeTops[i]->unref();
   clear();
 }
 
@@ -87,9 +85,8 @@ PVConstLink TileDetDescrManager::getTreeTop(unsigned int i) const
 }
 
 // -------------- Add a Tree top: ------------
-void TileDetDescrManager::addTreeTop(PVLink link)
+void TileDetDescrManager::addTreeTop(PVConstLink link)
 {
-  link->ref();
   m_treeTops.push_back(link);
 }