Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 1732)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 1733)
@@ -1,4 +1,14 @@
 
                                                          -*-*- END -*-*-
+
+ 2003/01/27: Robert Wagner
+
+  * manalysis/MCT1ReadPreProc.cc
+    - Added call of MTaskList::ReInit after processing of new 
+      run header
+    - Filling of MC container complies to Oscar's changes of 
+      MMcEvt.[hxx,cxx] dated 2003/01/20
+    - Added filling of run number in MRawRunHeader object while
+      processing a new run header
 
  2003/01/23: Robert Wagner
Index: /trunk/MagicSoft/Mars/mfileio/MCT1ReadPreProc.cc
===================================================================
--- /trunk/MagicSoft/Mars/mfileio/MCT1ReadPreProc.cc	(revision 1732)
+++ /trunk/MagicSoft/Mars/mfileio/MCT1ReadPreProc.cc	(revision 1733)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz 11/2002 <mailto:tbretz@astro.uni-wuerzburg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2002
+!   Copyright: MAGIC Software Development, 2000-2003
 !
 !
@@ -74,4 +74,7 @@
 #include "MBlindPixels.h"
 
+#include "MRawRunHeader.h"
+#include "MTaskList.h"
+
 #include "MMcEvt.hxx"
 #include "MMcTrig.hxx"
@@ -88,6 +91,6 @@
                                  const char *title) : fIn(NULL), fEntries(0)
 {
-    fName  = name  ? name  : "MRead";
-    fTitle = title ? title : "Task to loop over events in CT1 ascii file";
+    fName  = name  ? name  : "MCT1ReadPreProc";
+    fTitle = title ? title : "Reads a CT1 preproc data file";
 
     //
@@ -168,4 +171,9 @@
 
     // int     irunnum;          // run number (from parameters file)
+    *fLog << inf << "Run number" << outpars.irunnum;
+    
+    fRawRunHeader->SetRunNumber(outpars.irunnum);
+    fRawRunHeader->SetReadyToSave();
+
     // enum    onoroff {NEITHER_ON_NOR_OFF, OFF_SOURCE, ON_SOURCE} eruntype; // runtype
     *fLog << "Run:       #" << outpars.irunnum << "  (";
@@ -370,4 +378,5 @@
 
     fIsMcFile = outpars.bmontecarlo==TRUE;
+
 }
 
@@ -376,5 +385,5 @@
 // Read CT1 PreProc File Header:
 //
-Bool_t MCT1ReadPreProc::ReadRunHeader()
+Int_t MCT1ReadPreProc::ReadRunHeader()
 {
     char cheadertitle[iHEADERTITLELENGTH];
@@ -402,5 +411,5 @@
     if (fpreprocversion<0.6)
     {
-        *fLog << err << "Sorry only files from PreProc V0.6 and newer are supported." << endl;
+        *fLog << err << "Sorry, only files from PreProc V0.6 and newer are supported." << endl;
         return kFALSE;
     }
@@ -423,4 +432,8 @@
 
     ProcessRunHeader(outpars);
+
+    //rwagner: ReInit whenever new run commences
+    // rc==-1 means: ReInit didn't work out
+    if (!fTaskList->ReInit(fParList)) return -1;
 
     return kTRUE;
@@ -530,9 +543,15 @@
     *fLog << inf << "-----------------------------------------------------------------------" << endl;
 
-    if (!ReadRunHeader())
-    {
-        *fLog << warn << "Unable to read first run header... skipping file." << endl;
-        return kFALSE;
-    }
+    switch (ReadRunHeader())
+      {
+      case kFALSE:
+	*fLog << warn << "Unable to read first run header... skipping file." << endl;
+	return kFALSE;
+	break;
+      case -1:
+	*fLog << warn << "ReInit of Tasklist didn't succeed." << endl;
+	return kFALSE;
+	break;
+      }
 
     return kTRUE;
@@ -644,4 +663,7 @@
 Bool_t MCT1ReadPreProc::PreProcess(MParList *pList)
 {
+
+    fParList = pList;
+
     //
     //  look for the MCerPhotEvt class in the plist
@@ -699,4 +721,19 @@
     if (!fMcTrig)
         return kFALSE;
+
+    //
+    //  look for the raw run header class
+    //
+    fRawRunHeader = (MRawRunHeader*)pList->FindCreateObj("MRawRunHeader");
+    if (!fRawRunHeader)
+        return kFALSE;
+
+    //
+    //  look for the task list
+    //
+    fTaskList = (MTaskList*)pList->FindCreateObj("MTaskList");
+    if (!fTaskList)
+        return kFALSE;
+
 
     fNumFilterEvts = 0;
@@ -769,5 +806,8 @@
 		 0, /* fFirTar */
                  0, /* fzFirInt */
-                 0, /* fThet*/
+		 // 0, /* fThet*/
+		 // rwagner: The following should be theta, right? Check with
+		 // altitude fill some lines down...
+		 0, // altitude (arcseconds)
                  0, /* fPhii */
                  0, /* fCorD */
@@ -791,5 +831,8 @@
 		 0, /* uiPco */
 		 0, /* uiPelS */
-                 fIsMcFile ? event.fmcsize_phel : 0 /* uiPelC, Simulated SIZE */
+                 fIsMcFile ? event.fmcsize_phel : 0, /* uiPelC, Simulated SIZE */
+		 0, /* elec */
+		 0, /* muon */
+		 0  /* other */
                  );
 
@@ -827,5 +870,5 @@
 
         //
-        // Try reading the footer. If it isn't succefull...
+        // Try reading the footer. If this isn't successful...
         // must be an event
         //
@@ -861,6 +904,15 @@
 
         *fLog << "-----------------------------------------------------------------------" << endl;
-        if (!ReadRunHeader())
-            return kTRUE;
+
+	switch (ReadRunHeader())
+	  {
+	  case kTRUE:
+	    return kTRUE;
+	    break;
+	  case -1:
+	    *fLog << warn << "ReInit of Tasklist didn't succeed." << endl;
+	    return kFALSE;
+	    break;
+	  }
     }
 }
