diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h b/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h
index 1115fa33d9cdf6e627ad2d29b009548f6b3632ca..17658466f9f0621da90bede3745111fad86f3296 100755
--- a/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h
+++ b/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h
@@ -32,7 +32,6 @@
 #include "xAODEgamma/EgammaContainer.h"
 
 #include "egammaInterfaces/IegammaBaseTool.h"
-#include "egammaInterfaces/IEMAmbiguityTool.h"
 #include "egammaInterfaces/IEMTrackMatchBuilder.h"
 #include "egammaInterfaces/IEMConversionBuilder.h"
 #include "egammaInterfaces/IEMShowerBuilder.h"
@@ -42,6 +41,7 @@
 
 #include "xAODPrimitives/IsolationType.h"
 #include "RecoToolInterfaces/IsolationCommon.h"
+class IEGammaAmbiguityTool;
 
 namespace xAOD {
     class ITrackIsolationTool;
@@ -90,8 +90,8 @@ private:
   ToolHandle<IEMConversionBuilder> m_conversionBuilder;
   ToolHandle<IEMShowerBuilder> m_showerBuilder;  // trigger specific
   ToolHandle<IEMFourMomBuilder> m_fourMomBuilder; // trigger specific
-  ToolHandle<IEMAmbiguityTool> m_ambiguityTool;
-
+  ToolHandle<IEGammaAmbiguityTool> m_ambiguityTool;
+  
   /** @brief Tool for decorating electron PID isEM and LH */
   ToolHandle<IegammaBaseTool> m_electronPIDBuilder;
   
diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements b/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements
index 446c31c535d4861e9a2409cf728e9ffa23e5bdf2..a6f5a58730f8f643cf9ed05ae34bd140f6f5fb3e 100755
--- a/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements
+++ b/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements
@@ -33,6 +33,7 @@ use xAODEgammaCnv               xAODEgammaCnv-*                 Event/xAOD
 use CaloEvent                   CaloEvent-*                   Calorimeter
 use TrigTimeAlgs                TrigTimeAlgs-*                Trigger/TrigTools
 use AtlasROOT                   AtlasROOT-*                   External
+use ElectronPhotonSelectorTools ElectronPhotonSelectorTools-* PhysicsAnalysis/ElectronPhotonID
 
 public
 # =====================================================================
diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py b/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py
index a2ebe9559b0e2f4a2874704b6c53b9fa46605c98..8bf91da9b325da39d58123fcca6fa9fe41e8bfe2 100755
--- a/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py
+++ b/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py
@@ -18,7 +18,7 @@ from egammaRec.Factories import Factory, ToolFactory, FcnWrapper, getPropertyVal
 
 # Import tools required for trigger reconstruction
 from egammaTools.egammaToolsFactories import \
-        EMTrackMatchBuilder, EMVertexBuilder, EMConversionBuilder, EMAmbiguityTool, \
+        EMTrackMatchBuilder, EMVertexBuilder, EMConversionBuilder, EGammaAmbiguityTool, \
         EMFourMomBuilder, EMShowerBuilder
     # Not importing
     # egammaCheckEnergyDepositTool, EMBremCollectionBuilder, 
@@ -48,10 +48,10 @@ TrackIsolationTool = ToolFactory(xAOD__TrackIsolationTool, name = 'TrigEgammaTra
 
 #tit = CfgMgr.xAOD__TrackIsolationTool('TrigEgammaTrackIsolationTool')
 #tit.TrackSelectionTool.maxZ0SinTheta = 15
-import ROOT, PyCintex
+import ROOT, cppyy
 # Need to be sure base dict is loaded first.
-PyCintex.loadDictionary('xAODCoreRflxDict')
-PyCintex.loadDictionary('xAODPrimitivesDict')
+cppyy.loadDictionary('xAODCoreRflxDict')
+cppyy.loadDictionary('xAODPrimitivesDict')
 isoPar = ROOT.xAOD.Iso
 #IsoTypes =  [[ int(isoPar.ptcone20), int(isoPar.ptcone30), int(isoPar.ptcone40) ],]
 
@@ -148,7 +148,7 @@ TrigEgammaRec = Factory(TrigEgammaRecConf.TrigEgammaRec, name="TrigEgammaRec",do
     # Tools with default configuration    
 #     VertexBuilderTool = EMVertexBuilder,
     ConversionBuilderTool = EMConversionBuilder, 
-    AmbiguityTool = EMAmbiguityTool,
+    AmbiguityTool = EGammaAmbiguityTool,
     FourMomBuilderTool = EMFourMomBuilder,
     
     # Flags
diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx b/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx
index 009ba652cc79bc18b238c93861417c2447edf2a2..286770c9a3ed5128c287879cc0f31fb2cd2d671a 100755
--- a/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx
+++ b/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx
@@ -51,7 +51,7 @@ PURPOSE:  Algorithm is an adaptation for the trigger of the egammaBuilder.cxx
 #include "egammaInterfaces/IEMShowerBuilder.h"
 #include "egammaInterfaces/IEMBremCollectionBuilder.h"
 #include "egammaInterfaces/IEMFourMomBuilder.h"
-#include "egammaInterfaces/IEMAmbiguityTool.h"
+#include "ElectronPhotonSelectorTools/IEGammaAmbiguityTool.h"
 #include "RecoToolInterfaces/ITrackIsolationTool.h"
 #include "RecoToolInterfaces/ICaloCellIsolationTool.h"
 #include "RecoToolInterfaces/ICaloTopoClusterIsolationTool.h"
@@ -84,6 +84,7 @@ PURPOSE:  Algorithm is an adaptation for the trigger of the egammaBuilder.cxx
 // needed for online monitor histograms
 class ISvcLocator;
 
+
 // Template class for monitoring
 namespace {
     template <class DEST,class SRC>
@@ -295,7 +296,7 @@ HLT::ErrorCode TrigEgammaRec::hltInitialize() {
         }
     }
     if (m_ambiguityTool.empty()) {
-        ATH_MSG_ERROR("EMAmbiguityTool is empty");
+        ATH_MSG_ERROR("EGammaAmbiguityTool is empty");
         return HLT::BAD_JOB_SETUP;
     }
 
@@ -305,7 +306,7 @@ HLT::ErrorCode TrigEgammaRec::hltInitialize() {
     }
     else{
         ATH_MSG_DEBUG("Retrieved Tool "<<m_ambiguityTool);
-        if (timerSvc()) m_timerTool3 = addTimer("EMAmbiguityTool");
+        if (timerSvc()) m_timerTool3 = addTimer("EGammaAmbiguityTool");
     }
     
     if (m_fourMomBuilder.empty()) {
@@ -835,7 +836,9 @@ HLT::ErrorCode TrigEgammaRec::hltExecute( const HLT::TriggerElement* inputTE,
         // For now set author as Electron
         ATH_MSG_DEBUG("REGTEST:: Running AmbiguityTool");
         if (timerSvc()) m_timerTool3->start(); //timer
-        unsigned int author = m_ambiguityTool->ambiguityResolve(egRec);
+        unsigned int author = m_ambiguityTool->ambiguityResolve(egRec->caloCluster(),
+                egRec->vertex(),
+                egRec->trackParticle());
         if (timerSvc()) m_timerTool3->stop(); //timer
         ATH_MSG_DEBUG("REGTEST:: AmbiguityTool Author " << author);
         // Set author