Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 2438)
+++ trunk/MagicSoft/Mars/Changelog	(revision 2440)
@@ -1,3 +1,29 @@
                                                  -*-*- END OF LINE -*-*-
+
+  2003/10/29: Thomas Bretz
+  
+   * manalysis/AnalysisLinkDef.h, manalysis/Makefile:
+     - removed MMcPedestalRead
+
+   * manalysis/MMcPedestalCopy.[h,cc]:
+     - merged functionality of MMcPedestalRead into it
+     - do not remove itself from the tasklist, but check 
+       the file type for each file again.
+       
+   * manalysis/MMcPedestalNSBAdd.cc:
+     - don't do something if camera file version is < 0.7
+     - do not remove itself from the tasklist, but check 
+       the file type for each file again.
+     
+   * mgui/MCamEvent.cc:
+     - added a comment
+     
+   * mimage/MHillasCalc.[h,cc]:
+     - replaced the fixed size array fErrors by a dynamic size array
+       (TArrayC) to make sure, that people get a warning on the
+       screen if the reprogram the error handling and write
+       into an unallowed index.
+
+
 
   2003/10/28: Thomas Bretz
Index: trunk/MagicSoft/Mars/manalysis/AnalysisLinkDef.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/AnalysisLinkDef.h	(revision 2438)
+++ trunk/MagicSoft/Mars/manalysis/AnalysisLinkDef.h	(revision 2440)
@@ -8,5 +8,8 @@
 #pragma link C++ class MCerPhotEvt+;
 #pragma link C++ class MCerPhotAnal+;
+#pragma link C++ class MCerPhotAnal2+;
 #pragma link C++ class MCerPhotCalc+;
+
+//#pragma link C++ class MRelSignal+;
 
 #pragma link C++ class MBlindPixels+;
@@ -57,18 +60,4 @@
 #pragma link C++ class MMinuitInterface+;
 #pragma link C++ class MFiltercutsCalc+;
-#pragma link C++ class MMcPedestalRead+;
-
 
 #endif
-
-
-
-
-
-
-
-
-
-
-
-
Index: trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc	(revision 2438)
+++ trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc	(revision 2440)
@@ -16,7 +16,7 @@
 !
 !
-!   Author(s): Thomas Bretz  12/2000 <mailto:tbretz@uni-sw.gwdg.de>
+!   Author(s): Thomas Bretz, 12/2000 <mailto:tbretz@astro.uni-wuerzburg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2001
+!   Copyright: MAGIC Software Development, 2000-2003
 !
 !
@@ -24,19 +24,18 @@
 
 /////////////////////////////////////////////////////////////////////////////
-//                                                                         //
-//  MMcPedestalCopy                                                        //
-//                                                                         //
-//  This task looks for the ìnformation about FADC pedestals in            //
-//  MMcFadcHeader and translates it to the pedestal values in              //
-//  MPedestalCam                                                           //
-//                                                                         //
-//  Input Containers:                                                      //
-//   MMcFadcHeader                                                         //
-//                                                                         //
-//  Output Containers:                                                     //
-//   MPedestalCam                                                          //
-//                                                                         //
+//
+//  MMcPedestalCopy
+//
+//  This task looks for the ìnformation about FADC pedestals in
+//  MMcFadcHeader and translates it to the pedestal values in
+//  MPedestalCam
+//
+//  Input Containers:
+//   MMcFadcHeader
+//
+//  Output Containers:
+//   MPedestalCam
+//
 /////////////////////////////////////////////////////////////////////////////
-
 #include "MMcPedestalCopy.h"
 
@@ -50,4 +49,5 @@
 
 #include "MRawRunHeader.h"
+#include "MMcRunHeader.hxx"
 #include "MMcFadcHeader.hxx"
 
@@ -89,15 +89,11 @@
 // --------------------------------------------------------------------------
 //
