Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 3666)
+++ trunk/MagicSoft/Mars/Changelog	(revision 3667)
@@ -18,4 +18,109 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2004/04/06: Thomas Bretz
+
+   * mcalib/MCalibrationCam.[h,cc]:
+     - simplified call to initialization by new function Init()
+
+   * mcalib/MH*.cc:
+     - fixed some warnings (comparision between signed and unsigned)
+
+   * manalysis/MGeomApply.cc:
+     - use new Init-funtion of MCalibrationCam
+
+   * mastro/MAstro.cc:
+     - some fixes to the conversion functions
+
+   * mastro/MAstroCamera.[h,cc]:
+     - added comments
+     - changed argument type of AddPrimitives
+     
+   * mastro/MAstroCatalog.[h,cc]:
+     - many changes to make it possible to overlay the
+       catalog on top of a 2D histogram
+     
+   * mbase/MEvtLoop.cc:
+     - fixed estimation of run-time
+
+   * mbase/MMath.[h,cc]:
+     - added member functions for signed significances
+
+   * mbase/MParContainer.cc:
+     - changed GetterMethod() to support double reference data mebers
+
+   * mbase/MStatusDisplay.cc:
+     - removed some obsolete debug outputs
+
+   * mbase/MTask.[h,cc]:
+     - removed fNumExecutions, fStopwatch already counts the calls
+     - slight chagnes to output of PrintStatistics
+
+   * mbase/MTaskList.[h,cc]:
+     - slight chagnes to output of PrintStatistics
+     
+   * mbase/MTime.cc:
+     - removed +TwoPi from GetGmst
+
+   * mcamera/MCameraAUX.h, mcamera/MCameraHV.h, mcamera/MCameraLV.h,
+     mcamera/MCameraLid.h, mcamera/MCameraLids.h,
+     mcamera/MCameraPowerSupply.h:
+     - added missing Getter functions
+
+   * mcamera/MCameraHV.h:
+     - removed obsolete data-meber fMean
+
+   * mdata/DataLinkDef.h:
+     - added MDataFormula
+
+   * mdata/MDataChain.cc, mdata/Makefile:
+     - enhanced dosumentation
+     - implemented use of multi argument functions
+     - added ^-operator
+
+   * mdata/MDataList.[h,cc]:
+     - added ^-operator
+     - enhanced IsValid
+
+   * mfbase/MFilterList.cc:
+     - changed a warn-output to inf
+
+   * mgeom/MGeomCam.[h,cc]:
+     - added getter returning index corresponding to XY
+
+   * mgeom/MGeomPix.[h,cc]:
+     - added getter IsInside
+
+   * mhist/MHCamera.cc:
+     - Return 0 in GetMean if no entries
+
+   * mhist/MHFalseSource.[h,cc]:
+     - removed conversion stuff (mm/deg) 
+     - slight change to calculation of significance
+     - added dist-cuts
+     - added histogram showing number of entries
+     - added display of catalog
+
+   * mhist/MHStarMap.cc:
+     - added comment
+     
+   * mimage/MHillasExt.[h,cc]:
+     - changed class version to 3
+     - added new data-member fMaxDist
+     
+   * mimage/MNewImagePar.[h,cc]:
+     - added new data member fUsedArea and fCoreArea
+
+   * mmc/MMcConfigRunHeader.h:
+     - readded GetMirrors (WHY WAS IT GONE?)
+
+   * mpointing/MPointingPos.[h,cc]
+     - implemented Getter to get coordinates in rad
+     
+   * mpointing/MSrcPosCalc.[h,cc]:
+     - fixed direction of rotation
+     - for the moment do use fTime
+
+
 
  2004/04/06: Markus Gaug
@@ -856,6 +961,5 @@
 
    * mcalib/MCalibrationChargeCam.[h,cc]
-   * mcalib/MCalibrationChargePix.h
-   * mcalib/MCalibrationChargeCalc.cc
+     mcalib/MCalibrationChargePix.h, mcalib/MCalibrationChargeCalc.cc:
      - removed pointers to MGeomCam and MBadPixelsCam in MCalibrationChargeCam
      - use two loops over pixels in order to determine mean flux of phe;s to 
Index: trunk/MagicSoft/Mars/NEWS
===================================================================
--- trunk/MagicSoft/Mars/NEWS	(revision 3666)
+++ trunk/MagicSoft/Mars/NEWS	(revision 3667)
@@ -1,5 +1,11 @@
                                                                -*-*- END -*-*-
  *** Version <cvs>
-  
+
+   - implementes multi-argument support in MDataChain
+     ("pow(a, b)")
+
+   - implemented double reference support in MDataChain
+     ("MCameraLV.fPowerSupplyA.fVoltagePos5V")
+
    - added support in MF for expressiond like 
      "MHillas.fWidth<2*<MHillas.fLength"
Index: trunk/MagicSoft/Mars/manalysis/MGeomApply.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MGeomApply.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/manalysis/MGeomApply.cc	(revision 3667)
@@ -75,8 +75,5 @@
 #include "MGeomCam.h"
 #include "MPedestalCam.h"
