Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 5600)
+++ trunk/MagicSoft/Mars/Changelog	(revision 5601)
@@ -21,40 +21,74 @@
                                                  -*-*- END OF LINE -*-*-
 
+ 2004/12/15: Thomas Bretz (important bugfixes for callisto)
+
+   * callisto.rc:
+     - fixed wrong names in comments
+
+   * mjobs/MJCalibrateSignal.cc:
+     - fixed naming of the two MPedCalcFromLoGain
+     - set correct pedestal container for extractor
+
+   * msignal/MArrivalTimeCam.h:
+     - added Reset() function
+
+   * msignal/MExtractTime.cc:
+     - replaced parts of the common PreProcess by new function PreProcessStd
+
+   * msignal/MExtractTimeAndCharge.cc:
+     - removed Clear() in Process() -- this is automatically done by 
+       Reset()
+
+   * msignal/MExtractedSignalCam.h:
+     - added Reset() function
+
+   * msignal/MExtractor.[h,cc]:
+     - moved some common parts of PreProcess to new function PreProcessStd
+       this fixed the problem that searching for fPedestals was
+       overwritten in MExtractTime
+
+
+
  2004/12/15: Abelardo Moralejo
 
-  * mmc/MMcConfigRunHeader.h
-    - added data member fPmtTimeJitter, sigma of gaussian of the time
-      jitter introduced in the time of each photoelectron.
+   * mmc/MMcConfigRunHeader.h
+     - added data member fPmtTimeJitter, sigma of gaussian of the time
+       jitter introduced in the time of each photoelectron.
+
+
 
  2004/12/14: Markus Gaug
 
-  * msignal/MExtractor.[h,cc]
-    - add possibility to set pedestal pointer from outside
-
-  * msignal/MExtractTimeAndCharge.[h,cc]
-    - make modification of extraction window only for case of now 
-      high-gain saturation.
-
-  * msignal/MExtractTimeAndChargeSpline.cc
-    - fixed some smaller bugs for special cases
-
-  * mcalib/MCalibrationIntensityChargeCam.[h,cc]
-    - implemented automatic plotting of Razmik plot and others
+   * msignal/MExtractor.[h,cc]
+     - add possibility to set pedestal pointer from outside
+
+   * msignal/MExtractTimeAndCharge.[h,cc]
+     - make modification of extraction window only for case of now 
+       high-gain saturation.
+
+   * msignal/MExtractTimeAndChargeSpline.cc
+     - fixed some smaller bugs for special cases
+
+   * mcalib/MCalibrationIntensityChargeCam.[h,cc]
+     - implemented automatic plotting of Razmik plot and others
+
 
 
  2004/12/14: Markus Gaug and Abelardo Moralejo
 
