Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 2747)
+++ trunk/MagicSoft/Mars/Changelog	(revision 2748)
@@ -5,4 +5,16 @@
                                                  -*-*- END OF LINE -*-*-
 
+ 2003/12/23: Thomas Bretz
+
+   * manalysis/MPedCalcPedRun.[h,cc]:
+     - removed fCounter
+     - replaced by GetNumExecutions()
+
+   * mraw/MRaw*:
+     - some changes and debug output for the upcomming time-stamp
+     - a fix to broken reading
+
+
+
  2003/12/23: Wolfgang Wittek
 
@@ -22,6 +34,5 @@
      - put zenith angle into MMcEvt
 
-   * manalysis/Makefile
-               AnalysisLinkDef.h
+   * manalysis/Makefile, manalysis/AnalysisLinkDef.h
      - added MPadON
 
Index: trunk/MagicSoft/Mars/mraw/MRawCrateData.cc
===================================================================
--- trunk/MagicSoft/Mars/mraw/MRawCrateData.cc	(revision 2747)
+++ trunk/MagicSoft/Mars/mraw/MRawCrateData.cc	(revision 2748)
@@ -60,5 +60,5 @@
     fin.read((char*)&fFADCClockTick,  4);
     if (ver>1)
-        fin.read((char*)&fABFlags, 1);
+       fin.read((char*)&fABFlags, 1);
 }
 
Index: trunk/MagicSoft/Mars/mraw/MRawEvtHeader.cc
===================================================================
--- trunk/MagicSoft/Mars/mraw/MRawEvtHeader.cc	(revision 2747)
+++ trunk/MagicSoft/Mars/mraw/MRawEvtHeader.cc	(revision 2748)
@@ -239,32 +239,57 @@
 {
     // BADC|1032 --> DCBA|3210 (Byte swap - exchange MSB and LSB)
+    *fLog << hex << all << endl << abstime[0] << " " << abstime[1] << endl;
+
     abstime[0] = (abstime[0]<<16) | (abstime[0]>>16);
-    abstime[1] = (abstime[1]<<16) | (abstime[1]>>16);
-
-    const Byte_t h = (abstime[0]>>18 & 0x30)*10 + (abstime[0]>>14 & 0x0f);
-    const Byte_t m = (abstime[0]>>11 & 0x70)*10 + (abstime[0]>> 7 & 0x0f);
-    const Byte_t s = (abstime[0]>> 4 & 0x70)*10 + (abstime[0]>> 0 & 0x0f);
+//  abstime[1] = (abstime[1]<<16) | (abstime[1]>>16);
+//    *fLog << hex << abstime[0] << " " << abstime[1] << endl;
+//    *fLog << dec;
+
+    abstime[0] = abstime[0]<<8&0xff00 | abstime[0]>>8&0x00ff | abstime[0]&0xffff0000;
+    abstime[1] = abstime[1]<<8&0xff00 | abstime[1]>>8&0x00ff | abstime[1]&0xffff0000;
+
+    for (int i=4*8-1; i>=0; i--)
+        *fLog << (int)(abstime[0]&BIT(i)?1:0);
+    *fLog << " ";
+    for (int i=4*8-1; i>=0; i--)
+        *fLog << (int)(abstime[1]&BIT(i)?1:0);
+    *fLog << endl;
+
+/*    *fLog << hex << abstime[0] << " " << abstime[1] << endl;
+*/
+
+    // Strange thing!
+    Char_t t = abstime[0]>>8 &0xf;
+    abstime[0] &= 0xfffff0ff;
+
+//    *fLog << abstime[0]<< " " << (int)t << endl;
+
+
+    for (int i=0; i<4; i++)
+    {
+        abstime[0] |= (t&BIT(i) ? 1 : 0)<<(11-i);
+        //*fLog << ((t&BIT(i) ? 1 : 0)<<(11-i)) << " ";
+    }
+
+    //*fLog << endl << abstime[0]<< endl;
+
+    // Decode
+    const Byte_t h = (abstime[0]>>18 & 0x3)*10 + (abstime[0]>>14 & 0xf);
+    const Byte_t m = (abstime[0]>>11 & 0x7)*10 + (abstime[0]>> 7 & 0xf);
+    const Byte_t s = (abstime[0]>> 4 & 0x7)*10 + (abstime[0]>> 0 & 0xf);
     const Int_t ms =
-        ((abstime[1]>>16)&0xf)*1000 +
-        ((abstime[1]>> 8)&0xf)* 100 +
-        ((abstime[1]>> 4)&0xf)*  10 +
-        ((abstime[1]>> 0)&0xf)*   1;
+        ((abstime[0]>>12)&0xf)*1000 +
+        ((abstime[0]>> 8)&0xf)* 100 +
+        ((abstime[0]>> 4)&0xf)*  10 +
+        ((abstime[0]>> 0)&0xf)*   1;
 
     // hms   =3210 -->  h=2:4 m=3:4 s=3:4
     // subsec=DCBA --> subsec?
-    *fLog << dbg << dec;
-    *fLog << (int)(abstime[0]>>18 & 0x30); // h
-    *fLog << (int)(abstime[0]>>14 & 0x0f); // h
-    *fLog << ":";
-    *fLog << (int)(abstime[0]>>11 & 0x70); // m
-    *fLog << (int)(abstime[0]>> 7 & 0x0f); // m
-    *fLog << ":";
-    *fLog << (int)(abstime[0]>> 4 & 0x70); // s
-    *fLog << (int)(abstime[0]>> 0 & 0x0f); // s
-    *fLog << " ";
-    *fLog << (int)(abstime[1]>>16 & 0xf) << ".";
-    *fLog << (int)(abstime[1]>> 8 & 0xf) << ".";
-    *fLog << (int)(abstime[1]>> 4 & 0xf) << ".";
-    *fLog << (int)(abstime[1]>> 0 & 0xf);
+    *fLog << all << dec << setfill('0') << setw(2) << (int)h << ":" << setw(2) << (int)m << ":" << setw(2) << (int)s;
+    *fLog << " " << hex;
+    *fLog << (int)(abstime[0]>>12 & 0xf) << ".";
+    *fLog << (int)(abstime[0]>> 8 & 0xf) << ".";
+    *fLog << (int)(abstime[0]>> 4 & 0xf) << ".";
+    *fLog << (int)(abstime[0]>> 0 & 0xf);
     *fLog << endl;
 
@@ -274,5 +299,12 @@
     //
     // Here the nanosec precision is ignored... (FIXME!)
-    return fTime->UpdMagicTime(h, m, s, ms);
+
+    static int i=0;
+    i++;
+    fTime->Print();
+    fTime->UpdMagicTime(h, m, s, 0/*ms*/);
+    fTime->Print();
+    return i<5;
+    //return fTime->UpdMagicTime(h, m, s, ms);
 }
 
