Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 5563)
+++ trunk/MagicSoft/Mars/Changelog	(revision 5564)
@@ -40,4 +40,13 @@
      - removed kTimeAndCharge flag because it is obsolete (nowhere used)
        and not correctly handled at all
+
+   * callisto.cc, star.cc:
+     - added '--debug-mem' option
+
+   * callisto.rc:
+     - changed such to make it work with the new double-pedestal-loop
+       callisto
+     - default extractor now is Digital Filter
+
 
 
Index: trunk/MagicSoft/Mars/callisto.cc
===================================================================
--- trunk/MagicSoft/Mars/callisto.cc	(revision 5563)
+++ trunk/MagicSoft/Mars/callisto.cc	(revision 5564)
@@ -4,4 +4,5 @@
 #include <TGClient.h>
 #include <TApplication.h>
+#include <TObjectTable.h>
 
 #include "MLog.h"
@@ -52,5 +53,6 @@
     gLog << " Options:" << endl;
     gLog.Usage();
-    gLog << "   --debug-env               Debug setting resources from file" << endl << endl;
+    gLog << "   --debug-env               Debug setting resources from file" << endl;
+    gLog << "   --debug-mem               Debug memory usage" << endl << endl;
     gLog << endl;
     gLog << "   -q                        Quit when job is finished" << endl;
@@ -116,4 +118,5 @@
     //const Bool_t  kPrintOnly  = arg.HasOnlyAndRemove("--print-only");
     const Bool_t  kDebugEnv   = arg.HasOnlyAndRemove("--debug-env");
+    const Bool_t  kDebugMem   = arg.HasOnlyAndRemove("--debug-mem");
 
     const Bool_t  kQuit       = arg.HasOnlyAndRemove("-q");
@@ -194,4 +197,7 @@
         return -1;
     }
+
+    if (kDebugMem)
+        TObject::SetObjectStat(kTRUE);
 
     //
@@ -454,14 +460,21 @@
 
     if (kBatch || kQuit)
-    {
         delete d;
-        return 0;
-    }
-
-    // From now on each 'Close' means: Terminate the application
-    d->SetBit(MStatusDisplay::kExitLoopOnClose);
-
-    // Wait until the user decides to exit the application
-    app.Run(kFALSE);
+    else
+    {
+        // From now on each 'Close' means: Terminate the application
+        d->SetBit(MStatusDisplay::kExitLoopOnClose);
+
+        // Wait until the user decides to exit the application
+        app.Run(kFALSE);
+    }
+
+    if (TObject::GetObjectStat())
+    {
+        TObject::SetObjectStat(kFALSE);
+        gObjectTable->Print();
+    }
+
     return 0;
 }
+
Index: trunk/MagicSoft/Mars/callisto.rc
===================================================================
--- trunk/MagicSoft/Mars/callisto.rc	(revision 5563)
+++ trunk/MagicSoft/Mars/callisto.rc	(revision 5564)
@@ -27,5 +27,6 @@
 # If you don't want it, it is written to the calibration output anyhow.
 # -------------------------------------------------------------------------
-#MJPedestalC.PathOut: .
+#MJPedestalC1.PathOut: .
+#MJPedestalC2.PathOut: .
 
 # -------------------------------------------------------------------------
@@ -42,6 +43,21 @@
 # datacenter is used. (overwrites command line options)
 # -------------------------------------------------------------------------
-#MJPedestalC.PathData:   /data/MAGIC/Period016/
-#MJCalibration.PathData: /data/MAGIC/Period016/
+#MJPedestalC1.PathData:   /data/MAGIC/Period016/
+#MJPedestalC2.PathData:   /data/MAGIC/Period016/
+#MJCalibration.PathData:  /data/MAGIC/Period016/
+
+# -------------------------------------------------------------------------
+# Define here which signal extractor you are going to use for the
+# whole calibration chain
+# -------------------------------------------------------------------------
+MJPedestalC1.ExtractSignal: MExtractTimeAndChargeDigitalFilter
+
+# -------------------------------------------------------------------------
+# In the case of the Digital filter you have to overwrite the default
+# weights file depending on what you are extracting
+# -------------------------------------------------------------------------
+MJPedetslaC2.ExtractSignal.WeightsFile:      msignal/calibration_weights_UV.dat
+MJCalibration.ExtractSignal.WeightsFile:     msignal/calibration_weights_UV.dat
+MJCalibrateSignal.ExtractSignal.WeightsFile: msignal/cosmics_weights.dat
 
 # -------------------------------------------------------------------------
