diff --git a/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModelXml/src/HGTD_GmxInterface.cxx b/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModelXml/src/HGTD_GmxInterface.cxx
index 5733f732644e645163d0a8024d8c345e5f9d667c..12c0ab8c4a061bd6c56ceb901ec6051cfb01cca3 100644
--- a/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModelXml/src/HGTD_GmxInterface.cxx
+++ b/HighGranularityTimingDetector/HGTD_DetDescr/HGTD_GeoModelXml/src/HGTD_GmxInterface.cxx
@@ -114,9 +114,9 @@ void HGTD_GmxInterface::makeLgadModule(const std::string &typeName,
 
     std::shared_ptr<const InDetDD::PixelDiodeMatrix> normalCell = InDetDD::PixelDiodeMatrix::construct(xPitch, yPitch);
     std::shared_ptr<const InDetDD::PixelDiodeMatrix> singleRow  = InDetDD::PixelDiodeMatrix::construct(InDetDD::PixelDiodeMatrix::phiDir, 0,
-                                                                          normalCell, padColumns, 0);
+                                                                          std::move(normalCell), padColumns, 0);
     std::shared_ptr<const InDetDD::PixelDiodeMatrix> fullMatrix = InDetDD::PixelDiodeMatrix::construct(InDetDD::PixelDiodeMatrix::etaDir, 0,
-                                                                          singleRow, padRows, 0);
+                                                                          std::move(singleRow), padRows, 0);
 
 
     InDetDD::DetectorDesign::Axis yDirection = InDetDD::DetectorDesign::yAxis;
@@ -125,7 +125,7 @@ void HGTD_GmxInterface::makeLgadModule(const std::string &typeName,
                                                                         circuitsPerColumn, circuitsPerRow,
                                                                         padColumns, padRows/2,
                                                                         padColumns, padRows/2,
-                                                                        fullMatrix,
+                                                                        std::move(fullMatrix),
                                                                         InDetDD::CarrierType::electrons, 1, yDirection );
 
 
diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx
index fa2f11e98a212588fb24e67f6fd81bdb95399a07..bbd8e1bc28e2fda10fcaa67b9813e29a33d4aeec 100644
--- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx
+++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx
@@ -203,23 +203,23 @@ std::shared_ptr<const PixelDiodeMatrix>  GeoPixelSiCrystal::makeMatrix(double ph
     
     std::shared_ptr<const PixelDiodeMatrix> singleChipRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
 							    bigCell, 
-							    normalCell, 
+							    std::move(normalCell),
 							    diodeColPerCirc-2,
 							    bigCell);
 
     std::shared_ptr<const PixelDiodeMatrix> singleRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
