diff --git a/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsConfig.py b/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsConfig.py
index 0acb175d5e136883f9db73fe5bb4d2788f9df844..c8635c99c05934c2603350f7aefbdfbe690060d7 100644
--- a/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsConfig.py
+++ b/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsConfig.py
@@ -11,11 +11,37 @@ from TrkConfig.AtlasExtrapolatorConfig import (
 from TrackToCalo.TrackToCaloConfig import ParticleCaloExtensionToolCfg
 
 
+def egCaloDepthCfg(flags, **kwargs):
+    acc = ComponentAccumulator()
+    kwargs.setdefault("name", "egCaloDepthToolmiddle")
+    kwargs.setdefault("DepthChoice", "middle")
+    acc.setPrivateTools(
+        CompFactory.CaloDepthTool(**kwargs))
+    return acc
+
+
+def egCaloSurfaceBuilderCfg(flags, **kwargs):
+    acc = ComponentAccumulator()
+    kwargs.setdefault(
+        "CaloDepthTool",
+        acc.popToolsAndMerge(egCaloDepthCfg(flags)))
+
+    acc.setPrivateTools(
+        CompFactory.CaloSurfaceBuilder(**kwargs)
+    )
+    return acc
+
+
 def EMLastCaloExtensionToolCfg(flags, **kwargs):
+    acc = ComponentAccumulator()
     kwargs.setdefault("name", "EMLastCaloExtensionTool")
     kwargs.setdefault("ParticleType", "electron")
+
+    if "CaloSurfaceBuilder" not in kwargs:
+        kwargs["CaloSurfaceBuilder"] = acc.popToolsAndMerge(
+            egCaloSurfaceBuilderCfg(flags))
+
     if "Extrapolator" not in kwargs:
-        acc = ComponentAccumulator()
         extrapAcc = egammaCaloExtrapolatorCfg(flags)
         kwargs["Extrapolator"] = acc.popToolsAndMerge(extrapAcc)
     return ParticleCaloExtensionToolCfg(flags, **kwargs)
diff --git a/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsFactories.py b/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsFactories.py
index 2e954ab0004359458890e4a2fc49813d59efcd2e..536f84b2a295416db046112a266c5c335c151180 100644
--- a/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsFactories.py
+++ b/Reconstruction/egamma/egammaTrackTools/python/egammaTrackToolsFactories.py
@@ -3,23 +3,38 @@
 __doc__ = """ToolFactories to instantiate all
 egammaCaloTools with default configuration"""
 __author__ = "Bruno Lenzi , Christos Anastopoulos"
-from egammaRec.Factories import ToolFactory
+from egammaRec.Factories import ToolFactory, PublicToolFactory
 from egammaTrackTools import egammaTrackToolsConf
 from egammaTools.egammaExtrapolators import (
     egammaCaloExtrapolator, egammaExtrapolator)
 import AthenaCommon.CfgMgr as CfgMgr
 
+
+egCaloDepthTool = PublicToolFactory(
+    CfgMgr.CaloDepthTool,
+    name="egCaloDepthTool",
+    DepthChoice="middle"
+)
+
+egCaloSurfaceBuilder = ToolFactory(
+    CfgMgr.CaloSurfaceBuilder,
+    name="egCaloSurfaceBuilder",
+    CaloDepthTool=egCaloDepthTool
+)
+
 EMLastCaloExtensionTool = ToolFactory(
     CfgMgr.Trk__ParticleCaloExtensionTool,
     name="EMLastCaloExtensionTool",
     Extrapolator=egammaCaloExtrapolator,
-    ParticleType="electron")
+    ParticleType="electron",
+    CaloSurfaceBuilder=egCaloSurfaceBuilder)
 
 EMParticleCaloExtensionTool = ToolFactory(
     CfgMgr.Trk__ParticleCaloExtensionTool,
     name="EMParticleCaloExtensionTool",
     Extrapolator=egammaCaloExtrapolator,
     ParticleType="electron",
+    CaloSurfaceBuilder=egCaloSurfaceBuilder,
     StartFromPerigee=True)
 
 
