Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 6820)
+++ trunk/MagicSoft/Mars/Changelog	(revision 6821)
@@ -21,4 +21,28 @@
 
                                                  -*-*- END OF LINE -*-*-
+ 2005/03/15 Thomas Bretz
+
+   * mjobs/MJCalibrateSignal.[h,cc]:
+     - added the fExtractor data member
+     - added a destructor deleting it
+     - only read extractor from file if not set by user
+     - user fExtractor as extractor1
+     - do not delete extractor1 if set by user
+     - added member function to set extractor
+
+   * mjobs/MJPedestal.cc:
+     - removed MFEventSelector workaround again
+     - do not write pedy file anymore
+
+   * callisto.cc:
+     - MJCalibrateSignal now takes the signal extractor directly
+       instead of taking the long way round a new file
+
+   * mpedestal/MExtractPedestal.cc:
+     - ReInit extractor correctly. Now the workaround should be
+       really obsolete
+
+
+
  2005/03/14 Thomas Bretz
 
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 6820)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 6821)
@@ -126,5 +126,5 @@
 //
 MJCalibrateSignal::MJCalibrateSignal(const char *name, const char *title)
-    : fIsInterlaced(kTRUE), fIsRelTimesUpdate(kFALSE), 
+    : fExtractor(0), fIsInterlaced(kTRUE), fIsRelTimesUpdate(kFALSE),
       fIsModifiedExtractWin(kTRUE)
 {
@@ -134,4 +134,18 @@
     SetPulsePosCheck();
     //fCruns = NULL;
+}
+
+MJCalibrateSignal::~MJCalibrateSignal()
+{
+    if (fExtractor)
+        delete fExtractor;
+}
+
+void MJCalibrateSignal::SetExtractor(const MExtractor &ext)
+{
+    if (fExtractor)
+        delete fExtractor;
+
+    fExtractor = (MExtractor*)ext.Clone();
 }
 
@@ -180,13 +194,16 @@
     }
 
-    TObject *o = file.Get("ExtractSignal");
-    if (o && !o->InheritsFrom(MExtractor::Class()))
-    {
-        *fLog << err << dbginf << "ERROR - ExtractSignal read from " << fname << " doesn't inherit from MExtractor!" << endl;
-        return kFALSE;
-    }
-    ext1 = o ? (MExtractor*)o->Clone() : NULL;
-
-    o = file.Get("ExtractTime");
+    if (!ext1)
+    {
+        TObject *o = file.Get("ExtractSignal");
+        if (o && !o->InheritsFrom(MExtractor::Class()))
+        {
+            *fLog << err << dbginf << "ERROR - ExtractSignal read from " << fname << " doesn't inherit from MExtractor!" << endl;
+            return kFALSE;
+        }
+        ext1 = o ? (MExtractor*)o->Clone() : NULL;
+    }
+
+    TObject *o = file.Get("ExtractTime");
     if (o && !o->InheritsFrom(MExtractor::Class()))
     {
@@ -213,5 +230,5 @@
     return ReadContainer(cont);
 }
-
+/*
 Bool_t MJCalibrateSignal::ReadExtractorCosmics(MExtractor* &ext1) const
 {
@@ -245,5 +262,5 @@
   return kTRUE;
 }
-
+*/
 // --------------------------------------------------------------------------
 //
@@ -354,5 +371,5 @@
     }
 
-    MExtractor *extractor1=0;
+    MExtractor *extractor1=fExtractor;
     MExtractor *extractor2=0;
     MExtractor *extractor3=0;
@@ -374,8 +391,4 @@
     else
         *fLog << inf << "No Camera geometry found using default <MGeomCamMagic>" << endl;
-
-    if (fIsModifiedExtractWin)
-      if (!ReadExtractorCosmics(extractor1))
-        *fLog << warn << "No extraction window update for signal extractor found" << endl;
 
     if (extractor1)
@@ -537,5 +550,4 @@
     // at the Wuerzburg software meeting 26.01.05
     //
-#warning Default calibration now in equiv. photo-electrons!
     MCalibrateData calib;
     calib.SetSignalType(MCalibrateData::kPhe);
@@ -800,5 +812,5 @@
 
     // make sure owned object are deleted
-    if (extractor1)
+    if (extractor1 && extractor1!=fExtractor)
         delete extractor1;
     if (extractor2)
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h	(revision 6820)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h	(revision 6821)
@@ -20,7 +20,7 @@
 {
 private:
+    MExtractor *fExtractor;
 
   //    MRunIter *fCruns;                   // Calibration run iter
-  
     Bool_t fIsInterlaced;               // Distinguish interlaced from other calibration
     Bool_t fIsRelTimesUpdate;           // Choose to update relative times from interlaced
@@ -42,4 +42,5 @@
 
     MJCalibrateSignal(const char *name=NULL, const char *title=NULL);
+    ~MJCalibrateSignal();
 
     Bool_t ProcessFile(MPedestalCam &camab, MPedestalCam &cam1, MPedestalCam &cam2);
@@ -50,5 +51,7 @@
 
     //    void SetInputCal    ( MRunIter *iter       )  { fCruns = iter; }
-  
+
+    void SetExtractor(const MExtractor &ext);
+
     ClassDef(MJCalibrateSignal, 0) // Tool to create a pedestal file (MPedestalCam)
 };
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 6820)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 6821)
@@ -1046,14 +1046,4 @@
     }
 
-    MFEventSelector sel;
-    sel.SetNumSelectEvts(0);
-     
-    if (fExtractor)
-      {
-        fExtractor->SetFilter(&sel);
-        tlist.AddToList(&sel);
-        tlist.AddToList(fExtractor);
-      }
-
     MFTriggerPattern fcalib("CalibFilter");
     fcalib.RequireCalibration();
@@ -1224,6 +1214,4 @@
 
     tlist.PrintStatistics();
-
-    fExtractor->SetFilter(0);
 
     if (fIsPixelCheck)
@@ -1302,9 +1290,9 @@
             fExtractor->SetRange(newfirst,newlast+wshigain,
                                  newfirst>0?newfirst-1:newfirst,data->GetNumLoGainSamples()-1);
-            if (!WriteExtractor())
+            /*if (!WriteExtractor())
               {
                 *fLog << err << "Could not write the changes to disk, abort... " << endl;
                 return kFALSE;
-              }
+              }*/
           }
         else
Index: trunk/MagicSoft/Mars/mpedestal/MExtractPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mpedestal/MExtractPedestal.cc	(revision 6820)
+++ trunk/MagicSoft/Mars/mpedestal/MExtractPedestal.cc	(revision 6821)
@@ -442,4 +442,7 @@
   if (fExtractor)
   {
+    if (!fExtractor->ReInit(pList))
+        return kFALSE;
+
       if (!fExtractor->InitArrays())
           return kFALSE;
