Index: fact/tools/rootmacros/zerosearch.C
===================================================================
--- fact/tools/rootmacros/zerosearch.C	(revision 12369)
+++ fact/tools/rootmacros/zerosearch.C	(revision 12370)
@@ -211,4 +211,41 @@
 }
 
+size_t removeRegionOnFallingEdge(
+	vector<Region> &regions,
+	unsigned int FallingEdgeWidth,
+	int VerbosityLevel)
+{
+if ( FallingEdgeWidth < 1){
+    if (VerbosityLevel > 0){
+      cout << " removeRegionOnFallingEdge: FallingEdgeWidth  < 1" << endl;
+      cout << " FallingEdgeWidth =" << FallingEdgeWidth << endl;
+      cout << "returning." << endl;
+    return regions.size();
+    }
+  }
+	if (regions.size() < 1){
+		if (VerbosityLevel > 3)
+			cout << "removeRegionOnFallingEdge: source vector empty." << endl;
+		return 0;
+	}
+
+ vector<Region>::reverse_iterator it = regions.rbegin();
+  while( it != regions.rend()-1 )
+  {
+  if (VerbosityLevel >10)
+		cout << it->maxPos << "\t" << (it+1)->maxPos << "\t" << it->maxPos - (it+1)->maxPos << endl; 
+
+    if ( it->maxPos - (it+1)->maxPos < (int)FallingEdgeWidth) {
+      if (VerbosityLevel > 3)
+        cout << "erasing Region @ " << it->maxPos << endl;
+       regions.erase( --it.base() ) ;
+      ++it;
+    }else
+      ++it;
+  }
+
+  return regions.size();
+}
+
 
 size_t removeReginWithMaximaOnEdge(
@@ -218,9 +255,10 @@
 {
 	if (EdgeWidth < 1){
-		if (VerbosityLevel > 0)
+		if (VerbosityLevel > 0){
 			cout << "removeReginWithMaximaOnEdge: EdgeWidth < 1" << endl;
 			cout << "EdgeWidth=" << EdgeWidth << endl;
 			cout << "returning." << endl;
 		return regions.size();
+		}
 	}
 
Index: fact/tools/rootmacros/zerosearch.h
===================================================================
--- fact/tools/rootmacros/zerosearch.h	(revision 12369)
+++ fact/tools/rootmacros/zerosearch.h	(revision 12370)
@@ -32,4 +32,10 @@
 	int VerbosityLevel=0);
 
+size_t removeRegionOnFallingEdge(
+  vector<Region> &regions,
+  unsigned int FallingEdgeWidth = 100,
+  int VerbosityLevel=0);
+
+
 size_t removeReginWithMaximaOnEdge(
 	vector<Region> &regions,
