Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 8914)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 8929)
@@ -410,18 +410,24 @@
     //hpat.DefineLabelsY("1=Lvl1;2=Cal;3=Cal;4=Lvl2;5=Cal;7=Cal;8=Ped;9=Ped+Trig;13=Ped+Trig;16=Pin;32=Sum");
     hpat.DefaultLabelY("UNKNOWN");
-    hpat.DefineLabelY( 0, "0");        // 0: No pattern
-    hpat.DefineLabelY( 1, "Trig");     // Lvl1
-    hpat.DefineLabelY( 2, "Cal");      // Cal
-    hpat.DefineLabelY( 3, "Cal");      // Cal+Lvl1
-    hpat.DefineLabelY( 4, "Trig");     // Lvl2
-    hpat.DefineLabelY( 5, "Trig");     // Lvl1+Lvl2
-    hpat.DefineLabelY( 7, "Cal");      // Cal+Lvl1+Lvl2
-    hpat.DefineLabelY( 8, "Ped");      // Ped
-    hpat.DefineLabelY( 9, "Ped+Trig"); // Ped+Lvl1
-    hpat.DefineLabelY(13, "Ped+Trig"); // Ped+Lvl2
-    hpat.DefineLabelY(16, "Pin");
-    hpat.DefineLabelY(32, "Sum");      // Sum
-    hpat.DefineLabelY(33, "Sum");      // Sum+Lvl1
-    hpat.DefineLabelY(37, "Sum");      // Sum+Lvl1+Lvl2
+    hpat.DefineLabelY( 0, "0");        //  0: No pattern
+    hpat.DefineLabelY( 1, "Trig");     //  1: Lvl1
+    hpat.DefineLabelY( 2, "Cal");      //  2: Cal
+    hpat.DefineLabelY( 3, "Cal");      //     Cal+Lvl1
+    hpat.DefineLabelY( 4, "Trig");     //  4: Lvl2
+    hpat.DefineLabelY( 5, "Trig");     //     Lvl2+Lvl1
+    hpat.DefineLabelY( 7, "Cal");      //     Lvl2+Cal+Lvl
+    hpat.DefineLabelY( 8, "Ped");      //  8: Ped
+    hpat.DefineLabelY( 9, "Ped+Trig"); //     Ped+Lvl1
+    hpat.DefineLabelY(10, "Ped+Cal");  //     Ped+Cal
+    hpat.DefineLabelY(12, "Ped+Trig"); //     Ped+Lvl2
+    hpat.DefineLabelY(13, "Ped+Trig"); //     Ped+Lvl2+Lvl1
+    hpat.DefineLabelY(16, "Pin");      // 16: Pin
+    hpat.DefineLabelY(32, "Sum");      // 32: Sum
+    hpat.DefineLabelY(33, "Trig");     //     Sum+Lvl1
+    hpat.DefineLabelY(34, "Cal");      //     Sum+Cal
+    hpat.DefineLabelY(35, "Cal");      //     Sum+Cal+Lvl1
+    hpat.DefineLabelY(36, "Trig");     //     Sum+Lvl2
+    hpat.DefineLabelY(37, "Trig");     //     Sum+Lvl1+Lvl2
+    hpat.DefineLabelY(39, "Cal");      //     Sum+Lvl2+Cal+Lvl1
 
     MFillH fillpat(&hpat, "", "FillPattern");
@@ -439,5 +445,5 @@
     fcalped.AllowTriggerLvl1();
     fcalped.AllowTriggerLvl2();
-    //fcalped.AllowSumTrigger();
+    fcalped.AllowSumTrigger();
 
     // This will skip interleaved events with a cal- or ped-trigger
@@ -699,4 +705,5 @@
     write.AddContainer("MTime",                     "Events",     kFALSE);
     write.AddContainer("MRawEvtHeader",             "Events");
+    write.AddContainer("MTriggerPattern",           "Events");
 
     // Slow-Control: Current-tree
Index: trunk/MagicSoft/Mars/mjobs/MJStar.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJStar.cc	(revision 8914)
+++ trunk/MagicSoft/Mars/mjobs/MJStar.cc	(revision 8929)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz, 1/2004 <mailto:tbretz@astro.uni-wuerzburg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2007
+!   Copyright: MAGIC Software Development, 2000-2008
 !
 !
@@ -35,4 +35,5 @@
 #include <TFile.h>
 
+// Core
 #include "MLog.h"
 #include "MLogManip.h"
@@ -45,4 +46,5 @@
 #include "MStatusDisplay.h"
 