@@ -49,5 +65,5 @@
 # -------------------------------------------------------------------------
 # Switch on relative time calibration
-MJCalibration.RelTimeCalibration: Yes
+#MJCalibration.RelTimeCalibration: Yes
 # Switch on intensity calibration
 #MJCalibration.IntensityCalibration: Yes
@@ -70,8 +86,17 @@
 # could be (if no pedestal file available) a data-file, too.
 # -------------------------------------------------------------------------
-MJPedestalC.ExtractPedestal: MPedCalcPedRun 
-MJPedestalC.ExtractPedestal.PedestalUpdate:    no
-MJPedestalC.ExtractPedestal.ExtractWinFirst:    0
-MJPedestalC.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC1.ExtractPedestal: MPedCalcFromPedRun
+#MJPedestalC1.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC1.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC1.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC1.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC1.ExtractPedestal.CheckWinSize:     29
+
+#MJPedestalC2.ExtractPedestal: MPedCalcFromPedRun
+#MJPedestalC2.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC2.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC2.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC2.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC2.ExtractPedestal.CheckWinSize:     29
 
 # -------------------------------------------------------------------------
@@ -80,21 +105,32 @@
 # could be (if no pedestal file available) a data-file, too.
 # -------------------------------------------------------------------------
-#MJPedestalC.ExtractPedestal: MPedCalcFromLoGain
-#MJPedestalC.ExtractPedestal.PedestalUpdate:   no
-#MJPedestalC.ExtractPedestal.ExtractWinFirst:  15
-#MJPedestalC.ExtractPedestal.ExtractWinSize:    6
-#MJPedestalC.ExtractPedestal.CheckWinFirst:     0
-#MJPedestalC.ExtractPedestal.CheckWinSize:     29
-#MJPedestalC.ExtractPedestal.MaxHiGainVar:     40
-
-# -------------------------------------------------------------------------
-# Configure MJPedestal
+MJPedestalC1.ExtractPedestal: MPedCalcFromLoGain
+#MJPedestalC1.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC1.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC1.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC1.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC1.ExtractPedestal.CheckWinSize:     29
+#MJPedestalC1.ExtractPedestal.MaxHiGainVar:     40
+
+MJPedestalC2.ExtractPedestal: MPedCalcFromLoGain
+#MJPedestalC2.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC2.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC2.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC2.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC2.ExtractPedestal.CheckWinSize:     29
+#MJPedestalC2.ExtractPedestal.MaxHiGainVar:     40
+
+# -------------------------------------------------------------------------
+# Configure MJPedestalC1 and MJPedestalC2
 # -------------------------------------------------------------------------
 # Maximum number of event processed in the loop
-#MJPedestalC.MaxEvents: 1000
+#MJPedestalC1.MaxEvents: 1000
+#MJPedestalC2.MaxEvents: 1000
 # Allow to overwrite existing files with the output file
-#MJPedestalC.AllowOverwrite: No
+#MJPedestalC1.AllowOverwrite: No
+#MJPedestalC2.AllowOverwrite: No
 # Use data runs from the sequence instead of calibration runs
-#MJPedestalC.UseData: No
+#MJPedestalC1.UseData: No
+#MJPedestalC2.UseData: No
 
 
@@ -103,11 +139,9 @@
 # and automatically the data extraction
 # -------------------------------------------------------------------------
-MJCalibration.ExtractSignal: MExtractFixedWindow
-#MJCalibration.ExtractSignal: MExtractTimeAndChargeDigitalFilter
-#MJCalibration.ExtractSignal.WeightsFile: msignal/cosmics_weights.dat
-MJCalibration.ExtractSignal.HiGainFirst:       3
-MJCalibration.ExtractSignal.HiGainLast:       14
-MJCalibration.ExtractSignal.LoGainFirst:       4
-MJCalibration.ExtractSignal.LoGainLast:       13
+#MJCalibration.ExtractSignal: MExtractFixedWindow
+#MJCalibration.ExtractSignal.HiGainFirst:       3
+#MJCalibration.ExtractSignal.HiGainLast:       14
+#MJCalibration.ExtractSignal.LoGainFirst:       4
+#MJCalibration.ExtractSignal.LoGainLast:       13
 #MJCalibration.ExtractSignal.HiGainWindowSize:  6
 #MJCalibration.ExtractSignal.LoGainWindowSize:  6
