diff --git a/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py b/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py
index 95e98ad5549a4a2732cc76f20314ef3fbb228959..7c6ac294309211ae4ca95ec818ecc83d2bc80e01 100644
--- a/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py
+++ b/Trigger/TrigTools/IDScanZFinder/python/ZFinderAlgConfig.py
@@ -6,22 +6,22 @@ from IDScanZFinder.IDScanZFinderConf import TrigZFinder
 
 MinBiasZFinderAlg = TrigZFinderAlg("TrigZFinderAlg", vertexKey=recordable("HLT_vtx_z"))
 MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("default")]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike", TripletMode=1, TripletDZ=1, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike1", TripletMode=1, TripletDZ=1, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike2", TripletMode=1, TripletDZ=1, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike3", TripletMode=1, TripletDZ=1, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike4", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike5", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike6", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike7", TripletMode=1, TripletDZ=0.5, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike8", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike9", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike10", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike11", TripletMode=1, TripletDZ=1.5, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike12", TripletMode=1, TripletDZ=2, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike13", TripletMode=1, TripletDZ=2, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike14", TripletMode=1, TripletDZ=2, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
-MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike15", TripletMode=1, TripletDZ=2, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike1", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike2", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike3", TripletMode=1, TripletDZ=1, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike4", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike5", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike6", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike7", TripletMode=1, TripletDZ=0.5, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike8", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike9", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike10", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike11", TripletMode=1, TripletDZ=1.5, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike12", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.1, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike13", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.05, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike14", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.02, UseOnlyPixels=True, MaxLayer=3)]
+MinBiasZFinderAlg.ZFinderTools += [TrigZFinder("BeamSpotLike15", TripletMode=1, TripletDZ=2, ForcePhiBinSize =True, PhiBinSize=0.01, UseOnlyPixels=True, MaxLayer=3)]
 
 
 from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
diff --git a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx
index 3b3a27f101ca376556f79212e68a81e61b51986c..1ff46d87c99ed9ae1a496d2beba618b95e347709 100755
--- a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx
+++ b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinder.cxx
@@ -68,7 +68,7 @@ StatusCode IDScanZFinder::initialize()
 
   /// NB: These only have to go here, because they need to write to the msgsvc, and because 
   ///     is rubbish, we can't pass in a pointer to a (non-athena) sub algorithm.
