Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 4188)
+++ trunk/MagicSoft/Mars/Changelog	(revision 4189)
@@ -18,4 +18,17 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2004/05/26: Markus Gaug
+ 
+   * mjobs/MGCamDisplays.[h,cc]
+   * mhist/MHCamera.[h,cc]
+     - put the last function (CamDraw) of MGCamDisplays into MHCamera 
+       and removed MGCamDisplays.
+
+   * mjobs/MJPedestal.[h,cc]
+   * mjobs/MJCalibration.[h,cc]
+   * mjobs/MJExtractCalibTest.[h,cc]
+     - don't derive from MGCamDisplays any more.
+
 
  2004/05/26: Javier Rico
Index: trunk/MagicSoft/Mars/mhist/MHCamera.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 4188)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 4189)
@@ -68,4 +68,5 @@
 #include <TH1.h>
 #include <TF1.h>
+#include <TCanvas.h>
 
 #include "MLog.h"
@@ -1850,2 +1851,55 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// Draw the MHCamera into the MStatusDisplay: 
+// 
+// 1) Draw it as histogram (MHCamera::DrawCopy("hist")
+// 2) Draw it as a camera, with MHCamera::SetPrettyPalette() set. 
+// 3) If "rad" is not zero, draw its values vs. the radius from the camera center. 
+//    (DrawRadialProfile())
+// 4) Depending on the variable "fit", draw the values projection on the y-axis
+//    (DrawProjection()):
+//    0: don't draw
+//    1: Draw fit to Single Gauss (for distributions flat-fielded over the whole camera)
+//    2: Draw and fit to Double Gauss (for distributions different for inner and outer pixels)
+//    3: Draw and fit to Triple Gauss (for distributions with inner, outer pixels and outliers)
+//    4: Draw and fit to Polynomial grade 0: (for the probability distributions)
+//    >4: Draw and don;t fit.
+//
+void MHCamera::CamDraw(TCanvas &c, const Int_t x, const Int_t y, 
+                       const Int_t fit, const Int_t rad, TObject *notify)
+{
+
+  c.cd(x);
+  gPad->SetBorderMode(0);
+  gPad->SetTicks();
+  MHCamera *obj1=(MHCamera*)DrawCopy("hist");
+  obj1->SetDirectory(NULL);
+  
+  if (notify)
+    obj1->AddNotify(notify);
+
+  c.cd(x+y);
+  gPad->SetBorderMode(0);
+  obj1->SetPrettyPalette();
+  obj1->Draw();
+
+  if (rad)
+    {
+      c.cd(x+2*y);
+      gPad->SetBorderMode(0);
+      gPad->SetTicks();
+      DrawRadialProfile();
+    }
+  
+  if (!fit)
+    return;
+  
+  c.cd(rad ? x+3*y : x+2*y);
+  gPad->SetBorderMode(0);
+  gPad->SetTicks();
+  DrawProjection(fit);
+}
+
+
Index: trunk/MagicSoft/Mars/mhist/MHCamera.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.h	(revision 4188)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.h	(revision 4189)
@@ -16,4 +16,7 @@
 #ifndef ROOT_TH1
 #include <TH1.h>
+#endif
+#ifndef ROOT_TCanvas
+#include <TCanvas.h>
 #endif
 
@@ -249,4 +252,8 @@
     }
     TProfile *RadialProfileS(const TArrayI &sector, const TArrayI &aidx, const char *name="_rad", const Int_t nbins=25) const;
+
+    void CamDraw(TCanvas &c, const Int_t x, const Int_t y, 
+                 const Int_t fit, const Int_t rad=0,
+                 TObject *notify=NULL);             
     
     const MGeomCam &GetGeomCam() const { return *fGeomCam; }
Index: trunk/MagicSoft/Mars/mjobs/MGCamDisplays.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MGCamDisplays.h	(revision 4188)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#ifndef MARS_MGCamDisplays
-#define MARS_MGCamDisplays
-
-#ifndef MARS_MAGIC
-#include "MAGIC.h"
-#endif
-
-class TCanvas;
-class MHCamera;
-class MGCamDisplays
-{
-protected:
-
-  void CamDraw(TCanvas &c, const Int_t x, const Int_t y, const MHCamera &cam1,
-               const Int_t fit, const Int_t rad=0,
-               TObject *notify=NULL);                    // Draw histograms into the MStatusDisplay
-
-public:
-  
-  MGCamDisplays();
-  
-  ClassDef(MGCamDisplays, 0) // Tools to display the camera in an MStatusDisplay
-};
-
-#endif
Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 4188)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 4189)
@@ -420,7 +420,7 @@
         c1.Divide(3, 3);
         
