Index: /trunk/Mars/mraw/MRawFitsRead.cc
===================================================================
--- /trunk/Mars/mraw/MRawFitsRead.cc	(revision 11555)
+++ /trunk/Mars/mraw/MRawFitsRead.cc	(revision 11556)
@@ -43,5 +43,5 @@
 #include "MLogManip.h"
 
-#include "MFits.h"
+#include "fits.h"
 #include "MTime.h"
 
@@ -68,24 +68,21 @@
 Bool_t MRawFitsRead::IsFits(const char *name)
 {
-    MZlib fin(name);
-    if (!fin)
-        return 0;
-
-    Byte_t c[6];
-    fin.read((char*)c, 6);
-    if (!fin)
-        return 0;
-
-    return memcmp(c, "SIMPLE", 6)==0;
+    return fits(name).good();
 }
 
 istream *MRawFitsRead::OpenFile(const char *filename)
 {
-    return new MFits(filename);
+    return new fits(filename);
 }
 
 Bool_t MRawFitsRead::ReadRunHeader(istream &stream)
 {
-    MFits &fin = static_cast<MFits&>(stream);
+    fits &fin = static_cast<fits&>(stream);
+
+    if (fin.GetStr("TELESCOP")!="FACT")
+    {
+        gLog << err << "Not a valid FACT FITS file (key TELESCOP not 'FACT')." << endl;
+        return kFALSE;
+    }
 
     fRawRunHeader->SetValidMagicNumber();
@@ -106,5 +103,5 @@
 Bool_t::MRawFitsRead::InitReadData(istream &stream)
 {
-    MFits &fin = static_cast<MFits&>(stream);
+    fits &fin = static_cast<fits&>(stream);
 
     MArrayB **data   = reinterpret_cast<MArrayB**>(fRawEvtData1->DataMember("fHiGainFadcSamples"));
@@ -139,5 +136,5 @@
 Bool_t MRawFitsRead::ReadEvent(istream &stream)
 {
-    if (!static_cast<MFits&>(stream).GetNextRow())
+    if (!static_cast<fits&>(stream).GetNextRow())
         return kFALSE;
 
@@ -154,4 +151,4 @@
 void MRawFitsRead::SkipEvent(istream &fin)
 {
-    static_cast<MFits&>(fin).SkipNextRow();
+    static_cast<fits&>(fin).SkipNextRow();
 }
