Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 6149)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 6150)
@@ -20,4 +20,15 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2005/01/31 Markus Gaug 
+ 
+  * mjobs/MJob.[h,cc]
+  * mjobs/MJCalibrateSignal.[h,cc]
+  * mjobs/MJCalibration.[h,cc]
+    - move file type enum to base class
+
+  * mjobs/MJCalibrateSignal.[h,cc]
+    - allow also for direct setting of an MRunIter (not used in callisto).
+
 
  2005/01/31 Abelardo Moralejo
Index: /trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 6149)
+++ /trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 6150)
@@ -44,4 +44,5 @@
 
 #include "MDirIter.h"
+#include "MRunIter.h"
 #include "MParList.h"
 #include "MTaskList.h"
@@ -116,5 +117,5 @@
 //
 MJCalibrateSignal::MJCalibrateSignal(const char *name, const char *title)
-  : fDataFlag(0), fIsInterlaced(kTRUE), fIsRelTimesUpdate(kFALSE), fIsHiLoCalibration(kFALSE)
+  : fRuns(0), fIsInterlaced(kTRUE), fIsRelTimesUpdate(kFALSE), fIsHiLoCalibration(kFALSE)
 {
     fName  = name  ? name  : "MJCalibrateSignal";
@@ -213,6 +214,19 @@
     if (!fSequence.IsValid())
     {
-        *fLog << err << "ERROR - Sequence invalid!" << endl;
-        return kFALSE;
+        if (!fRuns)
+        {
+	  *fLog << err << "ERROR - Sequence invalid and no runs chosen!" << endl;
+	  return kFALSE;
+	}
+
+        if (fRuns->GetNumRuns() != fRuns->GetNumEntries())
+        {
+            *fLog << err << "Number of files found doesn't match number of runs... abort."
+                << fRuns->GetNumRuns() << " vs. " << fRuns->GetNumEntries() << endl;
+            return kFALSE;
+        }
+	*fLog << "Calibrate data from ";
+	*fLog << "Runs " << fRuns->GetRunsAsString() << endl;
+	*fLog << endl;
     }
 
@@ -339,15 +353,4 @@
     plist.AddToList(&tlist);
 
-    /*
-    TString name = iter.Next();
-    Byte_t filetype = MRawFileRead::IsFileValid(name);
-    if (!filetype)
-        filetype = MReadMarsFile::IsFileValid(name)+1;
-    if (filetype<1||filetype>3)
-    {
-        gLog << err << "ERROR - FileType #" << (int)filetype << " of first file " << name << " unknown..." << endl;
-        return kFALSE;
-    } */
-
     MReadReports readreal;
     readreal.AddTree("Events", "MTime.", kTRUE);
@@ -362,7 +365,7 @@
     MRawFileRead rawread(NULL);
     if (IsRawData())
-        rawread.AddFiles(iter);
+        rawread.AddFiles(fSequence.IsValid() ? iter : *fRuns);
     else
-        readreal.AddFiles(iter);
+        readreal.AddFiles(fSequence.IsValid() ? iter : *fRuns);
 
     MPointingPosInterpolate pextr;
Index: /trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h	(revision 6149)
+++ /trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h	(revision 6150)
@@ -8,5 +8,5 @@
 class TEnv;
 class TList;
-
+class MRunIter;
 class MTask;
 class MParList;
@@ -21,11 +21,6 @@
 private:
 
-    enum DataType_t {
-      kIsRawData,
-      kIsRootData,
-      kIsMC
-    };
+    MRunIter *fRuns;                    // Data files
 
-    Byte_t fDataFlag;                   // Bit-field to store the data type
     Bool_t fIsInterlaced;               // Distinguish interlaced from other calibration
     Bool_t fIsRelTimesUpdate;           // Choose to update relative times from interlaced
@@ -40,12 +35,4 @@
                            MExtractor* &ext1, MExtractor* &ext2, TString &geom) const;
 
