Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 4018)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 4019)
@@ -109,4 +109,6 @@
    * mjobs/MJCalibration.cc
      - changed names of the MHCameras to contain run name
+
+
 
  2004/05/04: Raquel de los Reyes
Index: /trunk/MagicSoft/Mars/mona.cc
===================================================================
--- /trunk/MagicSoft/Mars/mona.cc	(revision 4018)
+++ /trunk/MagicSoft/Mars/mona.cc	(revision 4019)
@@ -89,4 +89,5 @@
 }
 
+#include "MPedPhotCam.h"
 Bool_t Loop(MOnlineDisplay *display, Int_t port)
 {
@@ -110,4 +111,7 @@
     plist.AddToList(&tasks);
     tasks.AddToList(&reader);
+
+    MPedPhotCam pcam;
+    plist.AddToList(&pcam);
 
     MGeomApply geomapl;
@@ -152,6 +156,6 @@
     MFillH hfilla("MaxIdxHi", "MRawEvtData", "FillMaxIdxHi");
     MFillH hfillb("MaxIdxLo", "MRawEvtData", "FillMaxIdxLo");
-    MFillH hfillc("Pedestals [MHCamEvent]", "MPedestalCam", "FillPedestal");
-    MFillH hfilld("PedestalRms", "MPedestalCam", "FillPedestalRms");
+    MFillH hfillc("Pedestals [MHCamEvent]", "MPedPhotCam", "FillPedestal");
+    MFillH hfilld("PedestalRms", "MPedPhotCam", "FillPedestalRms");
     tasks.AddToList(&hfilla);
     tasks.AddToList(&hfillb);
Index: /trunk/MagicSoft/Mars/mraw/MRawSocketRead.cc
===================================================================
--- /trunk/MagicSoft/Mars/mraw/MRawSocketRead.cc	(revision 4018)
+++ /trunk/MagicSoft/Mars/mraw/MRawSocketRead.cc	(revision 4019)
@@ -44,5 +44,7 @@
 #include "MRawSocketRead.h"
 
-#include <stdlib.h> // atoi
+#include <stdlib.h>  // atoi
+
+#include <TArrayC.h> // TAraayC
 
 #include "MReadSocket.h"
@@ -180,20 +182,10 @@
 Int_t MRawSocketRead::Process()
 {
-    /*
-    sprintf(report_str, " %8.8d %8.8d %6.6d",
-    run_header->RunNumber, run.event_number,
-    time.tv_sec - run.time_start_secs);
-    if (send(sd, report_str, strlen(report_str), flags) == -1) {
-    return -1;
-    }
-
-    sprintf(report_str, " %6.1f %6.1f %6.6d %7.4f %8.8d %6.6d ",
-    trigrate_hz, storerate_hz, storerate_kbps, gammarate_hz,
-    diskspace_kb, remtime_sec);
-    if (send(sd, report_str, strlen(report_str), flags) == -1) {
-    return -1;
-    }
-    */
-    char dummy[126];
+    //
+    // Tag which could possibly be used for synchronizing the
+    // data stream. At the moment we check only its correctness.
+    // Synchronisation seems to work well - Why?
+    //
+    char dummy[4];
     fIn->read(dummy, 4);   // \nEVT
 
@@ -205,14 +197,20 @@
     }
 
-    char size[6] = {0,0,0,0,0,0};
-    fIn->read(size, 5);
-    fIn->read(dummy, 126); //00000[CC-DATA]\n
-
-    /*
-    int numevt;
-    sscanf(dummy,  "%*s %*d %*d %*d %*d %*d %*d %*d "
-           "%*d %*d %*d %*d %*d %*d %*d %*d %*d %*d "
-           "%d %*d %*f %*f %*d %*f %*d %*d", &numevt);
-    */
+    //
+    // No we get some size information (each 5 bytes ascii)
+    //
+    char sizecc[6] = {0,0,0,0,0,0}; // 5 bytes plus trailing 0-byte
+    char sizerh[6] = {0,0,0,0,0,0}; // 5 bytes plus trailing 0-byte
+    char sizeev[6] = {0,0,0,0,0,0}; // 5 bytes plus trailing 0-byte
+    fIn->read(sizecc, 5); // Size CC info string
+    fIn->read(sizerh, 5); // Size run header
+    fIn->read(sizeev, 5); // Size Event (+ event header)
+
+    //
+    // Currently we skip the CC info string. We may decode this string
+    // in the future to get additional information
+    //
+    TArrayC dummy2(atoi(sizecc));
+    fIn->read(dummy2.GetArray(), dummy2.GetSize());
 
     //
@@ -224,5 +222,8 @@
 
     if (!rc)
-        return kFALSE;
+    {
+        *fLog << err << "Reading MRawRunHeader failed." << endl;
+        return kFALSE;
+    }
 
     if (fRunNumber!=fRawRunHeader->GetRunNumber())
@@ -243,5 +244,11 @@
     }
 
-    if (atoi(size)==fRawRunHeader->GetNumTotalBytes())
+    if (atoi(sizerh)==fRawRunHeader->GetNumTotalBytes())
+    {
+        *fLog << err << "Retrieved size of run header mismatch... stopped." << endl;
+        return kFALSE;
+    }
+
+    if (atoi(sizeev)==0)
     {
         *fLog << dbg << "Event contains only run header information... skipped." << endl;