-  * msignal/MExtractFixedWindowPeakSearch.cc
-    - adjusted the offset from peak search window to extraction window
-      such that they start at the same slice for the case: 
-      fOffsetFromWindow=0. This was the original intention of the 
-      extractor and had been lost at some place. Instead, the default 
-      (fOffsetFromWindow=1) did before correspond to an offset of 2 
-      slices which gave wrong results for the calibration and further
-      default settings. 
-    - Changed one comparison: (Byte_t - Byte_t) > 0 to (Byte_t > Byte_t)
-      since the first mode is always true (a negative "byte" simply gives 
-      256-difference. The version before could have lead to crashes from 
-      time to time.
+   * msignal/MExtractFixedWindowPeakSearch.cc
+     - adjusted the offset from peak search window to extraction window
+       such that they start at the same slice for the case: 
+       fOffsetFromWindow=0. This was the original intention of the 
+       extractor and had been lost at some place. Instead, the default 
+       (fOffsetFromWindow=1) did before correspond to an offset of 2 
+       slices which gave wrong results for the calibration and further
+       default settings. 
+     - Changed one comparison: (Byte_t - Byte_t) > 0 to (Byte_t > Byte_t)
+       since the first mode is always true (a negative "byte" simply gives 
+       256-difference. The version before could have lead to crashes from 
+       time to time.
+
+
 
  2004/12/12: Abelardo Moralejo
@@ -65,19 +99,24 @@
       warning.
 
+
+
  2004/12/09: Markus Gaug
   
-  * mhcalib/MHCalibrationPix.[h,cc]
-    - fixed a bug in Reset(), fSaturation was not resetted before. 
-      Affects only intensity calibraion.
-  * mhcalib/MHGausEvents.cc
-    - fixed bug in Reset(), histogram ranges were not reset before.
-      Affects only intensity calibraion.
+   * mhcalib/MHCalibrationPix.[h,cc]
+     - fixed a bug in Reset(), fSaturation was not resetted before. 
+       Affects only intensity calibraion.
+   * mhcalib/MHGausEvents.cc
+     - fixed bug in Reset(), histogram ranges were not reset before.
+       Affects only intensity calibraion.
+
+
 
  2004/12/09: Thomas Bretz
 
- * mbadpixels/MBadPixelsTreat.cc:
-   - set default in constructor to UseInterpolation, ProcessPedestalEvt
-     and ProcessTimes which is the callisto default
-   - enhanced comments in output
+  * mbadpixels/MBadPixelsTreat.cc:
+    - set default in constructor to UseInterpolation, ProcessPedestalEvt
+      and ProcessTimes which is the callisto default
+    - enhanced comments in output
+
 
 
Index: trunk/MagicSoft/Mars/callisto.rc
===================================================================
--- trunk/MagicSoft/Mars/callisto.rc	(revision 5600)
+++ trunk/MagicSoft/Mars/callisto.rc	(revision 5601)
@@ -219,21 +219,19 @@
 # Setup pedestal extractor for running through data
 # -------------------------------------------------------------------------
-#MJCalibrateSignalAB.ExtractPedestal: MPedCalcFromLoGain
-#MJCalibrateSignalAB.ExtractPedestal.PedestalUpdate:   yes
-#MJCalibrateSignalAB.ExtractPedestal.NumEventsDump:   1500
-#MJCalibrateSignalAB.ExtractPedestal.ExtractWinFirst:  15
-#MJCalibrateSignalAB.ExtractPedestal.ExtractWinSize:    6
-#MJCalibrateSignalAB.ExtractPedestal.CheckWinFirst:     0
-#MJCalibrateSignalAB.ExtractPedestal.CheckWinSize:     29
-#MJCalibrateSignalAB.ExtractPedestal.MaxHiGainVar:     40
-
-#MJCalibrateSignal.ExtractPedestal: MPedCalcFromLoGain
-#MJCalibrateSignal.ExtractPedestal.PedestalUpdate:   yes
-#MJCalibrateSignal.ExtractPedestal.NumEventsDump:   1500
-#MJCalibrateSignal.ExtractPedestal.ExtractWinFirst:  15
-#MJCalibrateSignal.ExtractPedestal.ExtractWinSize:    6
-#MJCalibrateSignal.ExtractPedestal.CheckWinFirst:     0
-#MJCalibrateSignal.ExtractPedestal.CheckWinSize:     29
-#MJCalibrateSignal.ExtractPedestal.MaxHiGainVar:     40
+#MJCalibrateSignal.MPedCalcMeanFromLoGain.PedestalUpdate:   yes
+#MJCalibrateSignal.MPedCalcMeanFromLoGain.NumEventsDump:   1500
+#MJCalibrateSignal.MPedCalcMeanFromLoGain.ExtractWinFirst:  15
+#MJCalibrateSignal.MPedCalcMeanFromLoGain.ExtractWinSize:    6
+#MJCalibrateSignal.MPedCalcMeanFromLoGain.CheckWinFirst:     0
+#MJCalibrateSignal.MPedCalcMeanFromLoGain.CheckWinSize:     29
+#MJCalibrateSignal.MPedCalcMeanFromLoGain.MaxHiGainVar:     40
+
+#MJCalibrateSignal.MPedCalcRmsFromLoGain.PedestalUpdate:   yes
+#MJCalibrateSignal.MPedCalcRmsFromLoGain.NumEventsDump:   1500
+#MJCalibrateSignal.MPedCalcRmsFromLoGain.ExtractWinFirst:  15
+#MJCalibrateSignal.MPedCalcRmsFromLoGain.ExtractWinSize:    6
+#MJCalibrateSignal.MPedCalcRmsFromLoGain.CheckWinFirst:     0
+#MJCalibrateSignal.MPedCalcRmsFromLoGain.CheckWinSize:     29
+#MJCalibrateSignal.MPedCalcRmsFromLoGain.MaxHiGainVar:     40
 
 # -------------------------------------------------------------------------
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 5600)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 5601)
@@ -320,9 +320,9 @@
     MBadPixelsMerge        merge(&badpix);
 