-    Bool_t IsRawData()  const { return TESTBIT(fDataFlag,kIsRawData);  }
-    Bool_t IsRootData() const { return TESTBIT(fDataFlag,kIsRootData); }
-    Bool_t IsMC()       const { return TESTBIT(fDataFlag,kIsMC);       }
-
-    void   SetRawData ( const Bool_t b=kTRUE )  { b ? SETBIT(fDataFlag,kIsRawData)  : CLRBIT(fDataFlag,kIsRawData);  }
-    void   SetRootData( const Bool_t b=kTRUE )  { b ? SETBIT(fDataFlag,kIsRootData) : CLRBIT(fDataFlag,kIsRootData); }
-    void   SetMC      ( const Bool_t b=kTRUE )  { b ? SETBIT(fDataFlag,kIsMC)       : CLRBIT(fDataFlag,kIsMC);       }
-
 public:
     MJCalibrateSignal(const char *name=NULL, const char *title=NULL);
@@ -57,4 +44,6 @@
     void SetHiLoCalibration( const Bool_t b=kTRUE )  { fIsHiLoCalibration = b; }
 
+    void SetInput          ( MRunIter *iter       )  { fRuns = iter; }
+
     ClassDef(MJCalibrateSignal, 0) // Tool to create a pedestal file (MPedestalCam)
 };
Index: /trunk/MagicSoft/Mars/mjobs/MJCalibration.cc
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 6149)
+++ /trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 6150)
@@ -1428,4 +1428,18 @@
     SetGeometry(GetEnv("Geometry", fGeometry));
 
+    SetRootData();
+
+    if (HasEnv("MC"))
+    {
+      fDataFlag = 0;
+      SetMC();
+    }
+
+    if (HasEnv("RawData") || IsDataCheck())
+    {
+      fDataFlag = 0;
+      SetRawData();
+    }
+
     fReferenceFile = GetEnv("ReferenceFile",fReferenceFile.Data());
 
@@ -1628,5 +1642,5 @@
     if (fSequence.IsValid())
     {
-        const Int_t n0 = fSequence.SetupCalRuns(iter, fPathData, "C", IsDataCheck());
+        const Int_t n0 = fSequence.SetupCalRuns(iter, fPathData, "C", IsRawData());
         const Int_t n1 = fSequence.GetNumCalRuns();
         if (n0==0)
@@ -1688,5 +1702,5 @@
     MRawFileRead rawread(NULL);
 
-    if (IsDataCheck())
+    if (IsRawData())
     {
         rawread.AddFiles(fSequence.IsValid() ? iter : *fRuns);
@@ -1852,4 +1866,6 @@
     if (!evtloop.Eventloop())
     {
+      //	DisplayResult(plist);
+      //	WriteResult(plist);
         *fLog << err << GetDescriptor() << ": Failed." << endl;
         return kFALSE;
Index: /trunk/MagicSoft/Mars/mjobs/MJob.cc
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MJob.cc	(revision 6149)
+++ /trunk/MagicSoft/Mars/mjobs/MJob.cc	(revision 6150)
@@ -52,7 +52,8 @@
 // Default constructor. 
 //
-// Sets fRuns to 0, fExtractor to NULL, fDataCheck to kFALSE
-//
-MJob::MJob(const char *name, const char *title) : fEnv(0), fOverwrite(kFALSE), fMaxEvents(0)
+// Sets fDataFlag to 0
+//
+MJob::MJob(const char *name, const char *title) : fEnv(0), fDataFlag(0), fOverwrite(kFALSE), fMaxEvents(0)
+  
 {
     fName  = name  ? name  : "MJob";
Index: /trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilterPeakSearch.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilterPeakSearch.cc	(revision 6149)
+++ /trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilterPeakSearch.cc	(revision 6150)
@@ -79,7 +79,7 @@
 const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgHiGainFirst             =  0;
 const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgHiGainLast              = 20;
-const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgLoGainFirst             =  3;
+const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgLoGainFirst             =  1;
 const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgLoGainLast              = 14;
-const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgOffsetLeftFromPeak      =  2;
+const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgOffsetLeftFromPeak      =  1;
 const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgOffsetRightFromPeak     =  3;
 const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgPeakSearchWindowSize    =  2;
