Index: trunk/Mars/mraw/MRawFileRead.cc
===================================================================
--- trunk/Mars/mraw/MRawFileRead.cc	(revision 17161)
+++ trunk/Mars/mraw/MRawFileRead.cc	(revision 17165)
@@ -102,5 +102,5 @@
 //
 MRawFileRead::MRawFileRead(const char *fname, const char *name, const char *title)
-    : fFileNames(NULL), fNumFile(0), fNumTotalEvents(0), fIn(NULL), fParList(NULL), fInterleave(1), fForce(kFALSE)
+    : fFileNames(NULL), fNumFile(0), fNumTotalEvents(0), fIn(NULL), fParList(NULL), fInterleave(1), fForce(kFALSE), fIsMc(kFALSE)
 {
     fName  = name  ? name  : "MRead";
Index: trunk/Mars/mraw/MRawFileRead.h
===================================================================
--- trunk/Mars/mraw/MRawFileRead.h	(revision 17161)
+++ trunk/Mars/mraw/MRawFileRead.h	(revision 17165)
@@ -37,4 +37,6 @@
     Int_t PostProcess();
 
+    Bool_t    fIsMc;
+
 public:
     MRawFileRead(const char *filename=NULL, const char *name=NULL, const char *title=NULL);
Index: trunk/Mars/mraw/MRawFitsRead.cc
===================================================================
--- trunk/Mars/mraw/MRawFitsRead.cc	(revision 17161)
+++ trunk/Mars/mraw/MRawFitsRead.cc	(revision 17165)
@@ -159,16 +159,25 @@
     fRawRunHeader->SetRunInfo(0, fin.GetUInt("NIGHT"), fin.GetUInt("RUNID"));
     fRawRunHeader->InitFact(fin.GetUInt("NPIX")/9, 9, fin.GetUInt("NROI"), fPixelMap.size()==0?0:fPixelMap.data());
-    fRawRunHeader->SetFormat(0xf172, fin.GetUInt("BLDVER"));
+    if (!fin.HasKey("ISMC")){
+        fRawRunHeader->SetFormat(0xf172, fin.GetUInt("BLDVER"));
+    }
     fRawRunHeader->SetRunType(0/*data*/);
 
-    const string runstart = fin.GetStr("DATE-OBS");
-    const string runstop  = fin.GetStr("DATE-END");
-
-    fRawRunHeader->SetRunTime(MTime(runstart.c_str()), MTime(runstop.c_str()));
-
-    return
-        fin.HasKey("NPIX") && fin.HasKey("RUNID")  &&
-        fin.HasKey("NROI") && fin.HasKey("BLDVER") &&
-        fin.HasKey("NIGHT");
+    if (!fin.HasKey("ISMC")){
+        const string runstart = fin.GetStr("DATE-OBS");
+        const string runstop  = fin.GetStr("DATE-END");
+
+        fRawRunHeader->SetRunTime(MTime(runstart.c_str()), MTime(runstop.c_str()));
+    }
+
+    if (!fin.HasKey("ISMC"))
+        return
+            fin.HasKey("NPIX") && fin.HasKey("RUNID")  &&
+            fin.HasKey("NROI") && fin.HasKey("BLDVER") &&
+            fin.HasKey("NIGHT");
+    else
+        return
+            fin.HasKey("NPIX") && fin.HasKey("RUNID")  &&
+            fin.HasKey("NROI") && fin.HasKey("NIGHT");
 }
 
@@ -197,15 +206,20 @@
         return kFALSE;
 
-    if (!fin.SetRefAddress("NumBoards", fNumBoards))
-        return kFALSE;
-
-    fPCTime.resize(2);
-    if (!fin.SetVecAddress("UnixTimeUTC", fPCTime))
-        if (!fin.SetVecAddress("PCTime", fPCTime))
+    if (!fin.HasKey("ISMC")){
+        if (!fin.SetRefAddress("NumBoards", fNumBoards))
             return kFALSE;
 
-
-    if (!fin.SetPtrAddress("BoardTime", fRawBoards->fFadTime, 40))
-        return kFALSE;
+        fPCTime.resize(2);
+        if (!fin.SetVecAddress("UnixTimeUTC", fPCTime))
+            if (!fin.SetVecAddress("PCTime", fPCTime))
+                return kFALSE;
+
+
+        if (!fin.SetPtrAddress("BoardTime", fRawBoards->fFadTime, 40))
+            return kFALSE;
+    }
+    else
+        fIsMc = kTRUE;
+
 
     if (!fin.SetPtrAddress("Data", (int16_t*)(*data)->GetArray(), (*data)->GetSize()/2))
@@ -225,10 +239,13 @@
         return kFALSE;
 
-    // Skip incomplete events
-    if (fNumBoards!=40)
-        return kCONTINUE;
-
-    fRawEvtTime->SetUnixTime(fPCTime[0], fPCTime[1]);
-
+    if (!fIsMc)
+    {
+        // Skip incomplete events
+        if (fNumBoards!=40)
+            return kCONTINUE;
+
+        fRawEvtTime->SetUnixTime(fPCTime[0], fPCTime[1]);
+
+    }    
     // FIXME: Correctly sort the pixels here!
 