-    MPedCalcFromLoGain     pedlo1("MPedCalcFromLoGainAB");
+    MPedCalcFromLoGain     pedlo1("MPedCalcMeanFromLoGain");
     pedlo1.SetPedestalUpdate(kTRUE);
     pedlo1.SetPedestalsOut(&pedcamab);
 
-    MPedCalcFromLoGain     pedlo2;
+    MPedCalcFromLoGain     pedlo2("MPedCalcRmsFromLoGain");
     pedlo2.SetPedestalUpdate(kTRUE);
     pedlo2.SetPedestalsIn(&pedcamab);
@@ -336,5 +336,8 @@
 
         if (extractor1->InheritsFrom("MExtractTimeAndCharge"))
+        {
             pedlo2.SetExtractor((MExtractTimeAndCharge*)extractor1);
+            extractor1->SetPedestals(&pedcamab);
+        }
     }
 
@@ -345,5 +348,5 @@
     taskenv2.SetDefault(extractor2);
     MCalibrateData         calib;
-    if (filetype==3)
+    if (filetype==3) // MC file
     {
         calib.SetCalibrationMode(MCalibrateData::kFfactor);
Index: trunk/MagicSoft/Mars/msignal/MArrivalTimeCam.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MArrivalTimeCam.h	(revision 5600)
+++ trunk/MagicSoft/Mars/msignal/MArrivalTimeCam.h	(revision 5601)
@@ -32,4 +32,5 @@
     void Clear(Option_t *o="");
     void SetLogStream(MLog *lg);
+    void Reset() { Clear(); }
 
     void InitSize(const UInt_t i);
Index: trunk/MagicSoft/Mars/msignal/MExtractTime.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTime.cc	(revision 5600)
+++ trunk/MagicSoft/Mars/msignal/MExtractTime.cc	(revision 5601)
@@ -110,31 +110,9 @@
 Int_t MExtractTime::PreProcess(MParList *pList)
 {
-  fRawEvt = (MRawEvtData*)pList->FindObject(AddSerialNumber("MRawEvtData"));
-  if (!fRawEvt)
-    {
-        *fLog << err << AddSerialNumber("MRawEvtData") << " not found... aborting." << endl;
-        return kFALSE;
-    }
-  
-  fRunHeader = (MRawRunHeader*)pList->FindObject(AddSerialNumber("MRawRunHeader"));
-  if (!fRunHeader)
-    {
-      *fLog << err << AddSerialNumber("MRawRunHeader") << " not found... aborting." << endl;
-      return kFALSE;
-    }
-  
-  
   fArrTime = (MArrivalTimeCam*)pList->FindCreateObj("MArrivalTimeCam",AddSerialNumber(fNameTimeCam));
   if (!fArrTime)
       return kFALSE;
 
-  fPedestals = (MPedestalCam*)pList->FindObject( AddSerialNumber(fNamePedestalCam), "MPedestalCam");
-  if (!fPedestals)
-    {
-      *fLog << err << AddSerialNumber("MPedestalCam") << " not found... aborting" << endl;
-      return kFALSE;
-    }
-  
-  return kTRUE;
+  return PreProcessStd(pList);
 }
 
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 5600)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 5601)
@@ -159,8 +159,10 @@
 Int_t MExtractTimeAndCharge::Process()
 {
+    // This cleaning is nor necessary: It is done automatically by
+    // Reset() before each execution of the Tasklist (Process())
+    //  fArrTime->Clear();
+    //  fSignals->Clear();
 
   MRawEvtPixelIter pixel(fRawEvt);
-  fArrTime->Clear();
-  fSignals->Clear();
 
   while (pixel.Next())
Index: trunk/MagicSoft/Mars/msignal/MExtractedSignalCam.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractedSignalCam.h	(revision 5600)
+++ trunk/MagicSoft/Mars/msignal/MExtractedSignalCam.h	(revision 5601)
@@ -35,4 +35,5 @@
     void Clear(Option_t *o="");
     void SetLogStream(MLog *lg);
+    void Reset() { Clear(); }
 
     void InitSize(const UInt_t i);
Index: trunk/MagicSoft/Mars/msignal/MExtractor.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractor.cc	(revision 5600)
+++ trunk/MagicSoft/Mars/msignal/MExtractor.cc	(revision 5601)
@@ -130,4 +130,34 @@
 }
 
