Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 7831)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 7832)
@@ -226,5 +226,5 @@
 
           if ( fLoGainFirst <= fLoGainLast-fWindowSizeLoGain)
-            {
+          {
               const Bool_t logainabflag = (higainabflag + pixel.GetNumHiGainSamples()) & 0x1;
               FindTimeAndChargeLoGain(pixel.GetLoGainSamples()+fLoGainFirst,
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 7831)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 7832)
@@ -88,5 +88,5 @@
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgSignalStartBinHiGain    =  4;
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgSignalStartBinLoGain    =  4;
-const Float_t MExtractTimeAndChargeDigitalFilter::fgOffsetLoGain           =  1.7; // 5 ns
+const Float_t MExtractTimeAndChargeDigitalFilter::fgOffsetLoGain           =  1.05;
 const Float_t MExtractTimeAndChargeDigitalFilter::fgLoGainStartShift       = -1.8;
 
@@ -113,6 +113,6 @@
     SetSignalStartBin();
 
-    SetOffsetLoGain(fgOffsetLoGain);
-    SetLoGainStartShift(fgLoGainStartShift);
+    SetOffsetLoGain(fgOffsetLoGain);          // Order between both
+    SetLoGainStartShift(fgLoGainStartShift);  // is important
 }
 
@@ -480,5 +480,7 @@
 
   // here, the first high-gain slice is already included in the fTimeShiftHiGain
-  time = fTimeShiftHiGain + max_p - Float_t(t_iter)/fBinningResolutionHiGain;
+//  time = fTimeShiftHiGain + max_p - Float_t(t_iter)/fBinningResolutionHiGain;
+  time = max_p + fTimeShiftHiGain + (Float_t)fHiGainFirst /* this shifts the time to the start of the rising edge */
+      - ((Float_t)t_iter)/fBinningResolutionHiGain;
 
   const Float_t timefineadjust = time_sum/sum;
Index: trunk/MagicSoft/Mars/msignal/MSignalCam.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MSignalCam.cc	(revision 7831)
+++ trunk/MagicSoft/Mars/msignal/MSignalCam.cc	(revision 7832)
@@ -643,9 +643,9 @@
         break;
 
-    case 7: // pulse position above 15phe
+    case 7: // pulse position above 50phe
         // The number of photons is not scaled with the ratio because
         // otherwise to many large pixels survive (maybe because the
         // fluctuations scale different than expected)
-        if (pix->IsPixelUnmapped() || pix->GetNumPhotons()*ratio<15)
+        if (pix->IsPixelUnmapped() || pix->GetNumPhotons()<50)
             return kFALSE;
         val = pix->GetArrivalTime();
@@ -657,5 +657,6 @@
 
     case 10: // lo gain time
-        if (pix->IsPixelUnmapped() || !pix->IsLoGainUsed())
+        if (pix->IsPixelUnmapped() || !pix->IsLoGainUsed() ||
+            pix->GetNumPhotons()<320)
             return kFALSE;
         val = pix->GetArrivalTime();
@@ -667,5 +668,5 @@
         // fluctuations scale different than expected)
         if (pix->IsPixelUnmapped() || pix->IsLoGainUsed() ||
-            pix->GetNumPhotons()*ratio<15)
+            pix->GetNumPhotons()<50)
             return kFALSE;
         val = pix->GetArrivalTime();