-        CamDraw(c1, 1, 3, disp1, 2);
-        CamDraw(c1, 2, 3, disp4, 2);
-        CamDraw(c1, 3, 3, disp28, 2);
+        disp1.CamDraw(c1, 1, 3, 2);
+        disp4.CamDraw(c1, 2, 3, 2);
+        disp28.CamDraw(c1, 3, 3, 2);
 
         //  F-Factor
@@ -428,7 +428,7 @@
         c2.Divide(3,4);
         
-        CamDraw(c2, 1, 3, disp6, 2, 1);
-        CamDraw(c2, 2, 3, disp7, 2, 1);
-        CamDraw(c2, 3, 3, disp8, 2, 1);
+        disp6.CamDraw(c2, 1, 3,  2, 1);
+        disp7.CamDraw(c2, 2, 3,  2, 1);
+        disp8.CamDraw(c2, 3, 3,  2, 1);
 
         // QE's
@@ -436,7 +436,7 @@
         c3.Divide(3,4);
 
-        CamDraw(c3, 1, 3, disp8,  2, 1);
-        CamDraw(c3, 2, 3, disp9,  2, 1);
-        CamDraw(c3, 3, 3, disp10, 2, 1);
+        disp8.CamDraw(c3, 1, 3,  2, 1);
+        disp9.CamDraw(c3, 2, 3,  2, 1);
+        disp10.CamDraw(c3, 3, 3,  2, 1);
 
         // Defects
@@ -448,6 +448,6 @@
         //        CamDraw(c4, 2, 3, disp24, 0);
         //        CamDraw(c4, 3, 3, disp25, 0);
-        CamDraw(c4, 1, 2, disp24, 0);
-        CamDraw(c4, 2, 2, disp25, 0);
+        disp24.CamDraw(c4, 1, 2, 0);
+        disp25.CamDraw(c4, 2, 2, 0);
 
         if (fRelTimes)
@@ -457,6 +457,6 @@
             c5.Divide(2,4);
             
-            CamDraw(c5, 1, 2, disp30, 2);
-            CamDraw(c5, 2, 2, disp31, 2);
+            disp30.CamDraw(c5, 1, 2, 2);
+            disp31.CamDraw(c5, 2, 2, 2);
           }
 
@@ -472,6 +472,6 @@
         c11.Divide(2, 4);
         
-        CamDraw(c11, 1, 2, disp1, 5, 1);
-        CamDraw(c11, 2, 2, disp2, 5, 1);
+        disp1.CamDraw(c11, 1, 2, 5, 1);
+        disp2.CamDraw(c11, 2, 2, 5, 1);
         
         // Reduced Sigmas
@@ -479,6 +479,6 @@
         c12.Divide(2,4);
         
-        CamDraw(c12, 1, 2, disp3, 5, 1);
-        CamDraw(c12, 2, 2, disp4, 5, 1);
+        disp3.CamDraw(c12, 1, 2, 5, 1);
+        disp4.CamDraw(c12, 2, 2, 5, 1);
         
         //  F-Factor
@@ -486,7 +486,7 @@
         c13.Divide(3,4);
         
-        CamDraw(c13, 1, 3, disp5, 5, 1);
-        CamDraw(c13, 2, 3, disp6, 5, 1);
-        CamDraw(c13, 3, 3, disp7, 5, 1);
+        disp5.CamDraw(c13, 1, 3, 5, 1);
+        disp6.CamDraw(c13, 2, 3, 5, 1);
+        disp7.CamDraw(c13, 3, 3, 5, 1);
         
         // QE's
@@ -494,8 +494,8 @@
         c14.Divide(4,4);
         
-        CamDraw(c14, 1, 4, disp8,  5, 1);
-        CamDraw(c14, 2, 4, disp9,  5, 1);
-        CamDraw(c14, 3, 4, disp10, 5, 1);
-        CamDraw(c14, 4, 4, disp11, 5, 1);
+        disp8.CamDraw(c14, 1, 4, 5, 1);
+        disp9.CamDraw(c14, 2, 4, 5, 1);
+        disp10.CamDraw(c14, 3, 4, 5, 1);
+        disp11.CamDraw(c14, 4, 4, 5, 1);
         
         // Defects
