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;
