Index: trunk/Mars/mcore/DrsCalib.h
===================================================================
--- trunk/Mars/mcore/DrsCalib.h	(revision 17392)
+++ trunk/Mars/mcore/DrsCalib.h	(revision 17400)
@@ -857,5 +857,5 @@
     }
 
-    static double GetPixelStats(float *ptr, const float *data, uint16_t roi)
+    static double GetPixelStats(float *ptr, const float *data, uint16_t roi, uint16_t begskip=0, uint16_t endskip=0)
     {
         if (roi==0)
@@ -863,6 +863,6 @@
 
         // Skip first 10 samples
-        const uint beg = roi>10 ? 10 : 0;
-        const uint end = roi-beg>5 ? roi-5 : roi;
+        const uint beg = roi>begskip ? begskip : 0;
+        const uint end = roi-beg>endskip ? roi-endskip : roi;
         const uint len = end-beg;
 
@@ -887,11 +887,10 @@
             sum  /= len;
             sum2 /= len;
-
-            if (i%9!=8 && vec[pos]>0)
+            sum2 -= sum*sum;
+
+            if (i%9!=8)
                 patch += vec[pos];
-
-            if (i%9==8)
-            {
-                patch /= 8;
+            else
+            {
                 if (patch > max)
                     max = patch;
@@ -899,14 +898,11 @@
             }
 
-            //if (i%9!=8 && vec[pos]>max)
-            //    max = vec[pos];
-
             *(ptr+0*1440+i) = sum;
-            *(ptr+1*1440+i) = sqrt(sum2 - sum * sum);
+            *(ptr+1*1440+i) = sum2<0 ? 0 : sqrt(sum2);
             *(ptr+2*1440+i) = vec[pos];
             *(ptr+3*1440+i) = pos;
         }
 
-        return max;
+        return max/8;
     }
 