@@ -505,14 +505,14 @@
         
         /*
-        CamDraw(c15, 1, 5, disp23, 0);
-        CamDraw(c15, 2, 5, disp24, 0);
-        CamDraw(c15, 3, 5, disp25, 0);
-        CamDraw(c15, 4, 5, disp26, 0);
-        CamDraw(c15, 5, 5, disp27, 0);
+        disp23.CamDraw(c15, 1, 5, 0);
+        disp24.CamDraw(c15, 2, 5, 0);
+        disp25.CamDraw(c15, 3, 5, 0);
+        disp26.CamDraw(c15, 4, 5, 0);
+        disp27.CamDraw(c15, 5, 5, 0);
         */
-        CamDraw(c15, 1, 4, disp24, 0);
-        CamDraw(c15, 2, 4, disp25, 0);
-        CamDraw(c15, 3, 4, disp26, 0);
-        CamDraw(c15, 4, 4, disp27, 0);
+        disp24.CamDraw(c15, 1, 4, 0);
+        disp25.CamDraw(c15, 2, 4, 0);
+        disp26.CamDraw(c15, 3, 4, 0);
+        disp27.CamDraw(c15, 4, 4, 0);
         
         // Abs. Times
@@ -520,6 +520,6 @@
         c16.Divide(2,3);
         
-        CamDraw(c16, 1, 2, disp28, 5);
-        CamDraw(c16, 2, 2, disp29, 5);
+        disp28.CamDraw(c16, 1, 2, 5);
+        disp29.CamDraw(c16, 2, 2, 5);
 
         if (fRelTimes)
@@ -529,6 +529,6 @@
             c17.Divide(2,4);
             
-            CamDraw(c17, 1, 2, disp30, 5, 1);
-            CamDraw(c17, 2, 2, disp31, 5, 1);
+            disp30.CamDraw(c17, 1, 2, 5, 1);
+            disp31.CamDraw(c17, 2, 2, 5, 1);
           }
         
@@ -569,6 +569,6 @@
         c21.Divide(2, 4);
         
-        CamDraw(c21, 1, 2, disp1, 2, 1);
-        CamDraw(c21, 2, 2, disp2, 2, 1);
+        disp1.CamDraw(c21, 1, 2, 2, 1);
+        disp2.CamDraw(c21, 2, 2, 2, 1);
         
         // Reduced Sigmas
@@ -576,6 +576,6 @@
         c23.Divide(2,4);
         
-        CamDraw(c23, 1, 2, disp3, 2, 1);
-        CamDraw(c23, 2, 2, disp4, 2, 1);
+        disp3.CamDraw(c23, 1, 2, 2, 1);
+        disp4.CamDraw(c23, 2, 2, 2, 1);
         
         //  F-Factor
@@ -583,7 +583,7 @@
         c24.Divide(3,4);
         
-        CamDraw(c24, 1, 3, disp5, 2, 1);
-        CamDraw(c24, 2, 3, disp6, 2, 1);
-        CamDraw(c24, 3, 3, disp7, 2, 1);
+        disp5.CamDraw(c24, 1, 3, 2, 1);
+        disp6.CamDraw(c24, 2, 3, 2, 1);
+        disp7.CamDraw(c24, 3, 3, 2, 1);
         
         // QE's
@@ -591,8 +591,8 @@
         c25.Divide(4,4);
         
-        CamDraw(c25, 1, 4, disp8,  2, 1);
-        CamDraw(c25, 2, 4, disp9,  2, 1);
-        CamDraw(c25, 3, 4, disp10, 2, 1);
-        CamDraw(c25, 4, 4, disp11, 2, 1);
+        disp8.CamDraw(c25, 1, 4, 2, 1);
+        disp9.CamDraw(c25, 2, 4, 2, 1);
+        disp10.CamDraw(c25, 3, 4, 2, 1);
+        disp11.CamDraw(c25, 4, 4, 2, 1);
         
         // Validity
@@ -600,8 +600,8 @@
         c26.Divide(4,2);
         
-        CamDraw(c26, 1, 4, disp12, 0);
-        CamDraw(c26, 2, 4, disp13, 0);
-        CamDraw(c26, 3, 4, disp14, 0);
-        CamDraw(c26, 4, 4, disp15, 0);
+        disp12.CamDraw(c26, 1, 4, 0);
+        disp13.CamDraw(c26, 2, 4, 0);
+        disp14.CamDraw(c26, 3, 4, 0);
+        disp15.CamDraw(c26, 4, 4, 0);
         
         // Other info
@@ -609,7 +609,7 @@
         c27.Divide(3,3);
         
