diff --git a/DetectorDescription/RoiDescriptor/Root/RoiUtil.cxx b/DetectorDescription/RoiDescriptor/Root/RoiUtil.cxx
index e23a992de21528f5416573e5d832f7c9060e6399..812ed0b16f148d02e615ffbee6359e3a2f94b420 100644
--- a/DetectorDescription/RoiDescriptor/Root/RoiUtil.cxx
+++ b/DetectorDescription/RoiDescriptor/Root/RoiUtil.cxx
@@ -200,7 +200,7 @@ bool operator==( const IRoiDescriptor& roi0,  const IRoiDescriptor& roi1 ) {
     /// check geometry 
     if ( std::fabs(roi0.zed()     -roi1.zed()     )>1e-7 ) return false;
     if ( std::fabs(roi0.zedPlus() -roi1.zedPlus() )>1e-7 ) return false;
-    if ( std::fabs(roi0.zedMinus()-roi1.zedMinus())>1e-7 ) return false;
+    if ( std::fabs(roi0.zedMinus()-roi1.zedMinus())<1e-7 ) return false;
    
     if ( std::fabs(roi0.eta()     -roi1.eta()     )>1e-7 ) return false;
     if ( std::fabs(roi0.etaPlus() -roi1.etaPlus() )>1e-7 ) return false;
diff --git a/Trigger/TrigAlgorithms/TrigGenericAlgs/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigGenericAlgs/CMakeLists.txt
index c7a3b62a1f6557dcea2dbb00e1786254b2297527..f2ea215983bcdc2275a450f0657b5ea0136b5585 100644
--- a/Trigger/TrigAlgorithms/TrigGenericAlgs/CMakeLists.txt
+++ b/Trigger/TrigAlgorithms/TrigGenericAlgs/CMakeLists.txt
@@ -20,8 +20,7 @@ atlas_depends_on_subdirs( PUBLIC
                           PRIVATE
                           Control/AthenaKernel
                           DetectorDescription/IRegionSelector
-                          DetectorDescription/RoiDescriptor
-			  Event/ByteStreamCnvSvcBase
+                          Event/ByteStreamCnvSvcBase
                           GaudiKernel
                           Trigger/TrigConfiguration/TrigConfL1Data
                           Trigger/TrigEvent/TrigNavigation
diff --git a/Trigger/TrigAlgorithms/TrigGenericAlgs/src/TrigRoiUpdater.cxx b/Trigger/TrigAlgorithms/TrigGenericAlgs/src/TrigRoiUpdater.cxx
index a87247047f2e71135b596ae1b23bdaee295f631d..c8325c0a6880eac234035ca61be517609f590072 100644
--- a/Trigger/TrigAlgorithms/TrigGenericAlgs/src/TrigRoiUpdater.cxx
+++ b/Trigger/TrigAlgorithms/TrigGenericAlgs/src/TrigRoiUpdater.cxx
@@ -1,21 +1,18 @@
 /*
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/ 
+*/
 
 #include "TrigRoiUpdater.h"
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/IIncidentSvc.h"
 #include "TrigSteeringEvent/TrigRoiDescriptor.h"
-#include "RoiDescriptor/RoiDescriptor.h"
-#include "IRegionSelector/RoiUtil.h"
-#include "IRegionSelector/IRoiDescriptor.h"
 #include "IRegionSelector/IRegSelSvc.h"
 
 namespace PESA
 {
 
   TrigRoiUpdater::TrigRoiUpdater(const std::string &name, 
-				 ISvcLocator *pSvcLocator)
+					   ISvcLocator *pSvcLocator)
     : HLT::FexAlgo (name, pSvcLocator),
       m_etaHalfWidth(0.),
       m_phiHalfWidth(0.),
@@ -97,7 +94,7 @@ namespace PESA
     if (inc.type() == "BeginEvent") {
       //cleanup stored RoIs
       m_rois.clear();
-    }
+    }  
   }
 
   ///////////////////////////////////////////////////////////////////
@@ -107,15 +104,15 @@ namespace PESA
  
     ATH_MSG_DEBUG("execHLTAlgorithm()");
 
-    const TrigRoiDescriptor *roi = 0;
-    bool forIDfound=false;
-    bool updateNeeded=true;
-    
     m_inpPhiMinus = m_inpPhiPlus = m_inpPhiSize = -10.;
     m_inpEtaMinus = m_inpEtaPlus = m_inpEtaSize = -10.;
     m_PhiMinus = m_PhiPlus = m_PhiSize = -10.;
     m_EtaMinus = m_EtaPlus = m_EtaSize = -10.;
 