@@ -120,9 +154,10 @@
 # and automatically the data extraction
 # -------------------------------------------------------------------------
-MJCalibration.ExtractTime: MExtractTimeFastSpline
-MJCalibration.ExtractTime.HiGainFirst:       0
-MJCalibration.ExtractTime.HiGainLast:        7
-MJCalibration.ExtractTime.LoGainFirst:       3
-MJCalibration.ExtractTime.LoGainLast:        8
+#MJCalibration.ExtractTime: <dummy>
+#MJCalibration.ExtractTime: MExtractTimeFastSpline
+#MJCalibration.ExtractTime.HiGainFirst:       0
+#MJCalibration.ExtractTime.HiGainLast:        7
+#MJCalibration.ExtractTime.LoGainFirst:       3
+#MJCalibration.ExtractTime.LoGainLast:        8
 #MJCalibration.ExtractTime.WindowSizeHiGain:  6
 #MJCalibration.ExtractTime.WindowSizeLoGain:  6
@@ -141,5 +176,4 @@
 #MJCalibration.MCalibrationChargeCalc.LambdaCheckLimit:   0.5
 #MJCalibration.MCalibrationChargeCalc.PheErrLimit:        3.5
-#//MCalibrationChargeCalc.PulserColor       ( const MCalibrationCam::PulserColor_t col ) { fPulserColor       = col;   }
 
 # -------------------------------------------------------------------------
@@ -162,21 +196,28 @@
 # -------------------------------------------------------------------------
 #MJCalibrateSignal.PathOut:  .
-#MJPedestalY.PathOut:        .
-#MJPedestalY.PathData:       /data/MAGIC/Period016/
+#MJPedestalY1.PathOut:        .
+#MJPedestalY2.PathOut:        .
+#MJPedestalY1.PathData:      /data/MAGIC/Period016/
+#MJPedestalY2.PathData:      /data/MAGIC/Period016/
 #MJCalibrateSignal.PathData: /data/MAGIC/Period016/
 #MJCalibrateSignal.PathIn:   .
 
-MJPedestalY.UseData:   Yes
-MJPedestalY.MaxEvents: 750
-
-MJPedestalY.ExtractPedestal: MPedCalcFromLoGain
-MJPedestalY.ExtractPedestal.PedestalUpdate:   no
-
-# -------------------------------------------------------------------------
-# Setup pedestal extraktor for running through data
-# -------------------------------------------------------------------------
-MJCalibrateSignal.MPedCalcFromLoGain: MPedCalcFromLoGain
-MJCalibrateSignal.ExtractPedestal.PedestalUpdate:   yes
-MJCalibrateSignal.ExtractPedestal.NumEventsDump:   500
+# -------------------------------------------------------------------------
+# If you want to change the behaviour of the pedestal extraction...
+# -------------------------------------------------------------------------
+#MJPedestalY1.UseData:   Yes
+#MJPedestalY2.UseData:   Yes
+#MJPedestalY1.MaxEvents: 750
+#MJPedestalY2.MaxEvents: 750
+
+#MJPedestalY.ExtractPedestal: MPedCalcFromLoGain
+#MJPedestalY.ExtractPedestal.PedestalUpdate:   no
+
+# -------------------------------------------------------------------------
+# Setup pedestal extractor for running through data
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.ExtractPedestal: MPedCalcFromLoGain
+#MJCalibrateSignal.ExtractPedestal.PedestalUpdate:   yes
+#MJCalibrateSignal.ExtractPedestal.NumEventsDump:   500
 #MJCalibrateSignal.ExtractPedestal.ExtractWinFirst:  15
 #MJCalibrateSignal.ExtractPedestal.ExtractWinSize:    6
@@ -188,16 +229,16 @@
 # Setup calibration of data
 # -------------------------------------------------------------------------
-MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
-MJCalibrateSignal.MCalibrateData.CalibrationMode: Default
+#MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
+#MJCalibrateSignal.MCalibrateData.CalibrationMode: Default
 
 # -------------------------------------------------------------------------
 # Setup level for determining of bad pixels
 # -------------------------------------------------------------------------