+Int_t MExtractor::PreProcessStd(MParList *pList)
+{
+    fRawEvt = (MRawEvtData*)pList->FindObject(AddSerialNumber("MRawEvtData"));
+    if (!fRawEvt)
+    {
+        *fLog << err << AddSerialNumber("MRawEvtData") << " not found... aborting." << endl;
+        return kFALSE;
+    }
+
+    fRunHeader = (MRawRunHeader*)pList->FindObject(AddSerialNumber("MRawRunHeader"));
+    if (!fRunHeader)
+    {
+        *fLog << err << AddSerialNumber("MRawRunHeader") << " not found... aborting." << endl;
+        return kFALSE;
+    }
+
+
+    if (fPedestals)
+        return kTRUE;
+
+    fPedestals = (MPedestalCam*)pList->FindObject(AddSerialNumber(fNamePedestalCam), "MPedestalCam");
+    if (!fPedestals)
+    {
+        *fLog << err << fNamePedestalCam << " not found... aborting" << endl;
+        return kFALSE;
+    }
+
+    return kTRUE;
+}
+
 // --------------------------------------------------------------------------
 //
@@ -144,35 +174,9 @@
 Int_t MExtractor::PreProcess(MParList *pList)
 {
-
-  fRawEvt = (MRawEvtData*)pList->FindObject(AddSerialNumber("MRawEvtData"));
-  if (!fRawEvt)
-    {
-      *fLog << err << AddSerialNumber("MRawEvtData") << " not found... aborting." << endl;
-      return kFALSE;
-    }
-  
-  fRunHeader = (MRawRunHeader*)pList->FindObject(AddSerialNumber("MRawRunHeader"));
-  if (!fRunHeader)
-    {
-      *fLog << err << AddSerialNumber("MRawRunHeader") << " not found... aborting." << endl;
-      return kFALSE;
-    }
-  
-
-  if (!fPedestals)
-    {
-      fPedestals = (MPedestalCam*)pList->FindObject(AddSerialNumber(fNamePedestalCam), "MPedestalCam");
-      if (!fPedestals)
-        {
-          *fLog << err << fNamePedestalCam << " not found... aborting" << endl;
-          return kFALSE;
-        }
-    }
-  
-  fSignals = (MExtractedSignalCam*)pList->FindCreateObj("MExtractedSignalCam",AddSerialNumber(fNameSignalCam));
-  if (!fSignals)
-      return kFALSE;
-  
-  return kTRUE;
+    fSignals = (MExtractedSignalCam*)pList->FindCreateObj("MExtractedSignalCam",AddSerialNumber(fNameSignalCam));
+    if (!fSignals)
+        return kFALSE;
+
+    return PreProcessStd(pList);
 }
 
Index: trunk/MagicSoft/Mars/msignal/MExtractor.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractor.h	(revision 5600)
+++ trunk/MagicSoft/Mars/msignal/MExtractor.h	(revision 5601)
@@ -62,4 +62,5 @@
   virtual void FindSignalLoGain(Byte_t *firstused, Float_t &sum, Byte_t &sat) const { }
   
+  Int_t   PreProcessStd(MParList *pList);
   Int_t   PreProcess( MParList *pList );
   Bool_t  ReInit    ( MParList *pList );