-        CamDraw(c27, 1, 3, disp16, 0);
-        CamDraw(c27, 2, 3, disp17, 1);
-        CamDraw(c27, 3, 3, disp18, 1);
+        disp16.CamDraw(c27, 1, 3, 0);
+        disp17.CamDraw(c27, 2, 3, 1);
+        disp18.CamDraw(c27, 3, 3, 1);
         
         // Pickup
@@ -617,8 +617,8 @@
         c28.Divide(4,2);
         
-        CamDraw(c28, 1, 4, disp19, 0);
-        CamDraw(c28, 2, 4, disp20, 0);
-        CamDraw(c28, 3, 4, disp21, 0);
-        CamDraw(c28, 4, 4, disp22, 0);
+        disp19.CamDraw(c28, 1, 4, 0);
+        disp20.CamDraw(c28, 2, 4, 0);
+        disp21.CamDraw(c28, 3, 4, 0);
+        disp22.CamDraw(c28, 4, 4, 0);
         
         // Defects
@@ -627,8 +627,8 @@
         c29.Divide(4,2);
         
-        CamDraw(c29, 1, 4, disp24, 0);
-        CamDraw(c29, 2, 4, disp25, 0);
-        CamDraw(c29, 3, 4, disp26, 0);
-        CamDraw(c29, 4, 4, disp27, 0);
+        disp24.CamDraw(c29, 1, 4, 0);
+        disp25.CamDraw(c29, 2, 4, 0);
+        disp26.CamDraw(c29, 3, 4, 0);
+        disp27.CamDraw(c29, 4, 4, 0);
         
         // Abs. Times
@@ -636,6 +636,6 @@
         c30.Divide(2,3);
         
-        CamDraw(c30, 1, 2, disp28, 2);
-        CamDraw(c30, 2, 2, disp29, 1);
+        disp28.CamDraw(c30, 1, 2, 2);
+        disp29.CamDraw(c30, 2, 2, 1);
 
         if (fRelTimes)
@@ -645,7 +645,7 @@
             c31.Divide(3,4);
             
-            CamDraw(c31, 1, 3, disp30, 2, 1);
-            CamDraw(c31, 2, 3, disp31, 2, 1);
-            CamDraw(c31, 3, 3, disp32, 4, 1);
+            disp30.CamDraw(c31, 1, 3, 2, 1);
+            disp31.CamDraw(c31, 2, 3, 2, 1);
+            disp32.CamDraw(c31, 3, 3, 4, 1);
 
             // Time Defects
@@ -653,6 +653,6 @@
             c32.Divide(2,2);
             
-            CamDraw(c32, 1, 2, disp33,0);
-            CamDraw(c32, 2, 2, disp34,0);
+            disp33.CamDraw(c32, 1, 2, 0);
+            disp34.CamDraw(c32, 2, 2, 0);
 
             MHCalibrationCam *cam = (MHCalibrationCam*)plist.FindObject("MHCalibrationRelTimeCam");
@@ -1099,4 +1099,5 @@
 
   DisplayResult(plist);
+
   
   if (!WriteResult())
Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.h	(revision 4188)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.h	(revision 4189)
@@ -14,7 +14,4 @@
 #include "MBadPixelsCam.h"
 #endif
-#ifndef MARS_MGCamDisplays
-#include "MGCamDisplays.h"
-#endif
 
 class MRunIter;
@@ -23,5 +20,5 @@
 class MExtractor;
 class MExtractTime;