@@ -291,4 +323,6 @@
 {
     fin.read((char*)&fDAQEvtNumber, 4);  // Total=4
+
+    *fLog << "N: " << fDAQEvtNumber << endl;
 
     UInt_t abstime[2];                   // BADC|1032
@@ -308,4 +342,6 @@
     fin.read((char*)fPixLoGainOn->GetArray(), fPixLoGainOn->GetSize());
 
+    *fLog << "T: " << fTrigType << endl;
+
     fNumLoGainOn = 0;
     for (unsigned int i=0; i<fPixLoGainOn->GetSize(); i++)
Index: trunk/MagicSoft/Mars/mraw/MRawFileRead.cc
===================================================================
--- trunk/MagicSoft/Mars/mraw/MRawFileRead.cc	(revision 2747)
+++ trunk/MagicSoft/Mars/mraw/MRawFileRead.cc	(revision 2748)
@@ -156,4 +156,11 @@
     *fRawEvtTime = fRawRunHeader->GetRunStart();
 
+    //
+    // Give the run header information to the 'sub-classes'
+    // Run header must be valid!
+    //
+    fRawEvtHeader->Init(fRawRunHeader, fRawEvtTime);
+    fRawEvtData  ->Init(fRawRunHeader, fRawCrateArray);
+
     return kTRUE;
 }
Index: trunk/MagicSoft/Mars/mraw/MRawRead.cc
===================================================================
--- trunk/MagicSoft/Mars/mraw/MRawRead.cc	(revision 2747)
+++ trunk/MagicSoft/Mars/mraw/MRawRead.cc	(revision 2748)
@@ -116,10 +116,4 @@
         return kFALSE;
 
-    //
-    // Give the run header information to the 'sub-classes'
-    //
-    fRawEvtHeader->Init(fRawRunHeader, fRawEvtTime);
-    fRawEvtData  ->Init(fRawRunHeader, fRawCrateArray);
-
     return kTRUE;
 }
Index: trunk/MagicSoft/Mars/mraw/MRawSocketRead.cc
===================================================================
--- trunk/MagicSoft/Mars/mraw/MRawSocketRead.cc	(revision 2747)
+++ trunk/MagicSoft/Mars/mraw/MRawSocketRead.cc	(revision 2748)
@@ -254,4 +254,11 @@
     *fRawEvtTime = fRawRunHeader->GetRunStart();
 
+    //
+    // Give the run header information to the 'sub-classes'
+    // Run header must be valid!
+    //
+    fRawEvtHeader->Init(fRawRunHeader, fRawEvtTime);
+    fRawEvtData  ->Init(fRawRunHeader, fRawCrateArray);
+
     if (!ReadEvent(*fIn))
         return kFALSE;