-							nullptr, singleChipRow, circuitsEta, nullptr);
+							nullptr, std::move(singleChipRow), circuitsEta, nullptr);
 
     fullMatrix = PixelDiodeMatrix::construct(PixelDiodeMatrix::phiDir,
-				      nullptr, singleRow, circuitsPhi*diodeRowPerCirc, nullptr);
+				      nullptr, std::move(singleRow), circuitsPhi*diodeRowPerCirc, nullptr);
   } else if (etaPitchLongEnd == etaPitchLong && (etaPitchLong == etaPitch || circuitsEta == 1)) {
     // normal:normal:normal
     if (m_gmt_mgr->msgLvl(MSG::DEBUG)) m_gmt_mgr->msg(MSG::DEBUG) <<  "GeoPixelSiCrystal: Making matrix (normal:normal:normal)" << endmsg;
     std::shared_ptr<const PixelDiodeMatrix> normalCell = PixelDiodeMatrix::construct(phiPitch, etaPitch); 
     std::shared_ptr<const PixelDiodeMatrix> singleRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
-							nullptr, normalCell, circuitsEta*diodeColPerCirc, nullptr);
+							nullptr, std::move(normalCell), circuitsEta*diodeColPerCirc, nullptr);
     fullMatrix = PixelDiodeMatrix::construct(PixelDiodeMatrix::phiDir,
-				      nullptr, singleRow, circuitsPhi*diodeRowPerCirc, nullptr);
+				      nullptr, std::move(singleRow), circuitsPhi*diodeRowPerCirc, nullptr);
   } else if (etaPitchLongEnd == etaPitch &&  etaPitchLong != etaPitch && circuitsEta > 2) {
     if (m_gmt_mgr->msgLvl(MSG::DEBUG)) m_gmt_mgr->msg(MSG::DEBUG) <<  "GeoPixelSiCrystal: Making matrix (normal:normal:long, > 2 chips)" << endmsg;
     // normal:normal:long: > 2 chips
@@ -242,7 +242,7 @@ std::shared_ptr<const PixelDiodeMatrix>  GeoPixelSiCrystal::makeMatrix(double ph
 								 diodeColPerCirc-1,
 								 nullptr);
     std::shared_ptr<const PixelDiodeMatrix> singleRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
-							lowerSingleChipRow, middleSingleChipRow, circuitsEta-2, upperSingleChipRow);
+							std::move(lowerSingleChipRow), std::move(middleSingleChipRow), circuitsEta-2, std::move(upperSingleChipRow));
     fullMatrix = PixelDiodeMatrix::construct(PixelDiodeMatrix::phiDir,
 				      nullptr, singleRow, circuitsPhi*diodeRowPerCirc, nullptr);
   } else if (etaPitchLongEnd == etaPitch &&  etaPitchLong != etaPitch && circuitsEta == 2) {
@@ -262,7 +262,7 @@ std::shared_ptr<const PixelDiodeMatrix>  GeoPixelSiCrystal::makeMatrix(double ph
 								 diodeColPerCirc-1,
 								 nullptr);
     std::shared_ptr<const PixelDiodeMatrix> singleRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
-							lowerSingleChipRow, upperSingleChipRow, 1, nullptr);
+							std::move(lowerSingleChipRow), std::move(upperSingleChipRow), 1, nullptr);
     fullMatrix = PixelDiodeMatrix::construct(PixelDiodeMatrix::phiDir,
 				      nullptr, singleRow, circuitsPhi*diodeRowPerCirc, nullptr);
   } else if (circuitsEta == 1 ||  (etaPitchLongEnd != etaPitch &&  etaPitchLong == etaPitch )){ // etaPitchLongEnd != etaPitch at this stage
@@ -274,7 +274,7 @@ std::shared_ptr<const PixelDiodeMatrix>  GeoPixelSiCrystal::makeMatrix(double ph
     
     std::shared_ptr<const PixelDiodeMatrix> singleRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
 							    bigCell, 
-							    normalCell, 
+							    std::move(normalCell),
 							    circuitsEta*diodeColPerCirc-2,
 							    bigCell);
     fullMatrix = PixelDiodeMatrix::construct(PixelDiodeMatrix::phiDir,
@@ -302,7 +302,7 @@ std::shared_ptr<const PixelDiodeMatrix>  GeoPixelSiCrystal::makeMatrix(double ph
 								 diodeColPerCirc-2,
 								 endCell);
     std::shared_ptr<const PixelDiodeMatrix> singleRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
-							lowerSingleChipRow, middleSingleChipRow, circuitsEta-2, upperSingleChipRow);
+							std::move(lowerSingleChipRow), std::move(middleSingleChipRow), circuitsEta-2, std::move(upperSingleChipRow));
     fullMatrix = PixelDiodeMatrix::construct(PixelDiodeMatrix::phiDir,
 				      nullptr, singleRow, circuitsPhi*diodeRowPerCirc, nullptr);
     
diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx
index 1677d191329b4fa6cb5bfc225585fe8c34439527..466ebe1e93f5004d3230f5cd8e399258bbba9304 100644
--- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx
+++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx
@@ -1200,15 +1200,15 @@ GeoPixelSiCrystal::GeoPixelSiCrystal(InDetDD::PixelDetectorManager* ddmgr,
 
   std::shared_ptr<const PixelDiodeMatrix> singleChipRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
 							  bigCell, 
-							  normalCell, 
+							  std::move(normalCell),
 							  DiodeColPerCirc-2,
 							  bigCell);
 
   std::shared_ptr<const PixelDiodeMatrix> singleRow = PixelDiodeMatrix::construct(PixelDiodeMatrix::etaDir,
-						      nullptr, singleChipRow, CircPerRow, nullptr);
+						      nullptr, std::move(singleChipRow), CircPerRow, nullptr);
 
   std::shared_ptr<const PixelDiodeMatrix> fullMatrix = PixelDiodeMatrix::construct(PixelDiodeMatrix::phiDir,
-						       nullptr, singleRow, DiodeRowPerCirc, nullptr);
+						       nullptr, std::move(singleRow), DiodeRowPerCirc, nullptr);
 
   std::unique_ptr<PixelModuleDesign> p_barrelDesign2 = std::make_unique<PixelModuleDesign>(thickness,
 							     CircPerCol,