+    const TrigRoiDescriptor *roi = 0;
+    bool forIDfound=false;
+    bool updateNeeded=true;
+
     std::vector<std::string> roiNames = {"forID3","forID2","forID1", "forID", ""};
     std::string roiName= "";
 
@@ -129,14 +126,15 @@ namespace PESA
 	break;
       }
     }
-    
-    if (roi->composite()) {
+
+
+    if (roi->composite()){
       if (m_requestPIXRobs || m_requestSCTRobs){
-        registerROBs(roi);
+	registerROBs(roi);
       }
 
       ATH_MSG_DEBUG("Not touching a composite RoI");
-      updateNeeded = false;
+      return HLT::OK;
     }
 
     //signature specific modifications
@@ -151,19 +149,24 @@ namespace PESA
       ATH_MSG_DEBUG("don't use fixed RoI halfwidths for bjets");
       updateNeeded = false;
     }
-    
+
+
+
     TrigRoiDescriptor *outroi = 0;
 
     if (updateNeeded) {
       m_inpPhiMinus= roi->phiMinus(); m_inpPhiPlus = roi->phiPlus();  m_inpPhiSize= m_inpPhiPlus - m_inpPhiMinus;
       m_inpEtaMinus= roi->etaMinus(); m_inpEtaPlus = roi->etaPlus();  m_inpEtaSize= m_inpEtaPlus - m_inpEtaMinus;
       
+      
+      
       float eta = roi->eta();
       float phi = roi->phi();
       
       float oldEtaW = m_inpEtaPlus - m_inpEtaMinus;
       float oldPhiW = m_inpPhiPlus - m_inpPhiMinus;
       
+      
       if (  m_inpPhiPlus < m_inpPhiMinus ) oldPhiW += 2*M_PI;
       
       float diff_eta = 0.5*oldEtaW - m_etaHalfWidth;
@@ -209,7 +212,12 @@ namespace PESA
     if (m_monitorDuplicateRoIs){
       for (auto it = m_rois.begin(); it != m_rois.end(); it++) {
 	TrigRoiDescriptor r = (*it);
-	if (r == *outroi) {
+	if (fabs(r.etaMinus()-outroi->etaMinus())<0.001 &&
+	    fabs(r.etaPlus()-outroi->etaPlus())<0.001 &&
+	    fabs(r.zedMinus()-outroi->zedMinus())<0.1 &&
+	    fabs(r.zedPlus()-outroi->zedPlus())<0.1 &&
+	    fabs(r.phiMinus()-outroi->phiMinus())<0.001 &&
+	    fabs(r.phiPlus()-outroi->phiPlus())<0.001){
 	  ATH_MSG_DEBUG("This RoI was already processed by the same instance of ID tracking");
 	  ATH_MSG_DEBUG(*outroi);
 	  ATH_MSG_DEBUG(r);
@@ -218,12 +226,9 @@ namespace PESA
       }
 
       if (!thesameroi){
-	outroi->manageConstituents(false);
 	m_rois.push_back(*outroi);
-	//	m_rois.back().manageConstituents(false);
-	ATH_MSG_DEBUG("Registering RoI " << m_rois.back());
-      } 
-      else {
+	ATH_MSG_DEBUG("Registering RoI " << *outroi);
+      } else {
 	m_duplicateRoIs++;
       }
     }
@@ -231,11 +236,10 @@ namespace PESA
     m_invocations++;
     return HLT::OK;
   }
-
-  //////////////////////////////////////////////////////////////////
+  ///////////////////////////////////////////////////////////////////
   // Finalize
   ///////////////////////////////////////////////////////////////////
-      
+  
   HLT::ErrorCode TrigRoiUpdater::hltFinalize() {
 
     ATH_MSG_DEBUG("finalize() success");
@@ -247,12 +251,11 @@ namespace PESA
   //          endRun method:
   //----------------------------------------------------------------------------
   HLT::ErrorCode TrigRoiUpdater::hltEndRun() {
-                                 
+   
     ATH_MSG_DEBUG("TrigRoiUpdater::endRun()");
-                                        
+   
     return HLT::OK;
   }
-
   //---------------------------------------------------------------------------
 
   HLT::ErrorCode TrigRoiUpdater::registerROBs(const TrigRoiDescriptor *roi){