-// Check runtype and search for MPedestalCam and MMcFadcHeader.
-// If the runtype check fails the task is removed from the task list.
+// Search for MPedestalCam and MMcFadcHeader.
 //
 Int_t MMcPedestalCopy::PreProcess(MParList *pList)
 {
-    if (!CheckRunType(pList))
-    {
-        *fLog << warn << dbginf << " MMcPedestalCopy is for Monte Carlo files only... ";
-        *fLog << "removing task from list." << endl;
-        return kSKIP;
-    }
+    fMcRun = (MMcRunHeader*)pList->FindObject("MMcRunHeader");
+    if (!fMcRun)
+        *fLog << warn << dbginf << "MMcRunHeader not found... assuming camera<0.7" << endl;
 
     fPedCam = (MPedestalCam*)pList->FindCreateObj("MPedestalCam");
@@ -108,5 +104,5 @@
     if (!fMcPed)
     {
-        *fLog << warn << dbginf << "MMcFadcHeader not found... aborting." << endl;
+        *fLog << err << dbginf << "MMcFadcHeader not found... aborting." << endl;
         return kFALSE;
     }
@@ -128,4 +124,6 @@
     const int num = fPedCam->GetSize();
 
+    const Bool_t camver70 = fMcRun && fMcRun->GetCamVersion()>=70;
+
     for (int i=0; i<num; i++)
     {
@@ -136,14 +134,12 @@
 
         const Float_t pedest = fMcPed->GetPedestal(i);
-        //const Float_t pedrms = pedest/sqrt((float)num);
+        const Float_t sigma  = camver70 ? fMcPed->GetPedestalRmsHigh(i) : fMcPed->GetElecNoise(i);
 
-        const Float_t sigma  = fMcPed->GetElecNoise(i);
-        //const Float_t sigrms = sigma/sqrt(num*2.);
-
-        //pix.SetPedestalRms(pedrms, sigrms);
         pix.Set(pedest, sigma);
     }
 
+    if (camver70)
+        fPedCam->SetReadyToSave();
+
     return kTRUE;
 }
-
Index: trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.h	(revision 2438)
+++ trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.h	(revision 2440)
@@ -7,4 +7,5 @@
 
 class MMcFadcHeader;
+class MMcRunHeader;
 class MPedestalCam;
 
@@ -13,9 +14,11 @@
 private:
     const MMcFadcHeader *fMcPed;
+    const MMcRunHeader  *fMcRun;
+
     MPedestalCam *fPedCam;
 
     Bool_t CheckRunType(MParList *pList) const;
 
-    Int_t PreProcess(MParList *pList);
+    Int_t  PreProcess(MParList *pList);
     Bool_t ReInit(MParList *pList);
 
Index: trunk/MagicSoft/Mars/manalysis/MMcPedestalNSBAdd.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MMcPedestalNSBAdd.cc	(revision 2438)
+++ trunk/MagicSoft/Mars/manalysis/MMcPedestalNSBAdd.cc	(revision 2440)
@@ -111,4 +111,18 @@
 // --------------------------------------------------------------------------
 //
+// Check for the camera version. This class should not be used with
+// camera files >= 0.7
+//
+Bool_t MMcPedestalNSBAdd::CheckCamVersion(MParList *pList) const
+{
+    const MMcRunHeader *run = (MMcRunHeader*)pList->FindObject("MMcRunHeader");
+    if (!run)
+        *fLog << warn << dbginf << "MMcRunHeader not found... assuming camera<0.7" << endl;
+
+    return !run || run->GetCamVersion()<70;
+}
+
+// --------------------------------------------------------------------------
+//
 // - check whether we have a monte carlo file. if not skip this task
 // - try to get MMcFadcHeader, MGeomCam and MPedestalCam from the parameter
