Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 7829)
+++ trunk/MagicSoft/Mars/Changelog	(revision 7830)
@@ -57,4 +57,8 @@
    * msignal/MSignalPix.[h,cc]:
      - added new (non I/O) member fLoGainUsed
+
+   * msignal/MSignalCam.cc:
+     - added cases 10 and 11 to GetPixelContent
+     - added some more comments
 
 
Index: trunk/MagicSoft/Mars/NEWS
===================================================================
--- trunk/MagicSoft/Mars/NEWS	(revision 7829)
+++ trunk/MagicSoft/Mars/NEWS	(revision 7830)
@@ -31,15 +31,30 @@
      factors to be 10 after the first calibration update.
 
+   - callisto: Fixed the hi-/lo-gain offset for the Digital Filter. It
+     was off by more than one slice (which gives wrong values for
+     pixels which have saturated the hi-gain) This was a problem
+     mainly for timing studies, not for the automatic standard analysis.
+
+   - callisto: Implemented two new tabs, the pulse position of pulses
+     not saturating the hi-gain (and above 20phe) and the pulse-position
+     saturating the hi-gain (means the pulse position of signal extracted
+     from the lo-gain) This can be used to check (and/or correct) the
+     hi-/lo-gain offset.
+
+   - callisto: The signal threshold for the pulse position has been
+     changed from 15phe to 20phe and the scaling of the outer pixels has
+     been switched off. 
+
    - star: changed the fit for the ffective on time such that initial
-       values are calculated automatically now instead of using build
-       in values. This makes the fit more indepedant of the underlaying
-       rates. With a test of ~350 sequences in the test database it could
-       be shown that the new fit gives the same result +/-1sek.
-       The highest deviation was +5s the lowest -10s. You can now control
-       the bahaviour with two resource values:
-          MHEffectiveOnTime.FistBin:   3
-          MHEffectiveOnTime.NumEvents: 12000
-       Use FirstBin=1 and NumEvents=120 to fit the effective on time
-       from the resulting gamma candidates
+     values are calculated automatically now instead of using build
+     in values. This makes the fit more indepedant of the underlaying
+     rates. With a test of ~350 sequences in the test database it could
+     be shown that the new fit gives the same result +/-1sek.
+     The highest deviation was +5s the lowest -10s. You can now control
+     the bahaviour with two resource values:
+        MHEffectiveOnTime.FistBin:   3
+        MHEffectiveOnTime.NumEvents: 12000
+     Use FirstBin=1 and NumEvents=120 to fit the effective on time
+     from the resulting gamma candidates
 
    - ganymed: now pruduces valid error codes if failed
Index: trunk/MagicSoft/Mars/msignal/MSignalCam.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MSignalCam.cc	(revision 7829)
+++ trunk/MagicSoft/Mars/msignal/MSignalCam.cc	(revision 7830)
@@ -589,5 +589,5 @@
 // Returns, depending on the type flag:
 //
-//  0: Number of Photons*PixRatio
+//  0: Number of Photons*PixRatio <default>
 //  1: Error*sqrt(PixRatio)
 //  2: Cleaning level = Num Photons*sqrt(PixRatio)/Error
@@ -595,4 +595,9 @@
 //  4: Error
 //  5: Island index
+//  6: arrival time of mapped pixels
+//  7: arrival time if signa avove 20phe
+//  8: arrival time
+// 10: arrival time if extracted from lo-gain
+// 11: arrival time if extracted from hi-gain (and signal above 20phe)
 //
 Bool_t MSignalCam::GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type) const
@@ -610,34 +615,64 @@
     switch (type)
     {
-    case 1:
+    case 1: // scaled error of phtoons
         val = pix->GetErrorPhot()*TMath::Sqrt(ratio);
         return kTRUE;
-    case 2:
+
+    case 2: // significance of number of photons
         if (pix->GetErrorPhot()<=0)
             return kFALSE;
         val = pix->GetNumPhotons()*TMath::Sqrt(ratio)/pix->GetErrorPhot();
         return kTRUE;
-    case 3:
+
+    case 3: // number of photo electrons
         val = pix->GetNumPhotons();
         break;
-    case 4:
+
+    case 4: // error of signal
         val = pix->GetErrorPhot();
         break;
-    case 5:
+
+    case 5: // index of island
         val = pix->GetIdxIsland();
         break;
-    case 6:
+
+    case 6: // arrival time of mapped pixels only
         if (pix->IsPixelUnmapped())
             return kFALSE;
         val = pix->GetArrivalTime();
         break;
-    case 7:
-        if (pix->IsPixelUnmapped() || pix->GetNumPhotons()*ratio<15) // maybe 15 as static data member?
+
+    case 7: // pulse position above 15phe
+        // 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()<20)
             return kFALSE;
         val = pix->GetArrivalTime();
         break;
-    case 8:
+
+    case 8: // arrival time
         val = pix->GetArrivalTime();
         break;
+
+    case 10: // lo gain time
+        if (pix->IsPixelUnmapped() || !pix->IsLoGainUsed())
+            return kFALSE;
+        val = pix->GetArrivalTime();
+        return kTRUE;
+
+    case 11: // hi gain time
+        if (pix->IsPixelUnmapped() || pix->IsLoGainUsed())
+            return kFALSE;
+
+        // 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->GetNumPhotons()<20)
+            return kFALSE;
+
+        val = pix->GetArrivalTime();
+        return kTRUE;
+
     default:
         val = pix->GetNumPhotons()*ratio;