diff --git a/Reconstruction/egamma/egammaTrackTools/src/EMExtrapolationTools.cxx b/Reconstruction/egamma/egammaTrackTools/src/EMExtrapolationTools.cxx
index 76f559ea6e0cbfda061db4811a0410b255a62bc1..2fd05e3ee61a9d961ba6052a09cd92efda4181df 100644
--- a/Reconstruction/egamma/egammaTrackTools/src/EMExtrapolationTools.cxx
+++ b/Reconstruction/egamma/egammaTrackTools/src/EMExtrapolationTools.cxx
@@ -139,7 +139,7 @@ StatusCode
 EMExtrapolationTools::getMatchAtCalo(const EventContext& ctx,
                                      const xAOD::CaloCluster& cluster,
                                      const xAOD::TrackParticle& trkPB,
-                                     Trk::PropDirection direction,
+                                     Trk::PropDirection,
                                      std::array<double, 4>& eta,
                                      std::array<double, 4>& phi,
                                      std::array<double, 4>& deltaEta,
@@ -169,12 +169,13 @@ EMExtrapolationTools::getMatchAtCalo(const EventContext& ctx,
      */
     case fromPerigeeRescaled: {
       Trk::Perigee trkPar = getRescaledPerigee(trkPB, cluster);
-      std::unique_ptr<Trk::CaloExtension> extension =
-        m_perigeeParticleCaloExtensionTool->caloExtension(
-          ctx, trkPar, direction, Trk::muon);
-      didExtension = extension != nullptr;
-      if (didExtension) {
-        intersections = getIntersections(*extension, cluster);
+      const auto extension =
+        m_perigeeParticleCaloExtensionTool->egammaCaloExtension(
+          ctx, trkPar, cluster);
+      didExtension = !extension.empty();
+      for (const auto& i : extension) {
+        intersections.emplace_back(
+          i.first, i.second->position().eta(), i.second->position().phi());
       }
     } break;
       /* For the other cases
@@ -354,7 +355,7 @@ EMExtrapolationTools::getEtaPhiAtCalo(const EventContext& ctx,
   if (!vertex) {
     return false;
   }
-  Amg::Vector3D momentum = getMomentumAtVertex(ctx,*vertex);
+  Amg::Vector3D momentum = getMomentumAtVertex(ctx, *vertex);
   if (momentum.mag() < 1e-5) {
     ATH_MSG_DEBUG("Intersection failed");
     return false;
@@ -366,7 +367,7 @@ EMExtrapolationTools::getEtaPhiAtCalo(const EventContext& ctx,
   Trk::PerigeeSurface surface(vertex->position());
   Trk::Perigee trkPar(
     vertex->position(), momentum.unit() * 1.e10, +1, surface, std::nullopt);
-  bool success = getEtaPhiAtCalo(ctx,&trkPar, etaAtCalo, phiAtCalo);
+  bool success = getEtaPhiAtCalo(ctx, &trkPar, etaAtCalo, phiAtCalo);
   return success;
 }
 /*  The actual calculation happens here*/
@@ -488,9 +489,9 @@ EMExtrapolationTools::getMomentumAtVertex(const EventContext& ctx,
     ATH_MSG_DEBUG("getMomentumAtVertex : getting from auxdata");
     return Amg::Vector3D(accPx(vertex), accPy(vertex), accPz(vertex));
   }
-    for (unsigned int i = 0; i < vertex.nTrackParticles(); ++i) {
-      momentum += getMomentumAtVertex(ctx, vertex, i);
-    }
+  for (unsigned int i = 0; i < vertex.nTrackParticles(); ++i) {
+    momentum += getMomentumAtVertex(ctx, vertex, i);
+  }
 
   return momentum;
 }
diff --git a/Tools/PROCTools/data/master_q431_AOD_digest_500events.ref b/Tools/PROCTools/data/master_q431_AOD_digest_500events.ref
index d35524664b4d302e6f2c7c96089b43c0c737217a..385021080b1fa774b558561069f859a8a207b2bc 100644
--- a/Tools/PROCTools/data/master_q431_AOD_digest_500events.ref
+++ b/Tools/PROCTools/data/master_q431_AOD_digest_500events.ref
@@ -22,7 +22,7 @@
       330470  1183732647         467         503         100           7           1           8           0           8          20           0          20
       330470  1183733040         381         290          21           3           2           5           0           5          10           0          10
       330470  1183733070         431         553         141           9           1          16           0          16          24           0          24
-      330470  1183733727         678         789         132          10           1           5           0           5          35           0          35
+      330470  1183733727         678         789         132          10           1           6           0           6          35           0          35
       330470  1183734651         361         374          75           7           3           5           0           5          18           0          18
       330470  1183734704         438         446          41           6           6           2           0           2          23           0          23
       330470  1183734871         556         602         117           8           2          14           0          14          21           0          21
@@ -30,7 +30,7 @@
       330470  1183735593         480         451          71           7           1           5           0           5          26           0          26
       330470  1183735786         311         217           8           2           1           0           0           0           8           0           8
       330470  1183736050         589         694          67           5           1          11           0          11          29           0          29
-      330470  1183736197         453         486          94           7           5           7           0           7          15           0          15
+      330470  1183736197         453         486          94           7           5           6           0           6          15           0          15
       330470  1183736364         427         407          54           5           1           6           0           6          16           0          16
       330470  1183736418         466         487          61           5           2          13           0          13          17           0          17
       330470  1183736475         741         711          98           8           1           2           0           2          22           0          22
@@ -101,11 +101,11 @@
       330470  1183764842         585         645         127          11           1          15           0          15          29           0          29
       330470  1183765366         464         522          99           8           1           6           0           6          10           0          10
       330470  1183765436         301         213          26           3           0           5           0           5           5           0           5
-      330470  1183767528         668         643          93           7           1           9           0           9          28           0          28
+      330470  1183767528         668         643          93           7           1           8           0           8          28           0          28
       330470  1183767718         467         454         131          12           2          15           0          15          17           0          17
       330470  1183768132         410         432          40           4           2           4           0           4          15           0          15
       330470  1183768747         598         594         164          12           3          24           0          24          25           0          25
-      330470  1183768758         656         729         136           8           3          15           0          15          24           0          24
+      330470  1183768758         656         729         136           8           3          16           0          16          24           0          24
       330470  1183769295         342         338          16           2           2           0           0           0           6           0           6
       330470  1183769514         383         372          29           4           2           2           0           2          14           0          14
       330470  1183769648         527         579          46           5           4           6           0           6          17           0          17
@@ -139,7 +139,7 @@
       330470  1183782928         539         645          91           8           3           8           0           8          25           0          25
       330470  1183783289         507         599         110           7           1          15           0          15          20           0          20
       330470  1183783835         437         472         116           6           3          15           0          15          30           0          30
-      330470  1183783921         518         489         104           6           1          22           0          22          32           0          32
+      330470  1183783921         518         489         104           6           1          21           0          21          32           0          32
       330470  1183784212         561         538         142          10           0          36           0          36          28           0          28
       330470  1183784686         458         490         141          14           7           5           0           5          23           0          23
       330470  1183784788         350         327          69           5           3          18           0          18          16           0          16
@@ -183,7 +183,7 @@
       330470  1183800710         470         476          39           5           1           5           0           5          17           0          17
       330470  1183801077         415         446          47           5           1           5           0           5          22           0          22
       330470  1183801428         382         344          57           6           1           4           0           4           9           0           9
-      330470  1183802242         434         392          41           6           3           8           0           8          19           0          19
+      330470  1183802242         434         392          41           6           3           7           0           7          19           0          19
       330470  1183804252         552         594          92           6           2          12           0          12          21           0          21
       330470  1183804485         453         502          97           7           1          16           0          16          21           0          21
       330470  1183804522         298         235          14           4           1           0           0           0           7           0           7
@@ -226,7 +226,7 @@
       330470  1183823625         409         340          58           5           3          10           0          10          16           0          16
       330470  1183824371         362         307          24           5           0           2           0           2          12           0          12
       330470  1183824531         393         363          78           8           5          13           0          13          17           0          17
-      330470  1183824603         479         406          72           5           1          14           0          14          27           0          27
+      330470  1183824603         479         406          72           5           1          15           0          15          27           0          27
       330470  1183824788         473         361          67           9           3           6           0           6          28           0          28
       330470  1183824934         357         456          78           6           2           7           0           7          13           0          13
       330470  1183825276         370         333          33           6           1           2           0           2          10           0          10
@@ -266,13 +266,13 @@
       330470  1183842339         196         156           9           2           0           0           0           0           3           0           3
       330470  1183842483         550         508          38           5           0           5           0           5          19           0          19
       330470  1183842622         404         444          74           7           1           9           0           9          21           0          21
-      330470  1183842772         432         461          74           5           1          16           0          16          23           0          23
+      330470  1183842772         432         461          74           5           1          15           0          15          23           0          23
       330470  1183843837         357         374          33           2           0           7           0           7          13           0          13
       330470  1183844385         400         394          41           5           1           4           0           4           8           0           8
       330470  1183846886         385         267          19           4           0           4           0           4          20           0          20
       330470  1183847401         470         461          51           6           2           8           0           8          18           0          18
       330470  1183847806         433         488         116           9           1          15           0          15          20           0          20
-      330470  1183848014         277         272          88           7           1          14           0          14          11           0          11
+      330470  1183848014         277         272          88           7           1          14           0          14          12           0          12
       330470  1183848066         352         393          75           6           1          10           0          10          20           0          20
       330470  1183848576         546         592          76           6           5           5           0           5          24           0          24
       330470  1183848643         540         480          40           4           6           5           0           5          31           0          31
@@ -320,7 +320,7 @@
       330470  1183871236         389         313          19           3           0           5           0           5          14           0          14
       330470  1183872430         298         309          49           6           2           2           0           2          11           0          11
       330470  1183873300         384         372          54           5           3           5           0           5          15           0          15
-      330470  1183874095         543         642         191          15           4           8           0           8          25           0          25
+      330470  1183874095         543         642         191          15           4           9           0           9          25           0          25
       330470  1183874756         311         209          16           3           1           1           0           1           9           0           9
       330470  1183875240         638         762         111          11           1           9           0           9          28           0          28
       330470  1183875307         387         283          26           4           2           2           0           2          13           0          13
@@ -335,7 +335,7 @@
       330470  1183879154         597         628          52           4           4           8           0           8          28           0          28
       330470  1183879547         423         439          15           2           2           0           0           0          13           0          13
       330470  1183879670         489         525         120           8           2          13           0          13          21           0          21
-      330470  1183879957         494         578         147          13           0          12           0          12          26           0          26
+      330470  1183879957         494         578         147          13           0          12           0          12          25           0          25
       330470  1183880152         349         453          49           6           3           1           0           1          16           0          16
       330470  1183880330         714         571         175          13           4          25           0          25          52           0          52
       330470  1183880565         526         371          92          12           1          10           0          10          35           0          35
@@ -419,7 +419,7 @@
       330470  1183931811         465         375          57           7           0           8           0           8          18           0          18
       330470  1183932465         456         541          83           7           3          11           0          11          17           0          17
       330470  1183933264         514         450          32           5           2           4           0           4          10           0          10
-      330470  1183934061         556         608         150          10           2          15           0          15          31           0          31
+      330470  1183934061         556         608         150          10           2          14           0          14          31           0          31
       330470  1183934188         559         640         135          12           0          11           0          11          28           0          28
       330470  1183935176         505         635         103           9           1           7           0           7          21           0          21
       330470  1183935243         406         422         117           7           3          15           0          15          26           0          26