-class MJCalibration : public MParContainer, public MGCamDisplays
+class MJCalibration : public MParContainer
 {
 private:
Index: trunk/MagicSoft/Mars/mjobs/MJExtractCalibTest.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJExtractCalibTest.cc	(revision 4188)
+++ trunk/MagicSoft/Mars/mjobs/MJExtractCalibTest.cc	(revision 4189)
@@ -133,8 +133,8 @@
   c.Divide(4,4);
 
-  CamDraw(c, 1, 4, disp1, 2, 1);
-  CamDraw(c, 2, 4, disp2, 2, 1);        
-  CamDraw(c, 3, 4, disp3, 1, 1);        
-  CamDraw(c, 4, 4, disp4, 2, 1);        
+  disp1.CamDraw(c, 1, 4, 2, 1);
+  disp2.CamDraw(c, 2, 4, 2, 1);        
+  disp3.CamDraw(c, 3, 4, 1, 1);        
+  disp4.CamDraw(c, 4, 4, 2, 1);        
 
   return;
@@ -181,6 +181,6 @@
   c.Divide(4,2);
 
-  CamDraw(c, 1, 2, disp1, 5, 1);
-  CamDraw(c, 2, 2, disp2, 5, 1);        
+  disp1.CamDraw(c, 1, 2,  5, 1);
+  disp2.CamDraw(c, 2, 2,  5, 1);        
 
   return;
@@ -427,36 +427,37 @@
 Bool_t MJExtractCalibTest::ReadPedPhotCam()
 {
-    const TString fname = GetOutputFile();
-
-    if (gSystem->AccessPathName(fname, kFileExists))
-    {
-        *fLog << err << "Input file " << fname << " doesn't exist." << endl;
-        return kFALSE;
-    }
-
-    *fLog << inf << "Reading from file: " << fname << endl;
-
-    TFile file(fname, "READ");
-    if (fPedPhotCam.Read()<=0)
-    {
-        *fLog << "Unable to read MPedPhotCam from " << fname << endl;
-        return kFALSE;
-    }
-
-    if (file.FindKey("MBadPixelsCam"))
-    {
-        MBadPixelsCam bad;
-        if (bad.Read()<=0)
+
+  const TString fname = GetOutputFile();
+  
+  if (gSystem->AccessPathName(fname, kFileExists))
+    {
+      *fLog << err << "Input file " << fname << " doesn't exist." << endl;
+      return kFALSE;
+    }
+  
+  *fLog << inf << "Reading from file: " << fname << endl;
+  
+  TFile file(fname, "READ");
+  if (fPedPhotCam.Read()<=0)
+    {
+      *fLog << "Unable to read MPedPhotCam from " << fname << endl;
+      return kFALSE;
+    }
+
+  if (file.FindKey("MBadPixelsCam"))
+    {
+      MBadPixelsCam bad;
+      if (bad.Read()<=0)
         {
-            *fLog << "Unable to read MBadPixelsCam from " << fname << endl;
-            return kFALSE;
+          *fLog << "Unable to read MBadPixelsCam from " << fname << endl;
+          return kFALSE;
         }
-        fBadPixels.Merge(bad);
-    }
-
-    if (fDisplay /*&& !fDisplay->GetCanvas("Pedestals")*/) // FIXME!
-        fDisplay->Read();
-
-    return kTRUE;
+      fBadPixels.Merge(bad);
+    }
+  
+  if (fDisplay /*&& !fDisplay->GetCanvas("Pedestals")*/) // FIXME!
+    fDisplay->Read();
+  
+  return kTRUE;
 }
 
Index: trunk/MagicSoft/Mars/mjobs/MJExtractCalibTest.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJExtractCalibTest.h	(revision 4188)
+++ trunk/MagicSoft/Mars/mjobs/MJExtractCalibTest.h	(revision 4189)
@@ -14,7 +14,4 @@
 #include "MBadPixelsCam.h"
 #endif
-#ifndef MARS_MGCamDisplays
-#include "MGCamDisplays.h"
-#endif
 
 class MRunIter;
@@ -26,5 +23,5 @@
 class MExtractor;
 class MExtractTime;
-class MJExtractCalibTest : public MParContainer, public MGCamDisplays
+class MJExtractCalibTest : public MParContainer
 {
 private:
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 4188)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 4189)
@@ -50,5 +50,4 @@
 
 #include "MGeomCam.h"
-#include "MGeomCamMagic.h"
 #include "MHCamera.h"
 #include "MPedestalCam.h"
@@ -166,6 +165,6 @@
     c3.Divide(2,3);
 
-    CamDraw(c3, 1, 2, disp0, 1);
-    CamDraw(c3, 2, 2, disp1, 6);
+    disp0.CamDraw(c3, 1, 2, 1);
+    disp1.CamDraw(c3, 2, 2, 6);
 }
 
@@ -239,5 +238,4 @@
     plist.AddToList(&tlist);
 
-    MGeomCamMagic magiccam;
     MReadMarsFile read("Events");
     MRawFileRead rawread(NULL);
@@ -258,5 +256,4 @@
 
     // Setup Tasklist
-    plist.AddToList(&magiccam);
     plist.AddToList(&fPedestalCam);
     plist.AddToList(&fBadPixels);
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.h	(revision 4188)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.h	(revision 4189)
@@ -8,7 +8,4 @@
 #include "MBadPixelsCam.h"
 #endif
-#ifndef MARS_MGCamDisplays
-#include "MGCamDisplays.h"
-#endif
 
 class TCanvas;
@@ -17,5 +14,5 @@
 class MHCamera;
 class MExtractor;
-class MJPedestal : public MParContainer, public MGCamDisplays  
+class MJPedestal : public MParContainer  
 {
 private:
