Index: trunk/MagicSoft/Mars/mjobs/MJStar.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJStar.cc	(revision 4875)
+++ trunk/MagicSoft/Mars/mjobs/MJStar.cc	(revision 4889)
@@ -43,12 +43,19 @@
 #include "MStatusDisplay.h"
 
+#include "MH3.h"
+#include "MHVsTime.h"
 #include "MHCamEvent.h"
-
-#include "MReadMarsFile.h"
+#include "MBinning.h"
+
+#include "MReadReports.h"
 #include "MGeomApply.h"
+#include "MEventRateCalc.h"
 #include "MImgCleanStd.h"
 #include "MHillasCalc.h"
 #include "MFillH.h"
 #include "MWriteRootFile.h"
+
+#include "MPointingPosCalc.h"
+//#include "MSrcPosFromModel.h"
 
 ClassImp(MJStar);
@@ -138,26 +145,68 @@
     plist.AddToList(&tlist);
 
-    MReadMarsFile read("Events");
-    read.DisableAutoScheme();
+    MReadReports read;
+    read.AddTree("Events", "MTime.", kTRUE);
+    read.AddTree("Drive");
+    //read.AddTree("Trigger");
+    //read.AddTree("Camera");
+    //read.AddTree("CC");
+    //read.AddTree("Currents");
     read.AddFiles(iter);
-    //read.AddFiles(fnamein);
+
+    // ------------------ Setup general tasks ----------------
 
     MGeomApply             apply; // Only necessary to craete geometry
+    MEventRateCalc         rate;
+/*
+    MEventRateCalc         rate10000;
+    rate10000.SetNameEventRate("MEventRate10000");
+    rate10000.SetNumEvents(10000);
+ */
     //MBadPixelsMerge        merge(&badpix);
     MImgCleanStd           clean; 
     MHillasCalc            hcalc;
 
+    // ------------------ Setup histograms and fill tasks ----------------
     MHCamEvent evt0("Cleaned");
     evt0.SetType(0);
+
+    MH3 h1("MEventRate.fRate");
+    h1.SetName("MHEventRate");
+    h1.SetLogy();
+/*
+    MH3 h12("MEventRate10000.fRate");
+    h12.SetName("MHEventRate");
+    h12.SetLogy();
+ */
+    MBinning b1("BinningMHEventRate");
+    b1.SetEdges(150, 0, 1500);
+    plist.AddToList(&b1);
+
+    MHVsTime h2("MEffectiveOnTime.fVal", "MEffectiveOnTime.fErr");
+    h2.SetAxisTitle("T_{eff}");
+    h2.SetTitle("Effective On-Time T_{eff} vs. Time");
+
     MFillH fill0(&evt0, "MCerPhotEvt",            "FillCerPhotEvt");
     MFillH fill1("MHHillas",      "MHillas",      "FillHillas");
-    MFillH fill2("MHHillasExt",   "MHillasExt",   "FillHillasExt");
+    MFillH fill2("MHHillasExt",   "",             "FillHillasExt");
     MFillH fill3("MHHillasSrc",   "MHillasSrc",   "FillHillasSrc");
     MFillH fill4("MHImagePar",    "MImagePar",    "FillImagePar");
     MFillH fill5("MHNewImagePar", "MNewImagePar", "FillNewImagePar");
-    MFillH fill6("MHCerPhot");
-
-    MWriteRootFile write(2, "images/{s/_Y_/_I_}");
-    write.AddContainer("MMcEvt",        "Events", kFALSE);
+    MFillH fill6("MHImageParTime","MImageParTime","FillImageParTime");
+    MFillH fill7("MHNewImagePar2","MNewImagePar2","FillNewImagePar2");
+    MFillH fill8(&h1,             "",             "FillEventRate");
+    MFillH fill9("MHEffectiveOnTime", "MTime",    "FillEffOnTime");
+    MFillH filla(&h2,             "MTimeEffectiveOnTime", "FillEffOnTimeVsTime");
+    //MFillH fillb(&h12, "", "FillEvtRate2");
+    //MFillH fill9("MHCerPhot");
+
+    fill8.SetNameTab("EvtRate");
+    fill9.SetNameTab("EffOnTime");
+    fill9.SetNameTab("EffOnVsTime");
+
+    // ------------------ Setup write task ----------------
+
+    MWriteRootFile write(2, Form("%s{s/_Y_/_I_}", fPathOut.Data()), fOverwrite);
+    // Data
     write.AddContainer("MHillas",       "Events");
     write.AddContainer("MHillasExt",    "Events");
@@ -165,22 +214,59 @@
     write.AddContainer("MImagePar",     "Events");
     write.AddContainer("MNewImagePar",  "Events");
+    write.AddContainer("MNewImagePar2", "Events");
+    write.AddContainer("MImageParTime", "Events");
     write.AddContainer("MTime",         "Events");
     write.AddContainer("MRawEvtHeader", "Events");
-    write.AddContainer("MRawRunHeader", "RunHeaders");
-    write.AddContainer("MBadPixelsCam", "RunHeaders");
-    write.AddContainer("MGeomCam",      "RunHeaders");
+    // Monte Carlo
+    write.AddContainer("MMcEvt",              "Events", kFALSE);
+    write.AddContainer("MMcTrig",             "Events", kFALSE);
+    // Run Header
+    write.AddContainer("MRawRunHeader",       "RunHeaders");
+    write.AddContainer("MBadPixelsCam",       "RunHeaders");
+    write.AddContainer("MGeomCam",            "RunHeaders");
     //write.AddContainer("MObservatory", "RunHeaders");
+    // Monte Carlo Headers
+    write.AddContainer("MMcTrigHeader",       "RunHeaders", kFALSE);
+    write.AddContainer("MMcConfigRunHeader",  "RunHeaders", kFALSE);
+    write.AddContainer("MMcCorsikaRunHeader", "RunHeaders", kFALSE);
+    // Drive
+    //write.AddContainer("MSrcPosCam",   "Drive");
+    write.AddContainer("MPointingPos", "Drive");
+    write.AddContainer("MReportDrive", "Drive");
+    write.AddContainer("MTimeDrive",   "Drive");
+    // Effective On Time
+    write.AddContainer("MEffectiveOnTime",     "EffectiveOnTime");
+    write.AddContainer("MTimeEffectiveOnTime", "EffectiveOnTime");
+
+    MTaskList tlist2;
+    tlist2.AddToList(&apply);
+    tlist2.AddToList(&rate);
+    //tlist2.AddToList(&rate10000);
+    tlist2.AddToList(&fill8);
+    tlist2.AddToList(&fill9);
+    tlist2.AddToList(&filla);
+    //tlist2.AddToList(&fillb);
+    tlist2.AddToList(&clean);
+    tlist2.AddToList(&fill0);
+    tlist2.AddToList(&hcalc);
+    tlist2.AddToList(&fill1);
+    tlist2.AddToList(&fill2);
+    tlist2.AddToList(&fill3);
+    tlist2.AddToList(&fill4);
+    tlist2.AddToList(&fill5);
+    tlist2.AddToList(&fill6);
+    tlist2.AddToList(&fill7);
+    //tlist2.AddToList(&fill9);
+
+    MPointingPosCalc pcalc;
+    //MSrcPosFromModel srcpos;
+
+    MTaskList tlist3;
+    tlist3.AddToList(&pcalc);
+    //tlist3.AddToList(&srcpos);
 
     tlist.AddToList(&read);
-    tlist.AddToList(&apply);
-    tlist.AddToList(&clean);
-    tlist.AddToList(&fill0);
-    tlist.AddToList(&hcalc);
-    tlist.AddToList(&fill1);
-    tlist.AddToList(&fill2);
-    tlist.AddToList(&fill3);
-    tlist.AddToList(&fill4);
-    tlist.AddToList(&fill5);
-    //tlist.AddToList(&fill6);
+    tlist.AddToList(&tlist3, "Drive");
+    tlist.AddToList(&tlist2, "Events");
     tlist.AddToList(&write);
 
