Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 8517)
+++ trunk/MagicSoft/Mars/Changelog	(revision 8518)
@@ -18,4 +18,31 @@
 
                                                  -*-*- END OF LINE -*-*-
+ 2007/05/16 Thomas Bretz
+
+   * callisto.cc:
+     - switch of storage of job2 only in movie mode
+
+   * mjobs/MJCalibrateSignal.[h,cc]:
+     - do not write the interleaced containers anymore
+       they have no real meaning if only the ones of the last
+       calibration are written
+     - removed obsolete references to MCalibrationPulseTimeCam
+     - changed default writingmode for the signal file to UPDATE
+
+   * mjobs/MJCalibration.cc, mjobs/MJCut.cc:
+     - write display by adding it to the array
+
+   * mjobs/MJPedestal.[h,cc]:
+     - added const qualifier to argument of DisplayResult
+     - removed obsolete WriteResult
+     - added a new function WritePulsePos
+     - call WritePulsePos if PulsePosCheck is enabled
+
+   * mjobs/MJob.[h,cc]:
+     - removed automatic writing of fDisplay from WriteContainer
+     - added a new function WriteDisplay
+
+
+
  2007/05/14 Stefan Ruegamer
 
Index: trunk/MagicSoft/Mars/NEWS
===================================================================
--- trunk/MagicSoft/Mars/NEWS	(revision 8517)
+++ trunk/MagicSoft/Mars/NEWS	(revision 8518)
@@ -2,4 +2,9 @@
 
  *** <cvs>
+
+   - database: the position used for the pulse pos check was missing 
+     in the callisto output and could thus not be filled into the DB.
+     Also the old values seemed not exactly the PulsePos used for 
+     teh check.
 
 
Index: trunk/MagicSoft/Mars/callisto.cc
===================================================================
--- trunk/MagicSoft/Mars/callisto.cc	(revision 8517)
+++ trunk/MagicSoft/Mars/callisto.cc	(revision 8518)
@@ -514,5 +514,5 @@
         //
         MJPedestal job2(Form("MJPedestalY2 #%d", seq.GetSequence()));
-        job2.SetNoStorage();
+        job2.SetNoStorage(kMovie);
         job2.SetSequence(seq);
         job2.SetEnv(&env);
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 8518)
@@ -62,5 +62,4 @@
 #include "MCalibrationRelTimeCam.h"
 #include "MCalibrationChargePINDiode.h"
-#include "MCalibrationPulseTimeCam.h"
 #include "MCalibrationPatternDecode.h"
 
@@ -144,11 +143,14 @@
 }
 
-Bool_t MJCalibrateSignal::WriteResult(TObjArray &cont)
+Bool_t MJCalibrateSignal::WriteResult() const
 {
-  if (IsNoStorage() || fIsMovieMode)
-    return kTRUE;
-
-  const TString name(Form("signal%08d.root", fSequence.GetSequence()));
-  return WriteContainer(cont, name);
+    if (IsNoStorage() || fIsMovieMode)
+        return kTRUE;
+
+    // FIXME: This is not nice because it will update the signal
+    // file always. Which might make the usage outside of
+    // callisto difficult.
+    const TString name(Form("signal%08d.root", fSequence.GetSequence()));
+    return WriteDisplay(name, "UPDATE");
 }
 
@@ -263,5 +265,5 @@
     MCalibrationRelTimeCam     tmcam;
     //MCalibrationHiLoCam        hilcam;
-    MCalibrationPulseTimeCam   pulcam;
+    //MCalibrationPulseTimeCam   pulcam;
 
     MBadPixelsCam              badpix;
@@ -346,5 +348,5 @@
     plist.AddToList(&calibcont);       // Using AddToList(TObjArray *)
     plist.AddToList(&interlacedcont);  // Using AddToList(TObjArray *)
-    plist.AddToList(&pulcam);
+    //plist.AddToList(&pulcam);
 
     // Setup Tasklist
@@ -872,6 +874,6 @@
 	//    hilocam[fCheckedPixId].DrawClone("");
       }
+    interlacedcont.Add(&pulcam);
     */
-    interlacedcont.Add(&pulcam);
 
     //if (fIsHiLoCalibration)
@@ -884,5 +886,5 @@
     //    interlacedcont.Add(plist.FindObject("MHCalibrationHiLoCam"));
 
-    if (!WriteResult(interlacedcont))
+    if (!WriteResult())
         return kFALSE;
 
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h	(revision 8518)
@@ -30,5 +30,5 @@
     void   DisplayResult(MParList &plist);
 
-    Bool_t WriteResult(TObjArray &cont);
+    Bool_t WriteResult() const;
     Bool_t ReadCalibration(TObjArray &o, MBadPixelsCam &bpix,
                            MExtractor* &ext1, MExtractor* &ext2, TString &geom) const;
Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 8518)
@@ -2024,4 +2024,7 @@
     }
 
+    if (fDisplay)
+        cont.Add(fDisplay);
+
     return WriteContainer(cont, GetOutputFileName(), "UPDATE");
 }
