Index: /trunk/Mars/mcore/DrsCalib.h
===================================================================
--- /trunk/Mars/mcore/DrsCalib.h	(revision 12277)
+++ /trunk/Mars/mcore/DrsCalib.h	(revision 12278)
@@ -207,5 +207,4 @@
                       const int64_t *trgoff, /*const*/ uint64_t scalerel)
     {
-
         /*
         scalegain *= scaleabs;
@@ -272,22 +271,30 @@
     }
 
-    /*
-    static void Apply(float *vec, const int16_t *val, const int16_t *start, uint32_t roi)
-    {
+    static void RemoveSpikes(float *vec, uint32_t roi)
+    {
+        if (roi<4)
+            return;
+
+        cout << "X" << endl;
+
         for (size_t ch=0; ch<1440; ch++)
         {
-            const size_t pos = ch*roi;
-
-            const int16_t spos = start[ch];
-            if (spos<0)
-            {
-                memset(vec+pos, 0, roi);
-                continue;
-            }
-
-            for (size_t i=0; i<roi; i++)
-                vec[pos+i] = float(val[pos+i])/2;
-        }
-    }*/
+            float *p = vec + ch*roi;
+
+            for (size_t i=1; i<roi-2; i++)
+            {
+                if (p[i]-p[i-1]>25 && p[i]-p[i+1]>25)
+                {
+                    p[i] = (p[i-1]+p[i+1])/2;
+                }
+
+                if (p[i]-p[i-1]>22 && fabs(p[i]-p[i+1])<4 && p[i+1]-p[i+2]>22)
+                {
+                    p[i] = (p[i-1]+p[i+2])/2;
+                    p[i+1] = p[i];
+                }
+            }
+        }
+    }
 
     pair<vector<double>,vector<double> > GetSampleStats() const