@@ -118,10 +132,4 @@
 Int_t MMcPedestalNSBAdd::PreProcess(MParList *pList)
 {
-    if (!CheckRunType(pList))
-    {
-        *fLog << warn << dbginf << "Warning - MMcPedestalNSB is for Monte Carlo files only... removing this task from list." << endl;
-        return kSKIP;
-    }
-
     fFadc = (MMcFadcHeader*)pList->FindObject("MMcFadcHeader");
     if (!fFadc)
@@ -141,12 +149,4 @@
     if (!fPedCam)
 	return kFALSE;
-
-    const MMcRunHeader *mcrunheader = (MMcRunHeader*)pList->FindObject("MMcRunHeader");
-    if (!mcrunheader && fDnsbPixel<0)
-    {
-        *fLog << err << dbginf << "Using the default argument only ";
-        *fLog << "allowed if MMcRunHeader is available... aborting." << endl;
-        return kFALSE;
-    }
 
     return kTRUE;
@@ -202,4 +202,7 @@
         return kFALSE;
 
+    if (!CheckCamVersion(pList))
+        return kTRUE;
+
     const Float_t dnsbpix = GetDnsb(pList) * 50.0/15.0;
 
@@ -220,4 +223,6 @@
     }
 
+    fPedCam->SetReadyToSave();
+
     return kTRUE;
 }
Index: trunk/MagicSoft/Mars/manalysis/Makefile
===================================================================
--- trunk/MagicSoft/Mars/manalysis/Makefile	(revision 2438)
+++ trunk/MagicSoft/Mars/manalysis/Makefile	(revision 2440)
@@ -49,4 +49,5 @@
 	   MCerPhotEvt.cc \
            MCerPhotAnal.cc \
+           MCerPhotAnal2.cc \
 	   MCerPhotCalc.cc \
 	   MPedCalcPedRun.cc \
@@ -66,7 +67,7 @@
            MMinuitInterface.cc \
            MFiltercutsCalc.cc \
-           MCT1PadONOFF.cc \
-           MMcPedestalRead.cc
+           MCT1PadONOFF.cc
 
+#           MRelSignal.cc \
 
 SRCS    = $(SRCFILES)
Index: trunk/MagicSoft/Mars/mgui/MCamEvent.cc
===================================================================
--- trunk/MagicSoft/Mars/mgui/MCamEvent.cc	(revision 2438)
+++ trunk/MagicSoft/Mars/mgui/MCamEvent.cc	(revision 2440)
@@ -29,7 +29,8 @@
 // A base class describing an event in the camera.
 //
+// If GetPixelContent returns kFALSE, it must not touch 'val'.
+//
 //////////////////////////////////////////////////////////////////////////////
 #include "MCamEvent.h"
 
 ClassImp(MCamEvent);
-
Index: trunk/MagicSoft/Mars/mimage/MHillasCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillasCalc.cc	(revision 2438)
+++ trunk/MagicSoft/Mars/mimage/MHillasCalc.cc	(revision 2440)
@@ -77,5 +77,5 @@
 MHillasCalc::MHillasCalc(const char *name, const char *title)
     : fHilName("MHillas"), fHilExtName("MHillasExt"),
-    fImgParName("MNewImagePar"), fFlags(0xff)
+    fImgParName("MNewImagePar"), fErrors(5), fFlags(0xff)
 {
     fName  = name  ? name  : "MHillasCalc";
@@ -135,5 +135,5 @@
     }
 
-    memset(fErrors, 0, sizeof(fErrors));
+    memset(fErrors.GetArray(), 0, sizeof(Char_t)*fErrors.GetSize());
 
     return kTRUE;
Index: trunk/MagicSoft/Mars/mimage/MHillasCalc.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillasCalc.h	(revision 2438)
+++ trunk/MagicSoft/Mars/mimage/MHillasCalc.h	(revision 2440)
@@ -12,4 +12,7 @@
 #ifndef MARS_MTask
 #include "MTask.h"
+#endif
+#ifndef ROOT_TArrayC
+#include <TArrayC.h>
 #endif
 
@@ -33,5 +36,5 @@
     TString      fImgParName;
 
-    Int_t        fErrors[5];
+    TArrayC      fErrors;
 
     Int_t        fFlags;