-# MJCalibrateSignal.MBadPixelsCalc.PedestalLevel:      3.0
-MJCalibrateSignal.MBadPixelsTreat.NumMinNeighbors:    2
-MJCalibrateSignal.MBadPixelsTreat.UseInterpolation:   yes
-MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalEvt: yes
-MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalRun: no
-MJCalibrateSignal.MBadPixelsTreat.ProcessTimes:       yes
+#MJCalibrateSignal.MBadPixelsCalc.PedestalLevel:      3.0
+#MJCalibrateSignal.MBadPixelsTreat.NumMinNeighbors:    2
+#MJCalibrateSignal.MBadPixelsTreat.UseInterpolation:   yes
+#MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalEvt: yes
+#MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalRun: no
+#MJCalibrateSignal.MBadPixelsTreat.ProcessTimes:       yes
 #MJCalibrateSignal.MBadPixelsTreat.UseCentralPixel:    no
 #MJCalibrateSignal.MBadPixelsTreat.HardTreatment:      no
Index: trunk/MagicSoft/Mars/star.cc
===================================================================
--- trunk/MagicSoft/Mars/star.cc	(revision 5563)
+++ trunk/MagicSoft/Mars/star.cc	(revision 5564)
@@ -4,4 +4,5 @@
 #include <TGClient.h>
 #include <TApplication.h>
+#include <TObjectTable.h>
 
 #include "MLog.h"
@@ -47,5 +48,6 @@
     gLog << " Options:" << endl;
     gLog.Usage();
-    gLog << "   --debug-env               Debug setting resources from file" << endl << endl;
+    gLog << "   --debug-env               Debug setting resources from file" << endl;
+    gLog << "   --debug-mem               Debug memory usage" << endl << endl;
     gLog << endl;
     gLog << " Input Options:" << endl;
@@ -90,4 +92,5 @@
     //const Bool_t  kPrintOnly  = arg.HasOnlyAndRemove("--print-only");
     const Bool_t  kDebugEnv   = arg.HasOnlyAndRemove("--debug-env");
+    const Bool_t  kDebugMem   = arg.HasOnlyAndRemove("--debug-mem");
 
     const Bool_t  kQuit       = arg.HasOnlyAndRemove("-q");
@@ -203,40 +206,51 @@
     d->SetTitle(kSequence);
 
-    //
-    // Do calibration
-    //
-    MJStar job(Form("MJStar #%d", seq.GetSequence()));
-    job.SetSequence(seq);
-    job.SetEnv(kConfig);
-    job.SetEnvDebug(kDebugEnv);
-    job.SetDisplay(d);;
-    job.SetOverwrite(kOverwrite);
-    job.SetPathOut(kOutpath);
-    job.SetPathData(kInpath);
-    // job.SetPathIn(kInpath); // not yet needed
-
-    if (!job.ProcessFile(kIsMC))
-    {
-        gLog << err << "Calculation of image parameters failed." << endl << endl;
-        return -1;
-    }
-
-    if (!job.GetDisplay())
-    {
-        gLog << warn << "Display closed by user... execution aborted." << endl << endl;
-        return 1;
+    if (kDebugMem)
+        TObject::SetObjectStat(kTRUE);
+
+    //
+    // Do calibration in a block (debug mem)
+    //
+    {
+        MJStar job(Form("MJStar #%d", seq.GetSequence()));
+        job.SetSequence(seq);
+        job.SetEnv(kConfig);
+        job.SetEnvDebug(kDebugEnv);
+        job.SetDisplay(d);;
+        job.SetOverwrite(kOverwrite);
+        job.SetPathOut(kOutpath);
+        job.SetPathData(kInpath);
+        // job.SetPathIn(kInpath); // not yet needed
+
+        if (!job.ProcessFile(kIsMC))
+        {
+            gLog << err << "Calculation of image parameters failed." << endl << endl;
+            return -1;
+        }
+
+        if (!job.GetDisplay())
+        {
+            gLog << warn << "Display closed by user... execution aborted." << endl << endl;
+            return 1;
+        }
     }
 
     if (kBatch || kQuit)
-    {
         delete d;
-        return 0;
-    }
-
-    // From now on each 'Close' means: Terminate the application
-    d->SetBit(MStatusDisplay::kExitLoopOnClose);
-
-    // Wait until the user decides to exit the application
-    app.Run(kFALSE);
+    else
+    {
+        // From now on each 'Close' means: Terminate the application
+        d->SetBit(MStatusDisplay::kExitLoopOnClose);
+
+        // Wait until the user decides to exit the application
+        app.Run(kFALSE);
+    }
+
+    if (TObject::GetObjectStat())
+    {
+        TObject::SetObjectStat(kFALSE);
+        gObjectTable->Print();
+    }
+
     return 0;
 }