-#include "MCalibrationChargeCam.h"
-#include "MCalibrationRelTimeCam.h"
-#include "MCalibrationQECam.h"
-#include "MCalibrationPedCam.h"
+#include "MCalibrationCam.h"
 #include "MPedPhotCam.h"
 #include "MExtractedSignalCam.h"
@@ -140,49 +137,27 @@
         ped->InitSize(cam->GetNumPixels());
 
-    MCalibrationChargeCam *cal = 
-      (MCalibrationChargeCam*)pList->FindObject(AddSerialNumber("MCalibrationChargeCam"));
+    MCalibrationCam *cal = (MCalibrationCam*)pList->FindObject(AddSerialNumber("MCalibrationChargeCam"));
     if (cal)
-      {
-        cal->InitSize          ( cam->GetNumPixels()  );
-        cal->InitAverageAreas  ( cam->GetNumAreas()   );
-        cal->InitAverageSectors( cam->GetNumSectors() );
-      }
+        cal->Init(*cam);
 
-    MCalibrationRelTimeCam *cat = 
-      (MCalibrationRelTimeCam*)pList->FindObject(AddSerialNumber("MCalibrationRelTimeCam"));
+    MCalibrationCam *cat = (MCalibrationCam*)pList->FindObject(AddSerialNumber("MCalibrationRelTimeCam"));
     if (cat)
-      {
-        cat->InitSize          ( cam->GetNumPixels()  );
-        cat->InitAverageAreas  ( cam->GetNumAreas()   );
-        cat->InitAverageSectors( cam->GetNumSectors() );
-      }
-    
-    MCalibrationQECam *qe = 
-      (MCalibrationQECam*)pList->FindObject(AddSerialNumber("MCalibrationQECam"));
+        cat->Init(*cam);
+
+    MCalibrationCam *qe = (MCalibrationCam*)pList->FindObject(AddSerialNumber("MCalibrationQECam"));
     if (qe)
-      {
-        qe->InitSize           ( cam->GetNumPixels()  );
-        qe->InitAverageAreas   ( cam->GetNumAreas()   );
-        qe->InitAverageSectors ( cam->GetNumSectors() );
-      }
-    
-    MCalibrationPedCam *pcam = 
-      (MCalibrationPedCam*)pList->FindObject(AddSerialNumber("MCalibrationPedCam"));
+        qe->Init(*cam);
+
+    MCalibrationCam *pcam = (MCalibrationCam*)pList->FindObject(AddSerialNumber("MCalibrationPedCam"));
     if (pcam)
-      {
-        pcam->InitSize           ( cam->GetNumPixels()  );
-        pcam->InitAverageAreas   ( cam->GetNumAreas()   );
-        pcam->InitAverageSectors ( cam->GetNumSectors() );
-      }
-    
+        pcam->Init(*cam);
+
     MPedPhotCam *pedphot = (MPedPhotCam*)pList->FindObject(AddSerialNumber("MPedPhotCam"));
     if (pedphot)
         pedphot->InitSize(cam->GetNumPixels());
 
-
     MExtractedSignalCam *ext = (MExtractedSignalCam*)pList->FindObject(AddSerialNumber("MExtractedSignalCam"));
     if (ext)
         ext->InitSize(cam->GetNumPixels());
-
 
     MBlindPixels *bnd = (MBlindPixels*)pList->FindObject(AddSerialNumber("MBlindPixels"));
Index: trunk/MagicSoft/Mars/manalysis/MHPedestalCam.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MHPedestalCam.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/manalysis/MHPedestalCam.cc	(revision 3667)
@@ -189,18 +189,11 @@
   fCam = (MCalibrationCam*)pList->FindObject("MCalibrationPedCam");
   if (!fCam)
-    {
+  {
       fCam = (MCalibrationCam*)pList->FindCreateObj(AddSerialNumber("MCalibrationPedCam"));
       if (!fCam)
-        {
-          gLog << err << "Cannot find nor create MCalibrationPedCam ... abort." << endl;
           return kFALSE;
-        }
-      else 
-        {
-          fCam->InitSize(npixels);
-          fCam->InitAverageAreas(nareas);
-          fCam->InitAverageSectors(nsectors);
-        }
-    }
+
+      fCam->Init(*fGeom);
+  }
   
   Float_t sliceshi = signal->GetNumUsedHiGainFADCSlices();
@@ -369,37 +362,27 @@
     }
   
-  const Int_t npixels  = fGeom->GetNumPixels();
-  const Int_t nareas   = fGeom->GetNumAreas();
-  const Int_t nsectors = fGeom->GetNumSectors();
-
-  Float_t sumareahi  [nareas],   sumarealo  [nareas];
-  Float_t sumsectorhi[nsectors], sumsectorlo[nsectors];
-  Int_t   numareahi  [nareas],   numarealo  [nareas];
-  Int_t   numsectorhi[nsectors], numsectorlo[nsectors];
-
-  for (UInt_t j=0; j<nareas; j++)
-    {
-      sumareahi[j] = sumarealo[j] = 0.;
-      numareahi[j] = numarealo[j] = 0;
-    }
-  
-  for (UInt_t j=0; j<nsectors; j++)
-    {
-      sumsectorhi[j] = sumsectorlo[j] = 0.;
-      numsectorhi[j] = numsectorlo[j] = 0;
-    }
-  
-
-  for (Int_t i=0; i<npixels; i++)
-    {
-
+  const UInt_t npixels  = fGeom->GetNumPixels();
+  const UInt_t nareas   = fGeom->GetNumAreas();
+  const UInt_t nsectors = fGeom->GetNumSectors();
+
+  TArrayF sumareahi(nareas);
+  TArrayF sumarealo(nareas);
+  TArrayF sumsectorhi(nsectors);
+  TArrayD sumsectorlo(nsectors);
+  TArrayI numareahi(nareas);
+  TArrayI numarealo(nareas);
+  TArrayI numsectorhi(nsectors);
+  TArrayI numsectorlo(nsectors);
+
+  for (UInt_t i=0; i<npixels; i++)
+  {
       MHGausEvents &histhi = (*this)[i];
       MHGausEvents &histlo = (*this)(i);
 
       if (histhi.IsExcluded())
-	continue;
+          continue;
 
       const MExtractedSignalPix &pix = (*signal)[i];
-      
+
       const Float_t pedhi = pix.GetExtractedSignalHiGain();
       const Float_t pedlo = pix.GetExtractedSignalLoGain();
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationCam.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationCam.cc	(revision 3667)
@@ -196,4 +196,11 @@
 }
 
+void MCalibrationCam::Init(const MGeomCam &geom)
+{
+    InitSize          (geom.GetNumPixels() );
+    InitAverageAreas  (geom.GetNumAreas()  );
+    InitAverageSectors(geom.GetNumSectors());
+}
+
 // --------------------------------------------------------------------------
 //
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationCam.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationCam.h	(revision 3666)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationCam.h	(revision 3667)
@@ -14,4 +14,6 @@
 class MBadPixelsPix;
 class MBadPixelsCam;
+class MGeomCam;
+
 class MCalibrationCam : public MParContainer, public MCamEvent
 {
@@ -31,4 +33,5 @@
   
   virtual void Clear(    Option_t *o="" );
+  void Init(const MGeomCam &geom);
   void InitSize( const UInt_t i );
   void InitAverageAreas(  const UInt_t i );
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 3667)
@@ -639,5 +639,5 @@
 {
   
-  for (Int_t j=0; j<fGeom->GetNumAreas(); j++)
+  for (UInt_t j=0; j<fGeom->GetNumAreas(); j++)
     {
   
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 3667)
@@ -387,8 +387,8 @@
     }
   
-  const Int_t npixels  = fGeom->GetNumPixels();
-  const Int_t nareas   = fGeom->GetNumAreas();
-  const Int_t nsectors = fGeom->GetNumSectors();
-  const Int_t lofirst  = signal->GetFirstUsedSliceLoGain();
+  const UInt_t npixels  = fGeom->GetNumPixels();
+  const UInt_t nareas   = fGeom->GetNumAreas();
+  const UInt_t nsectors = fGeom->GetNumSectors();
+  const UInt_t lofirst  = signal->GetFirstUsedSliceLoGain();
 
   Float_t sumhiarea  [nareas],   sumloarea  [nareas],   timehiarea  [nareas],   timeloarea  [nareas];
@@ -410,5 +410,5 @@
   
 
-  for (Int_t i=0; i<npixels; i++)
+  for (UInt_t i=0; i<npixels; i++)
     {
 
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.cc	(revision 3667)
@@ -297,7 +297,7 @@
     }
   
-  const Int_t npixels  = fGeom->GetNumPixels();
-  const Int_t nareas   = fGeom->GetNumAreas();
-  const Int_t nsectors = fGeom->GetNumSectors();
+  const UInt_t npixels  = fGeom->GetNumPixels();
+  const UInt_t nareas   = fGeom->GetNumAreas();
+  const UInt_t nsectors = fGeom->GetNumSectors();
 
   Float_t sumareahi  [nareas],   sumarealo  [nareas];
Index: trunk/MagicSoft/Mars/mhist/MHCamera.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 3667)
@@ -289,5 +289,5 @@
     }
 
-    return Profile(mean/n);
+    return n==0 ? 0 : Profile(mean/n);
 }
 
@@ -316,4 +316,7 @@
         }
     }
+
+    if (n==0)
+        return 0;
 
     sum /= n;
Index: trunk/MagicSoft/Mars/mreport/MReportDrive.cc
===================================================================
--- trunk/MagicSoft/Mars/mreport/MReportDrive.cc	(revision 3666)
+++ trunk/MagicSoft/Mars/mreport/MReportDrive.cc	(revision 3667)
@@ -81,5 +81,5 @@
 {
     fName  = "MReportDrive";
-    fTitle = "Class for DRIVE-REPORT information";
+    fTitle = "Class for DRIVE-REPORT information (raw telescope position)";
 }
 