@@ -2029,24 +2032,24 @@
 void MJCalibration::DisplayDoubleProject(MHCamera *cam, const char* whatsmall, const char* whatbig) const
 {
-  
+
   TArrayI inner(1);
   inner[0] = 0;
-  
+
   TArrayI outer(1);
   outer[0] = 1;
-          
+
   TArrayI s1(3);
   s1[0] = 6;
   s1[1] = 1;
   s1[2] = 2;
-  
+
   TArrayI s2(3);
   s2[0] = 3;
   s2[1] = 4;
   s2[2] = 5;
-  
+
   TVirtualPad *pad = gPad;
   pad->Divide(2,1);
-  
+
   TH1D *inout[2];
 
@@ -2056,5 +2059,5 @@
       gPad->SetBorderMode(0);
       gPad->SetTicks();
-      
+
       inout[i] = cam->ProjectionS(TArrayI(), TArrayI(1,&i), i==0 ? "Inner" : "Outer");
       FixDataCheckHist(inout[i]);
@@ -2081,5 +2084,5 @@
 
       TLegend *leg2 = new TLegend(0.55,0.4,0.99,0.6);
-      
+
       //
       // Display the two half of the camera separately
@@ -2088,5 +2091,5 @@
       half[0] = cam->ProjectionS(s1, TArrayI(1,&i), "Sector 6-1-2");
       half[1] = cam->ProjectionS(s2, TArrayI(1,&i), "Sector 3-4-5");
-      
+
       for (int j=0; j<2; j++)
         {
Index: trunk/MagicSoft/Mars/mjobs/MJCut.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 8518)
@@ -316,4 +316,7 @@
         }
     }
+
+    if (fDisplay)
+        arr.Add(fDisplay);
 
     return WriteContainer(arr, fname, "UPDATE");
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 8518)
@@ -201,5 +201,5 @@
 // If Display type "kDataCheck" was chosen, also the reference lines are displayed.
 //
-void MJPedestal::DisplayResult(MParList &plist)
+void MJPedestal::DisplayResult(const MParList &plist)
 {
     if (!fDisplay)
@@ -825,21 +825,14 @@
 //---------------------------------------------------------------------------------
 //
-// Try to write the created MPedestalCam in the output file. 
-// If possible, also an MBadPixelsCam and the corresponding display is written.
-//
-// In case of Storage type "kNoStorage" or if any of the containers
-// cannot be written, return kFALSE, otherwise kTRUE.
-//
-Bool_t MJPedestal::WriteResult()
+Bool_t MJPedestal::WritePulsePos(TObject *obj) const
 {
     if (IsNoStorage())
         return kTRUE;
 
-    TObjArray cont;
-
-    cont.Add(&fPedestalCamOut);
-    cont.Add(&fBadPixels);
-
-    return WriteContainer(cont, GetOutputFileName(), fOverwrite?"RECREATE":"NEW");
+    const TString name(Form("signal%08d.root", fSequence.GetSequence()));
+
+    TObjArray arr;
+    arr.Add(obj);
+    return WriteContainer(arr, name, fOverwrite?"RECREATE":"NEW");
 }
 
@@ -869,4 +862,5 @@
     Float_t rmspulsetime   = 1.0;
 
+    MCalibrationPulseTimeCam *cam = NULL;
     if (!fSequence.IsMonteCarlo())
     {
@@ -887,5 +881,5 @@
         }
 
-        MCalibrationPulseTimeCam *cam = (MCalibrationPulseTimeCam*)plist.FindObject("MCalibrationPulseTimeCam");
+        cam = (MCalibrationPulseTimeCam*)plist.FindObject("MCalibrationPulseTimeCam");
         if (!cam)
         {
@@ -897,4 +891,7 @@
         rmspulsetime  = cam->GetAverageArea(0).GetHiGainRms();
     }
+
+    if (!WritePulsePos(cam))
+        return kFALSE;
 
     *fLog << all << "Mean pulse time (" << (fSequence.IsMonteCarlo()?"MC":"cosmics") << "): ";
@@ -1274,6 +1271,6 @@
         DisplayResult(plist);
 
-    if (!WriteResult())
-        return kFALSE;
+    //    if (!WriteResult())
+    //        return kFALSE;
 
     const Int_t rc = PulsePosCheck(plist);
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.h	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.h	(revision 8518)
@@ -76,8 +76,9 @@
     MExtractor *ReadCalibration();
     Bool_t ReadPedestalCam();
-    Bool_t WriteResult();
+    //Bool_t WriteResult();
+    Bool_t WritePulsePos(TObject *obj) const;
     //Bool_t WriteEventloop(MEvtLoop &evtloop) const;
 
-    void   DisplayResult(MParList &plist);
+    void   DisplayResult(const MParList &plist);
     void   DisplayReferenceLines(MHCamera *cam, const Int_t what) const;
     void   DisplayOutliers(TH1D *hist) const;
Index: trunk/MagicSoft/Mars/mjobs/MJob.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJob.cc	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJob.cc	(revision 8518)
@@ -302,8 +302,15 @@
     }
 
-    if (fDisplay)
-        cont.Add((TObject*)(fDisplay));
-
     return WriteContainer(cont);
+}
+
+Bool_t MJob::WriteDisplay(const char *name, const char *option, const int compr) const
+{
+    if (!fDisplay)
+        return kTRUE;
+
+    TObjArray arr;
+    arr.Add((TObject*)(fDisplay));
+    return WriteContainer(arr, name, option, compr);
 }
 
Index: trunk/MagicSoft/Mars/mjobs/MJob.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJob.h	(revision 8517)
+++ trunk/MagicSoft/Mars/mjobs/MJob.h	(revision 8518)
@@ -49,4 +49,5 @@
     Bool_t ReadContainer(TCollection &list) const;
     Bool_t WriteContainer(TCollection &cont, const char *name, const char *option="RECREATE", const int compr=2) const;
+    Bool_t WriteDisplay(const char *name, const char *option="RECREATE", const int comp=2) const;
 
 public:
