Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 7639)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 7640)
@@ -18,4 +18,12 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2006/04/13 Thomas Bretz
+
+   * mraw/MRawRunHeader.[h,cc]:
+     - adapted to new DAQ format version 6
+     - increased class version number
+
+
 
  2006/04/13 Thomas Bretz
Index: /trunk/MagicSoft/Mars/mraw/MRawRunHeader.cc
===================================================================
--- /trunk/MagicSoft/Mars/mraw/MRawRunHeader.cc	(revision 7639)
+++ /trunk/MagicSoft/Mars/mraw/MRawRunHeader.cc	(revision 7640)
@@ -35,4 +35,11 @@
 //  Format Version 5:
 //  -----------------
+//   - added fCameraVersion
+//   - added fTelescopeNumber
+//   - changed length of fProjectName to 101
+//   - changed length of fSourceName  to 81
+//
+//  Format Version 6:
+//  -----------------
 //   - now the sub millisecond information of the time is valid and decoded
 //     which enhances the precision from 51.2us to 200ns
@@ -89,5 +96,5 @@
 
 const UShort_t MRawRunHeader::kMagicNumber      = 0xc0c0;
-const Byte_t   MRawRunHeader::kMaxFormatVersion =      5;
+const Byte_t   MRawRunHeader::kMaxFormatVersion =      6;
 
 // --------------------------------------------------------------------------
@@ -105,8 +112,11 @@
     fFormatVersion=0;
     fSoftVersion=0;
+    fTelescopeNumber=0;
+    fCameraVersion=0;
     fRunType=kRTNone;  // use 0xffff for invalidation, 0 means: Data run
     fRunNumber=0;
-    memset(fProjectName, 0, 23);
-    memset(fSourceName, 0, 13);
+    memset(fProjectName,     0, 101);
+    memset(fSourceName,      0,  81);
+    memset(fObservationMode, 0,  61);
     fSourceEpochChar[0]=0;
     fSourceEpochDate=0;
@@ -256,5 +266,6 @@
     Byte_t dummy[16];
 
-    fin.read((char*)&fFormatVersion,    2);     // Total=4
+    // ----- File format version -----
+    fin.read((char*)&fFormatVersion, 2);     // Total=4
     if (fFormatVersion>kMaxFormatVersion)
     {
@@ -263,13 +274,35 @@
     }
 
-    fin.read((char*)&fSoftVersion,      2);     // Total=6
-    fin.read((char*)&fRunType,          2);     // Total=8
-    fin.read((char*)&fRunNumber,        4);     // Total=12
-    fin.read((char*)&fProjectName,     22);     // Total=34
-    fin.read((char*)&fSourceName,      12);     // Total=46
-    fin.read((char*)dummy,              4); // was RA  (moved to tracking system)
-    fin.read((char*)dummy,              4); // was DEC (moved to tracking system)
+    // ----- DAQ software format version -----
+    fin.read((char*)&fSoftVersion, 2);     // Total=6
+
+    // ----- Camera geometry and telescope number -----
+    if (fFormatVersion>5)
+    {
+        fin.read((char*)&fCameraVersion,   2); // (+2)
+        fin.read((char*)&fTelescopeNumber, 2); // (+2)
+    }
+
+    // ----- Run information -----
+    fin.read((char*)&fRunType,     2); // Total=8
+    fin.read((char*)&fRunNumber,   4); // Total=12
+    fin.read((char*)&fProjectName, fFormatVersion>5?100:22); // Total=34  (+78)
+    fin.read((char*)&fSourceName,  fFormatVersion>5? 80:12); // Total=46  (+58)
+
+    if (fFormatVersion>5)
+        fin.read((char*)fObservationMode, 60); // (+60)
+
+    // ----- Source position -----
+    fin.read((char*)dummy, 4); // F32 SourceRA;  Total=48
+    fin.read((char*)dummy, 4); // F32 SourceDEC; Total=52
+    if (fFormatVersion>5)
+    {
+        fin.read((char*)dummy, 4); // F32 TelescopeRA;  (+4)
+        fin.read((char*)dummy, 4); // F32 TelescopeDEC; (+4)
+    }
     fin.read((char*)&fSourceEpochChar,  2);     // Total=56
     fin.read((char*)&fSourceEpochDate,  2);     // Total=58
+
+    // ----- Old Start time -----
     if (fFormatVersion<2)                       // Total += 10
     {
@@ -281,9 +314,15 @@
         fRunStart.Set(y, m, d, 0, 0, 0, 0);
     }
+
+    // ----- Data Geometry -----
     fin.read((char*)&fNumCrates,        2);     // Total=60
     fin.read((char*)&fNumPixInCrate,    2);     // Total=62
     fin.read((char*)&fNumSamplesLoGain, 2);     // Total=64
     fin.read((char*)&fNumSamplesHiGain, 2);     // Total=66
+
+    // ----- Number of events -----
     fin.read((char*)&fNumEvents,        4);     // Total=70
+
+    // ----- Start/Stop time -----
     if (fFormatVersion>1)
     {
@@ -298,6 +337,9 @@
     fPixAssignment->Set(nPixel);
 
+    // ----- Pixel Assignement -----
     fin.read((char*)fPixAssignment->GetArray(), nPixel*2);
     fin.read((char*)&dummy, 16);
+
+    Print();
 
     return FixAssignment();
@@ -348,6 +390,10 @@
     *fLog << "Version:      " << dec << "Format=" << fFormatVersion << "  ";
     *fLog << "Software=" << fSoftVersion << endl;
+    if (fFormatVersion>5)
+        *fLog << "Telescope:    " << fTelescopeNumber << " (Camera #" << fCameraVersion << ")" <<endl;
     *fLog << "RunNumber:    " << fRunNumber << " (Type=" << GetRunTypeStr() << ")" << endl;
     *fLog << "ProjectName: '" << fProjectName << "'" << endl;
+    if (fFormatVersion>5)
+        *fLog << "Observation: '" << fObservationMode << "'" << endl;
     *fLog << "Source:      '" << fSourceName << "' " << "  ";
     *fLog << fSourceEpochChar << dec << fSourceEpochDate << endl;
@@ -492,5 +538,10 @@
         return 80+fNumCrates*fNumPixInCrate*2+16;
     case 2:
+    case 3:
+    case 4:
+    case 5:
         return 84+fNumCrates*fNumPixInCrate*2+16;
+    case 6:
+        return 84+fNumCrates*fNumPixInCrate*2+16 +4+78+58+60+8;
     }
     return 0;
Index: /trunk/MagicSoft/Mars/mraw/MRawRunHeader.h
===================================================================
--- /trunk/MagicSoft/Mars/mraw/MRawRunHeader.h	(revision 7639)
+++ /trunk/MagicSoft/Mars/mraw/MRawRunHeader.h	(revision 7640)
@@ -41,8 +41,11 @@
     UShort_t  fFormatVersion;
     UShort_t  fSoftVersion;
+    UShort_t  fCameraVersion;
+    UShort_t  fTelescopeNumber;
     UShort_t  fRunType;
     UInt_t    fRunNumber;
-    Char_t    fProjectName[23];
-    Char_t    fSourceName[13];
+    Char_t    fProjectName[101];//23];
+    Char_t    fSourceName[81];  //13];
+    Char_t    fObservationMode[61];
     Char_t    fSourceEpochChar[2];
     UShort_t  fSourceEpochDate;