+// Histograms
 #include "MHSectorVsTime.h"
 #include "MHEffectiveOnTime.h"
@@ -50,11 +52,10 @@
 #include "MBinning.h"
 
+///NEEWWWW
+#include "MH3.h"
+
+// Tasks
 #include "MReadReports.h"
 #include "MReadMarsFile.h"
-#include "MFDataPhrase.h"
-#include "MFilterList.h"
-#include "MFDataMember.h"
-#include "MFDeltaT.h"
-#include "MFSoftwareTrigger.h"
 #include "MContinue.h"
 #include "MGeomApply.h"
@@ -69,6 +70,16 @@
 #include "MWriteRootFile.h"
 
+// Filter
+#include "MFDataPhrase.h"
+#include "MFTriggerPattern.h"
+#include "MFilterList.h"
+#include "MFDataMember.h"
+#include "MFDeltaT.h"
+#include "MFSoftwareTrigger.h"
+
+// Parameter container
 #include "MMuonSetup.h"
 #include "MObservatory.h"
+//#include "MTriggerPattern.h"
 #include "MPointingPosCalc.h"
 
@@ -242,4 +253,34 @@
     fill0d.SetNameTab("Sparks");
 
+    // FIXME: This should be replaced by a cut working for all triggers!
+    MTriggerPattern par;   // An empty trigger pattern for older files
+    plist.AddToList(&par); // without MTriggerPattern stored in the file
+
+    // For the effective on-time calculation we don't want SUM-only events
+    MFTriggerPattern fsum;
+    fsum.SetDefault(kTRUE);
+    fsum.DenySumTrigger();
+    fsum.AllowTriggerLvl1();
+    fill9.SetFilter(&fsum);
+
+    // Plot the trigger pattern rates vs. run-number
+    MH3 hrate("MRawRunHeader.fRunNumber", "MTriggerPattern.GetUnprescaled");
+    hrate.SetWeight("1./MRawRunHeader.GetRunLength");
+    hrate.SetName("Rate");
+    hrate.SetTitle("Event rate after cleaning [Hz];Run Number;Trigger Type;");
+    hrate.InitLabels(MH3::kLabelsX);
+    hrate.DefaultLabelY("ERROR");
+    hrate.DefineLabelY( 0, "0");        //  0: No pattern
+    hrate.DefineLabelY( 1, "Trig");     //  1: Lvl1
+    hrate.DefineLabelY( 4, "Trig");     //  4: Lvl2
+    hrate.DefineLabelY( 5, "Trig");     //     Lvl2+Lvl1
+    hrate.DefineLabelY(32, "Sum");      // 32: Sum
+    hrate.DefineLabelY(33, "Trig");     //     Sum+Lvl1
+    hrate.DefineLabelY(36, "Trig");     //     Sum+Lvl2
+    hrate.DefineLabelY(37, "Trig");     //     Sum+Lvl1+Lvl2
+
+    MFillH frate(&hrate, "", "FillRate");
+    frate.SetDrawOption("box");
+
     // ------------------ Setup write task ----------------
 
@@ -260,4 +301,5 @@
     write.AddContainer("MRawEvtHeader",             "Events");
     write.AddContainer("MPointingPos",              "Events");
+    write.AddContainer("MTriggerPattern",           "Events");
 
     // Run Header
@@ -333,4 +375,5 @@
         tlist2.AddToList(&rate);
         tlist2.AddToList(&fillvs);
+        tlist2.AddToList(&fsum);
         tlist2.AddToList(&fill9);
         tlist2.AddToList(&writet);
@@ -358,4 +401,5 @@
     tlist2.AddToList(&fill0d);
     tlist2.AddToList(&fill0b);
+    tlist2.AddToList(&frate);
     tlist2.AddToList(&fill1);
     tlist2.AddToList(&fill2);
@@ -409,9 +453,9 @@
     MHSectorVsTime histdc, histrms;
     histdc.SetNameTime("MTimeCurrents");
-    histdc.SetTitle("Mean of all DC Currents;;<I> [nA]");
+    histdc.SetTitle("Average DC currents of all pixels vs time;;<I> [nA]");
     histdc.SetMinimum(0);
     histdc.SetMaximum(10);
     histrms.SetNameTime("MTimeCurrents");
-    histrms.SetTitle("Mean pedestal rms of all pixels;;<\\sigma_{p}> [phe]");
+    histrms.SetTitle("Average pedestal rms of all pixels vs time;;<\\sigma_{p}> [phe]");
     histrms.SetType(5);
     histrms.SetMinimum(0);