-  if ( m_phiBinSize < ZFinder_MinPhiSliceSize ){
+  if ( m_phiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize ){
     ATH_MSG_WARNING("Requested PhiBinSize of "  << m_phiBinSize
                     << " degrees is smaller than the minimum allowed (" << ZFinder_MinPhiSliceSize
                     << " degrees). Set to the minimum value.");
diff --git a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h
index 9d608fe54b19bd9c32aeb92bcb1497f0230adc5e..ae1f2949c85830db7dac3f7f22449ae3a68de03b 100644
--- a/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h
+++ b/Trigger/TrigTools/IDScanZFinder/src/IDScanZFinderInternal.h
@@ -100,7 +100,8 @@ protected:  // data members
   double m_invPhiSliceSize;     // the inverse size of the phi slices 
   long   m_NumPhiSlices;        // the number of phi slices, given the width of the RoI 
   
-  double m_phiBinSize;          // the size of the phi slices 
+  double m_phiBinSize;          // the size of the phi slices
+  bool   m_forcePhiBinSize;     // forces the phi bin size to be be used as configured even if below reasonable limit 
   double m_usedphiBinSize;      // the size of the phi slices 
   double m_ROIphiWidth;         // the phi width of the ROI 
   double m_usedROIphiWidth;     // the phi width of the ROI 
@@ -174,6 +175,7 @@ IDScanZFinderInternal<SpacePoint>::IDScanZFinderInternal( const std::string& typ
   m_Name = name;
   
   m_phiBinSize       = 0.2   ;
+  m_forcePhiBinSize  = false ;
   m_usedphiBinSize   = m_phiBinSize   ;
   m_pixOnly          = false ;
   m_ROIphiWidth      = 0.2   ;
@@ -234,7 +236,7 @@ void IDScanZFinderInternal<SpacePoint>::initializeInternal(long maxLayers, long
   
   // from IDScanZFinder::initialize
   m_usedphiBinSize = m_phiBinSize;
-  if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize ) m_usedphiBinSize = ZFinder_MinPhiSliceSize;
+  if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize) m_usedphiBinSize = ZFinder_MinPhiSliceSize;
   if ( m_dphideta > 0 )                             m_dphideta *= -m_dphideta;
   
   m_invPhiSliceSize = 180./(M_PI*m_usedphiBinSize);
diff --git a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx
index 216fa629c16f1fdb3aefd1e524730a512a388c00..1e807574d4ea05c521d0df01aa4c52cd8a25fee8 100755
--- a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx
+++ b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinder.cxx
@@ -33,6 +33,7 @@ TrigZFinder::TrigZFinder( const std::string& type, const std::string& name, cons
   //  std::cout << "ZFinder::ZFinder() version " << name << " " << type << "\tTrigZFinder-00-00-62"<< std::endl;
 
   declareProperty( "PhiBinSize",         m_phiBinSize       = 0.2   );
+  declareProperty( "ForcePhiBinSize",    m_forcePhiBinSize  = false );
   declareProperty( "UseOnlyPixels",      m_pixOnly          = false );
   declareProperty( "MinZBinSize",        m_minZBinSize      = 0.2   );
   declareProperty( "nFirstLayers",       m_nFirstLayers     = 3     );
@@ -76,7 +77,7 @@ StatusCode TrigZFinder::initialize()
 
   /// NB: These only have to go here, because they need to write to the msgsvc, and because 
   ///     is rubbish, we can't pass in a pointer to a (non-athena) sub algorithm.
-  if ( m_phiBinSize < ZFinder_MinPhiSliceSize ){
+  if ( m_phiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize ){
     ATH_MSG_WARNING("Requested PhiBinSize of "  << m_phiBinSize
                     << " degrees is smaller than the minimum allowed (" << ZFinder_MinPhiSliceSize
                     << " degrees). Set to the minimum value.");
diff --git a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx
index c5d948b4edb8a436780749f124c11e5b862aa991..ac74bb46e346e374f6f7b9e75f6f72592cbe52b1 100644
--- a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx
+++ b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.cxx
@@ -96,7 +96,7 @@ void TrigZFinderInternal::initializeInternal(long maxLayers, long lastBarrel )
 
   // from TrigZFinder::initialize
   m_usedphiBinSize = m_phiBinSize;
-  if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize ) m_usedphiBinSize = ZFinder_MinPhiSliceSize;
+  if ( m_usedphiBinSize < ZFinder_MinPhiSliceSize and ! m_forcePhiBinSize) m_usedphiBinSize = ZFinder_MinPhiSliceSize;
   if ( m_dphideta > 0 )                             m_dphideta *= -m_dphideta;
 
   m_invPhiSliceSize = 180./(M_PI*m_usedphiBinSize);
diff --git a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h
index 8c3f70481277434d738b9e33007e9337ce81f407..346d37ff4b11e1ba78d4ed8e236a92a0dac13878 100644
--- a/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h
+++ b/Trigger/TrigTools/IDScanZFinder/src/TrigZFinderInternal.h
@@ -91,6 +91,7 @@ protected:  // data members
     long   m_NumPhiSlices = 0L;        // the number of phi slices, given the width of the RoI 
 
     double m_phiBinSize;          // the size of the phi slices 
+    bool   m_forcePhiBinSize;     // respect the config of phi bin even if below reasonable threshold
     double m_usedphiBinSize;      // the size of the phi slices 
     double m_ROIphiWidth;         // the phi width of the ROI 
     double m_usedROIphiWidth;     // the phi width of the ROI