Index: /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.cc	(revision 8366)
+++ /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.cc	(revision 8367)
@@ -73,4 +73,5 @@
 
 #include "MRawEvtData.h"
+#include "MRawRunHeader.h"
 #include "MRawEvtPixelIter.h"
 
@@ -273,27 +274,27 @@
 
   MRawEvtPixelIter pixel(fRawEvt);
-  
+
   fPINDiode->Clear();
   fSlices->Reset();
-  
+
   pixel.Jump(fPINDiodeIdx);
-  
+
   Byte_t sat  = 0;
 
-  Int_t higainsamples = pixel.GetNumHiGainSamples();
-  Int_t logainsamples = pixel.GetNumLoGainSamples();
-  
+  const Int_t higainsamples = fRunHeader->GetNumSamplesHiGain();
+  const Int_t logainsamples = fRunHeader->GetNumSamplesLoGain();
+
   const Bool_t higainabflag = pixel.HasABFlag();
   Byte_t *ptr = pixel.GetHiGainSamples()+fHiGainFirst;
   Byte_t *end = ptr+higainsamples;
-  
+
   Int_t cnt=0;
 
   Float_t max = 0.;
   Int_t maxpos = 0;
-  
+
   while (ptr<end)
     {
-      
+
       if (*ptr >= fSaturationLimit)
         {
@@ -317,5 +318,5 @@
   cnt = 0;
   
-  if (pixel.HasLoGain() && !sat)
+  if (logainsamples>0 && !sat)
     {
       
@@ -323,5 +324,5 @@
       end = ptr+logainsamples;
       
-      const Bool_t logainabflag = (higainabflag + pixel.GetNumHiGainSamples()) & 0x1;
+      const Bool_t logainabflag = (higainabflag + higainsamples) & 0x1;
       
       while (ptr<end)
