Index: trunk/Mars/mdrs/MDrsCalibApply.cc
===================================================================
--- trunk/Mars/mdrs/MDrsCalibApply.cc	(revision 19128)
+++ trunk/Mars/mdrs/MDrsCalibApply.cc	(revision 19129)
@@ -171,6 +171,26 @@
     fSignal->InitSamples(roi);
 
-    if (!fDrsCalib)  // FIXME: Do a fake (none) calibration
+    if (!fDrsCalib)  // Do a fake (none) calibration
+    {
+        /*
+        const int16_t *val = reinterpret_cast<int16_t*>(fRawEvt->GetSamples());
+        const uint32_t num = fRawEvt->GetNumPixels()*roi;
+
+        std::copy(val, val+num, fSignal->GetSamples(0));
+        */
+        /*
+            const int16_t *val = reinterpret_cast<int16_t*>(fRawEvt->GetSamples());
+            Float_t *vec = fSignal->GetSamples(0);
+
+            const UShort_t *idx = fRawEvt->GetPixelIds();
+            for (size_t ch=0; ch<fRawEvt->GetNumPixels(); ch++)
+            {
+                const size_t hw  = ch*roi;
+                const size_t sw  = ch*roi;//idx[ch]*roi;
+                std::copy(val+hw, val+hw+roi, vec+sw);
+            }
+        */
         return kTRUE;
+    }
 
     const int16_t *val = reinterpret_cast<int16_t*>(fRawEvt->GetSamples());
@@ -191,4 +211,7 @@
     for (size_t ch=0; ch<fRawEvt->GetNumPixels(); ch++)
     {
+        if (idx[ch]>=fSignal->GetNumPixels())
+            continue;
+
         const size_t drs = ch*1024;
         const size_t hw  = ch*roi;
@@ -208,6 +231,6 @@
         for (auto it=fPrevStart.begin(); it!=fPrevStart.end(); it++)
         {
-            fResult->fData[i++] = DrsCalibrate::CorrectStep(vec, fRawEvt->GetNumPixels(), roi, it->data(), start, roi+10, idx);
-            fResult->fData[i++] = DrsCalibrate::CorrectStep(vec, fRawEvt->GetNumPixels(), roi, it->data(), start, 3,      idx);
+            fResult->fData[i++] = DrsCalibrate::CorrectStep(vec, fSignal->GetNumPixels(), roi, it->data(), start, roi+10, idx);
+            fResult->fData[i++] = DrsCalibrate::CorrectStep(vec, fSignal->GetNumPixels(), roi, it->data(), start, 3,      idx);
         }
 
@@ -220,21 +243,20 @@
     {
     case 1:
-        for (size_t ch=0; ch<fRawEvt->GetNumPixels(); ch++)
+        for (size_t ch=0; ch<fSignal->GetNumPixels(); ch++)
             DrsCalibrate::RemoveSpikes(vec+ch*roi, roi);
         break;
     case 2:
-        for (size_t ch=0; ch<fRawEvt->GetNumPixels(); ch++)
+        for (size_t ch=0; ch<fSignal->GetNumPixels(); ch++)
             DrsCalibrate::RemoveSpikes2(vec+ch*roi, roi);
         break;
     case 3:
-        for (size_t ch=0; ch<fRawEvt->GetNumPixels(); ch++)
+        for (size_t ch=0; ch<fSignal->GetNumPixels(); ch++)
             DrsCalibrate::RemoveSpikes3(vec+ch*roi, roi);
         break;
     case 4:
-        for (size_t ch=0; ch<fRawEvt->GetNumPixels(); ch++)
+        for (size_t ch=0; ch<fSignal->GetNumPixels(); ch++)
             DrsCalibrate::RemoveSpikes4(vec+ch*roi, roi);
         break;
     }
-
 
     if (fSlidingAverage)
