Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 7012)
+++ trunk/MagicSoft/Mars/Changelog	(revision 7013)
@@ -21,4 +21,92 @@
 
                                                  -*-*- END OF LINE -*-*-
+ 2005/05/11 Thomas Bretz
+
+   * mbase/MStatusDisplay.cc:
+     - fixed year of copyright
+
+   * mcalib/MCalibCalcFromPast.cc:
+     - undocumented change from BCN: a new resource has been implemented
+       in ReadEnv (NumEventsDump)
+
+   * mjobs/MJob.[h,cc]:
+     - added new static member function which can be used
+       to overwrite relative paths with a default
+
+
+
+ 2005/05/11 Abelardo Moralejo (2005/05/11)
+
+   * mjobs/MJPedestal.cc
+     - Fixed use of MFTriggerPattern: first, added it to the tasklist
+       (was missing); second, added to tasklist MTriggerPatternDecode
+       before MFTriggerPattern. This was the reason for the problems
+       reported by T. Coarasa on May 9. I do not know why the behaviour
+       of the previous version depended on compiler, but this seemed to 
+       be the case...
+
+
+
+ 2005/05/11 Markus Gaug (2005/05/11)
+
+   * mjobs/MJCalibration.cc
+     - display in Tab "Conv" in the 3rd column the conversion to equiv. 
+       phes instead of Cherenkov photons. 
+   
+   * mjobs/calibrationref.rc,  mjobs/calibrationref_Nov04.rc,
+     mjobs/calibrationref_Dec04.rc:
+     - add reference lines for the conv. to equiv. phes.
+
+   * mcalib/MCalibrationChargeCam.cc, mcalib/MCalibrationChargeCalc.cc:
+     - make a distinction between newly excluded pixels (by calibration)
+       and previously excluded pixels in the displays and print-functions
+
+   * mcalib/MCalibrationChargeCalc.cc
+     - introduce the check for fluctuating arrival times.
+     - set charge limit to from 2.5 to 4.5
+
+
+
+ 2005/05/10 Markus Gaug (2005/05/10)
+
+   * mhcalib/MHCalibrationHiLoCam.cc
+     - ask for averageing and do not fill the arrays per pixel any more. 
+       This caused too much memory usage for the calculation of the 
+       high-gain low-gain inter-calibration constants.
+
+   * mcalib/MCalibrationChargePix.[h,cc]
+     - store number of saturated events in the results container.
+     - set version number by one higher (due to new data member).
+ 
+   * mhcalib/MHCalibrationChargeCam.cc
+     - store number of saturated events in the results container.
+     - allow reading of NumHiGainSaturationLimit and 
+       NumLoGainSaturationLimit in ReadEnv
+     - set saturation limit from 5% to 8.5%
+
+   * mbadpixels/MBadPixelsPix.h
+     - introduce new bits: kDeadPedestalRms, kPreviouslyExcluded, 
+       kFluctuatingArrivalTimes
+
+   * mbadpixels/MBadPixelsCam.cc
+     - set bit kPreviouslyExcluded in the AsciiRead-Function
+     - include three new bits in the Print() function
+
+   * mjobs/MJCalibration.cc
+     - display excluded pixels from DeadPedestalRms in Defect-Tab.
+     - display correct error of the RMS/Mean charge diagramm.
+
+   * mcalib/MCalibrationChargeCam.cc
+     - calculate the error of RMS/Mean values in GetPixelContent Nr.33
+
+
+
+ 2005/05/11 Hendrik Bartko (2005/05/09)
+
+   * msignal/MC_weights46.dat
+     - updated weights file for digital filter with dedicated MC weights
+       with 4 slices for the high gain and 6 slices for the low gain
+
+
 
  2005/05/10 Daniela Dorner
Index: trunk/MagicSoft/Mars/NEWS
===================================================================
--- trunk/MagicSoft/Mars/NEWS	(revision 7012)
+++ trunk/MagicSoft/Mars/NEWS	(revision 7013)
@@ -73,4 +73,17 @@
 
    - The storage of the palette in MHCamera is now possible
+
+   - new bits describing unsuitable and unreliable pixels have been
+     introduced in MBadPixelsPix: kPreviouslyExcluded, kDeadPedestalRms,
+     kFluctuatingArrivalTimes
+
+   - the calibration now does a consistency check of the arrival time
+
+   - the charge timit in the calibration has been raised from 2.5 to 4.5
+
+   - callisto: new setup read from callisto.rc
+     + MCalibCalcFromPast.fNuMEventsDump
+     + MHCalibrationChargeCam.NumHiGainSaturationLimit
+     + MHCalibrationChargeCam.NumLoGainSaturationLimit
 
 
Index: trunk/MagicSoft/Mars/mcalib/MCalibCalcFromPast.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibCalcFromPast.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mcalib/MCalibCalcFromPast.cc	(revision 7013)
@@ -334,4 +334,5 @@
 // Read the setup from a TEnv, eg:
 //   MCalibCalcFromPast.UpdateWithFFactorMethod: Off, On
+//   MCalibCalcFromPast.NumEventsDump: 500
 //
 Int_t MCalibCalcFromPast::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
@@ -344,4 +345,10 @@
     }
 
+    if (IsEnvDefined(env, prefix, "NumEventsDump", print))
+    {
+        SetNumEventsDump(GetEnvValue(env, prefix, "NumEventsDump", (Int_t)fNumEventsDump));
+        rc = kTRUE;
+    }
+
     return rc;
 }
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 7013)
@@ -231,5 +231,5 @@
 using namespace std;
 
-const Float_t MCalibrationChargeCalc::fgChargeLimit            = 2.5;
+const Float_t MCalibrationChargeCalc::fgChargeLimit            = 4.5;
 const Float_t MCalibrationChargeCalc::fgChargeErrLimit         = 0.;
 const Float_t MCalibrationChargeCalc::fgChargeRelErrLimit      = 1.;
@@ -238,5 +238,7 @@
 const Float_t MCalibrationChargeCalc::fgPheErrLimit            = 4.5;
 const Float_t MCalibrationChargeCalc::fgFFactorErrLimit        = 4.5;
+const Float_t MCalibrationChargeCalc::fgArrTimeRmsLimit        = 3.5;
 const TString MCalibrationChargeCalc::fgNamePedestalCam = "MPedestalCam";
+
 // --------------------------------------------------------------------------
 //
@@ -252,4 +254,5 @@
 //
 // Initializes:
+// - fArrTimeRmsLimit   to fgArrTimeRmsLimit
 // - fChargeLimit       to fgChargeLimit 
 // - fChargeErrLimit    to fgChargeErrLimit   
@@ -282,4 +285,5 @@
   AddToBranchList("MRawEvtData.fLoGainFadcSamples");
   
+  SetArrTimeRmsLimit   ();
   SetChargeLimit       ();
   SetChargeErrLimit    ();  
@@ -294,4 +298,5 @@
   SetDebug       ( kFALSE );
 
+  SetCheckArrivalTimes     ();
   SetCheckDeadPixels       ();
   SetCheckDeviatingBehavior();
@@ -732,4 +737,6 @@
       if (FinalizeCharges(pix,bad,"pixel  "))
         nvalid++;
+
+      FinalizeArrivalTimes(pix,bad,"pixel  ");
     }
 
@@ -760,4 +767,5 @@
       FinalizePedestals(ped,pix,aidx);
       FinalizeCharges(pix, chargecam->GetAverageBadArea(aidx),"area id");
+      FinalizeArrivalTimes(pix, chargecam->GetAverageBadArea(aidx), "area id");
     }
   
@@ -855,4 +863,10 @@
   PrintUncalibrated(MBadPixelsPix::kLoGainOverFlow,    
                     "Pixels with Low Gain Overflow :                   ");
+  PrintUncalibrated(MBadPixelsPix::kFluctuatingArrivalTimes,
+                    "Fluctuating Pulse Arrival Times:                  ");
+  PrintUncalibrated(MBadPixelsPix::kDeadPedestalRms,
+                    "Presumably dead from Pedestal Rms:                ");
+  PrintUncalibrated(MBadPixelsPix::kPreviouslyExcluded,
+                    "Previously excluded:                              ");
 
   *fLog << inf << endl;
@@ -1018,5 +1032,23 @@
 }
 
-
+// -----------------------------------------------------------------------------------
+//
+// Test the arrival Times RMS of the pixel and set the bit
+// - MBadPixelsPix::kFluctuatingArrivalTimes
+//
+void MCalibrationChargeCalc::FinalizeArrivalTimes(MCalibrationChargePix &cal, MBadPixelsPix &bad, const char* what)
+{
+    if (bad.IsUnsuitable(MBadPixelsPix::kUnsuitableRun))
+        return;
+
+    if (cal.GetAbsTimeRms() > fArrTimeRmsLimit)
+    {
+        *fLog << warn;
+        *fLog << "RMS of pulse arrival times: " << Form("%2.1f", cal.GetAbsTimeRms());
+        *fLog << " FADC sl. < " << Form("%2.1", fArrTimeRmsLimit);
+        *fLog << "   in " << what << Form("%3i", cal.GetPixId()) << endl;
+        bad.SetUncalibrated( MBadPixelsPix::kFluctuatingArrivalTimes);
+    }
+}
 
 // -----------------------------------------------------------------------------------
@@ -1039,14 +1071,10 @@
 {
   
-  MBadPixelsCam         *badcam    = fIntensBad 
-    ? (MBadPixelsCam*)        fIntensBad->GetCam()  : fBadPixels;
-  MCalibrationChargeCam *chargecam = fIntensCam 
-    ? (MCalibrationChargeCam*)fIntensCam->GetCam()  : fCam;
+  MBadPixelsCam *badcam = fIntensBad ? (MBadPixelsCam*)fIntensBad->GetCam() : fBadPixels;
 
   for (Int_t i=0; i<badcam->GetSize(); i++)
     {
       
-      MBadPixelsPix    &bad    = (*badcam)   [i];
-      MCalibrationPix  &pix    = (*chargecam)[i];
+      MBadPixelsPix &bad = (*badcam)[i];
 
       if (IsCheckDeadPixels())
@@ -1086,6 +1114,9 @@
         }
       
-      if (bad.IsUnsuitable(   MBadPixelsPix::kUnsuitableRun    ))
-        pix.SetExcluded();
+      if (IsCheckArrivalTimes())
+        {
+          if (bad.IsUncalibrated( MBadPixelsPix::kFluctuatingArrivalTimes ))
+            bad.SetUnsuitable(   MBadPixelsPix::kUnsuitableRun    );
+        }
 
       if (bad.IsUncalibrated( MBadPixelsPix::kChargeSigmaNotValid ))
@@ -1812,5 +1843,4 @@
           qepix.SetFFactorMethodValid(kFALSE,fPulserColor);
           pix.SetFFactorMethodValid(kFALSE);
-          pix.SetExcluded();
           continue;
         }
@@ -2200,4 +2230,9 @@
       rc = kTRUE;
     }
+  if (IsEnvDefined(env, prefix, "ArrTimeRmsLimit", print))
+    {
+      SetArrTimeRmsLimit(GetEnvValue(env, prefix, "ArrTimeRmsLimit", fArrTimeRmsLimit));
+      rc = kTRUE;
+    }
   if (IsEnvDefined(env, prefix, "FFactorErrLimit", print))
     {
@@ -2245,5 +2280,10 @@
       rc = kTRUE;
     }
-  
+  if (IsEnvDefined(env, prefix, "CheckArrivalTimes", print))
+    {
+      SetCheckArrivalTimes(GetEnvValue(env, prefix, "CheckArrivalTimes", IsCheckArrivalTimes()));
+      rc = kTRUE;
+    }
+
   return rc;
 }
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 7012)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 7013)
@@ -56,4 +56,5 @@
   static const Float_t fgPheErrLimit;          //! Default for fPheErrLimit        (now set to: 4.5)
   static const Float_t fgFFactorErrLimit;      //! Default for fFFactorErrLimit    (now set to: 4.5)
+  static const Float_t fgArrTimeRmsLimit;      //! Default for fArrTimeRmsLimit    (now set to: 3.5)
  
   static const TString fgNamePedestalCam;      //! "MPedestalCam"
@@ -69,4 +70,5 @@
   Float_t fPheErrLimit;                        // Limit acceptance nr. phe's w.r.t. area idx mean (in sigmas)
   Float_t fFFactorErrLimit;                    // Limit acceptance F-Factor w.r.t. area idx mean 
+  Float_t fArrTimeRmsLimit;                    // Limit acceptance RMS of absolute arrival times
   Float_t fSqrtHiGainSamples;                  // Square root nr. High-Gain FADC slices used by extractor
   Float_t fSqrtLoGainSamples;                  // Square root nr. Low -Gain FADC slices used by extractor 
@@ -112,5 +114,6 @@
       kCheckHistOverflow,
       kCheckDeviatingBehavior,
-      kCheckOscillations
+      kCheckOscillations,
+      kCheckArrivalTimes
     };                                         // Possible Checks
 
@@ -122,4 +125,5 @@
   // functions
   void   FinalizePedestals       ( const MPedestalPix    &ped, MCalibrationChargePix &cal, const Int_t aidx );
+  void   FinalizeArrivalTimes    ( MCalibrationChargePix &cal, MBadPixelsPix &bad, const char* what);
   Bool_t FinalizeCharges         ( MCalibrationChargePix &cal, MBadPixelsPix &bad, const char* what);
   Bool_t FinalizePINDiode        ();
@@ -141,4 +145,5 @@
   Bool_t IsCheckHistOverflow     () const { return TESTBIT(fCheckFlags,kCheckHistOverflow);      }
   Bool_t IsCheckOscillations     () const { return TESTBIT(fCheckFlags,kCheckOscillations);      }
+  Bool_t IsCheckArrivalTimes     () const { return TESTBIT(fCheckFlags,kCheckArrivalTimes);      }
 
   void   PrintUncalibrated( MBadPixelsPix::UncalibratedType_t typ, const char *text) const;
@@ -182,4 +187,7 @@
 
   // Checks
+  void SetCheckArrivalTimes( const Bool_t b=kTRUE ) {
+    b ? SETBIT(fCheckFlags,kCheckArrivalTimes)
+      : CLRBIT(fCheckFlags,kCheckArrivalTimes); }
   void SetCheckDeadPixels( const Bool_t b=kTRUE ) {
     b ? SETBIT(fCheckFlags,kCheckDeadPixels)
@@ -203,4 +211,5 @@
   void SetPedestals(MPedestalCam *cam) { fPedestals=cam; }
 									 
+  void SetArrTimeRmsLimit   ( const Float_t f=fgArrTimeRmsLimit        ) { fArrTimeRmsLimit   = f;     }
   void SetFFactorErrLimit   ( const Float_t f=fgFFactorErrLimit        ) { fFFactorErrLimit   = f;     }
   void SetLambdaErrLimit    ( const Float_t f=fgLambdaErrLimit         ) { fLambdaErrLimit    = f;     }
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 7013)
@@ -289,5 +289,5 @@
     {
       
-      if (!pix->IsExcluded()) 
+      if (pix->IsFFactorMethodValid()) 
 	{                            
 
@@ -311,5 +311,5 @@
    
   *fLog << all << endl;
-  *fLog << all << "Excluded pixels:" << endl;
+  *fLog << all << "Previously Excluded pixels:" << endl;
   *fLog << all << endl;
   
@@ -329,4 +329,21 @@
   }
   
+  *fLog << all << endl;
+  *fLog << all << "New Excluded pixels:" << endl;
+  *fLog << all << endl;
+  
+  TIter Next5(fPixels);
+  while ((pix=(MCalibrationChargePix*)Next5()))
+  {
+      if (!pix->IsFFactorMethodValid() && !pix->IsExcluded())
+      {
+        *fLog << all << pix->GetPixId() << " ";
+        id++;
+
+        if (!(id % 25))
+          *fLog << endl;
+      }
+  }
+  
   *fLog << endl;
   *fLog << all << id << " Excluded pixels " << endl;
@@ -337,6 +354,6 @@
   *fLog << all << endl;
 
-  TIter Next5(fAverageAreas);
-  while ((pix=(MCalibrationChargePix*)Next5()))
+  TIter Next6(fAverageAreas);
+  while ((pix=(MCalibrationChargePix*)Next6()))
   {
     *fLog << all << Form("%s%3i","Area Idx: ",pix->GetPixId())
@@ -353,6 +370,6 @@
   *fLog << all << endl;
 
-  TIter Next6(fAverageSectors);
-  while ((pix=(MCalibrationChargePix*)Next6()))
+  TIter Next7(fAverageSectors);
+  while ((pix=(MCalibrationChargePix*)Next7()))
   {
     *fLog << all << Form("%s%3i","Sector: ",pix->GetPixId())
@@ -482,5 +499,5 @@
       break;
     case 5:
-      if (pix.IsExcluded())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       if (pix.GetRSigma() == -1.)
@@ -489,5 +506,5 @@
       break;
     case 6:
-      if (pix.IsExcluded())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;    
       if (pix.GetRSigma() == -1.)
@@ -496,40 +513,40 @@
       break;
     case 7:
-      if (pix.IsExcluded())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val = pix.GetRSigmaPerCharge();
       break;
     case 8:
-      if (pix.IsExcluded())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val =  pix.GetRSigmaPerChargeErr();
       break;
     case 9:
-      if (pix.IsExcluded() || !pix.IsFFactorMethodValid())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val = pix.GetPheFFactorMethod();
       break;
     case 10:
-      if (pix.IsExcluded() || !pix.IsFFactorMethodValid())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val = pix.GetPheFFactorMethodErr();
       break;
     case 11:
-      if (pix.IsExcluded() || !pix.IsFFactorMethodValid())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val = pix.GetMeanConvFADC2Phe();
       break;
     case 12:
-      if (pix.IsExcluded() || !pix.IsFFactorMethodValid())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val = pix.GetMeanConvFADC2PheErr();
       break;
     case 13:
-      if (pix.IsExcluded() || !pix.IsFFactorMethodValid())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val = pix.GetMeanFFactorFADC2Phot();
       break;
     case 14:
-      if (pix.IsExcluded() || !pix.IsFFactorMethodValid())
+      if (!pix.IsFFactorMethodValid())
         return kFALSE;
       val = pix.GetMeanFFactorFADC2PhotErr();
@@ -625,5 +642,15 @@
       break;
     case 32:
+      if (pix.IsExcluded())
+        return kFALSE;
       val = pix.GetMean() == 0. ? 0. : pix.GetRms()/pix.GetMean();
+      break;
+    case 33:
+      if (pix.IsExcluded())
+        return kFALSE;
+      if (pix.GetMean() == 0.)
+        val = 0.;
+      else
+        val = pix.GetSigmaErr()/pix.GetMean() + pix.GetRms()/pix.GetMean()/pix.GetMean()*pix.GetMeanErr();
       break;
     default:
@@ -633,5 +660,4 @@
   return val!=-1.;
 }
-
 
 
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc	(revision 7013)
@@ -69,4 +69,8 @@
 //           MHCalibrationChargeCam, MHCalibrationChargePix
 //
+//
+// ClassVersion 3:
+//  + fNumSaturated
+//
 /////////////////////////////////////////////////////////////////////////////
 #include "MCalibrationChargePix.h"
@@ -90,4 +94,5 @@
 const Float_t MCalibrationChargePix::fgPheFFactorMethodLimit    = 1.;
 const Float_t MCalibrationChargePix::fgConvFFactorRelErrLimit   = 0.85;
+
 // --------------------------------------------------------------------------
 //
@@ -105,5 +110,5 @@
 //
 MCalibrationChargePix::MCalibrationChargePix(const char *name, const char *title)
-    : fCalibFlags(0)
+    : fCalibFlags(0), fNumSaturated(0)
 {
 
@@ -158,4 +163,6 @@
   fMeanFFactorFADC2Phot             =  -1.;
   fMeanFFactorFADC2PhotVar          =  -1.;  
+
+  fNumSaturated                     =   0;
 
   MCalibrationPix::Clear();
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h	(revision 7012)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h	(revision 7013)
@@ -41,4 +41,6 @@
   Float_t fRSigmaSquare;                    // Square of Reduced sigma
   Float_t fRSigmaSquareVar;                 // Variance Reduced sigma
+
+  Int_t   fNumSaturated;                    // Number of (high-gain) saturated events
   
   enum  { kFFactorMethodValid   };          // Possible bits to be set
@@ -71,4 +73,5 @@
   void SetPheFFactorMethodVar   ( const Float_t f)                          { fPheFFactorMethodVar    = f; }  
   void SetPheFFactorMethodLimit ( const Float_t f=fgPheFFactorMethodLimit ) { fPheFFactorMethodLimit  = f; }
+  void SetNumSaturated          ( const Int_t   i)                          { fNumSaturated           = i; }
   
   // Getters
@@ -90,4 +93,5 @@
   Float_t GetMeanFFactorFADC2PhotErr () const;
   Float_t GetMeanFFactorFADC2PhotVar () const { return fMeanFFactorFADC2PhotVar; }    
+  Int_t   GetNumSaturated            () const { return fNumSaturated;            }
   Float_t GetPed                     () const { return fPed;                     }
   Float_t GetPedErr                  () const { return TMath::Sqrt(fPedVar);     }
@@ -113,5 +117,5 @@
   Bool_t CalcMeanFFactor   ( const Float_t nphotons, const Float_t nphotonsrelvar );
   
-  ClassDef(MCalibrationChargePix, 2)	// Container Charge Calibration Results Pixel
+  ClassDef(MCalibrationChargePix, 3)	// Container Charge Calibration Results Pixel
 };
 
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 7013)
@@ -171,9 +171,10 @@
 const TString MHCalibrationChargeCam::gsAbsHistXTitle     = "Time [FADC slices]";
 const TString MHCalibrationChargeCam::gsAbsHistYTitle     = "Nr. events";
-const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.05;
+const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.085;
 const Float_t MHCalibrationChargeCam::fgNumLoGainSaturationLimit = 0.005;
 const Float_t MHCalibrationChargeCam::fgTimeLowerLimit           = 1.;
 const Float_t MHCalibrationChargeCam::fgTimeUpperLimit           = 3.;
 const TString MHCalibrationChargeCam::fgReferenceFile = "mjobs/calibrationref.rc";
+
 // --------------------------------------------------------------------------
 //
@@ -883,5 +884,9 @@
       MCalibrationChargePix  &pix = (MCalibrationChargePix&)(*chargecam)[i] ;
 
-      if (histhi.GetSaturated() > fNumHiGainSaturationLimit*histhi.GetHGausHist()->GetEntries())
+      const Int_t numsat = histhi.GetSaturated();
+
+      pix.SetNumSaturated(numsat);
+
+      if (numsat > fNumHiGainSaturationLimit*histhi.GetHGausHist()->GetEntries())
         {
           pix.SetHiGainSaturation();
@@ -1418,4 +1423,16 @@
     }
 
+  if (IsEnvDefined(env, prefix, "NumHiGainSaturationLimit", print))
+  {
+      SetNumHiGainSaturationLimit(GetEnvValue(env, prefix, "NumHiGainSaturationLimit", fNumHiGainSaturationLimit));
+      rc = kTRUE;
+  }
+
+  if (IsEnvDefined(env, prefix, "NumLoGainSaturationLimit", print))
+  {
+      SetNumLoGainSaturationLimit(GetEnvValue(env, prefix, "NumLoGainSaturationLimit", fNumLoGainSaturationLimit));
+      rc = kTRUE;
+  }
+
   TEnv refenv(fReferenceFile);
 
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc	(revision 7013)
@@ -342,5 +342,5 @@
       MHCalibrationPix &histhi = (*this)[i];
 
-      histhi.FillHistAndArray(ratio);
+      histhi.FillHist(ratio);
       fSumareahi  [aidx]   += ratio;
       fNumareahi  [aidx]   ++;
@@ -355,5 +355,5 @@
 	  const Float_t diff = tix.GetArrivalTimeLoGain() - tix.GetArrivalTimeHiGain();
 
-	  histlo.FillHistAndArray(diff);
+	  histlo.FillHist(diff);
 	  fSumarealo  [aidx]   += diff;
 	  fNumarealo  [aidx]   ++;
@@ -362,4 +362,7 @@
 	}
     }
+
+  if (!IsAverageing())
+      return kTRUE;
   
   for (Int_t j=0; j<nareas; j++)
@@ -420,23 +423,16 @@
     }
 
-  for (Int_t j=0; j<nareas; j++)
-    {
-      
-      MHCalibrationPix    &hist = GetAverageHiGainArea(j);      
-      //
-      // Check histogram overflow
-      // 
-      CheckOverflow(hist);
-   }
-  
-  for (Int_t j=0; j<fAverageHiGainSectors->GetSize(); j++)
-    {
-      
-      MHCalibrationPix &hist = GetAverageHiGainSector(j);      
-      //
-      // Check histogram overflow
-      // 
-      CheckOverflow(hist);
-    }
+  //
+  // Check histogram overflow
+  //
+  if (IsAverageing())
+  {
+      for (Int_t j=0; j<nareas; j++)
+          GetAverageHiGainArea(j).CheckOverflow(hist);
+
+      for (Int_t j=0; j<fAverageHiGainSectors->GetSize(); j++)
+          GetAverageHiGainSector(j).CheckOverflow(hist);
+  }
+
 
   FitHiGainArrays(*hilocam,*badcam,
@@ -458,17 +454,12 @@
     }
 
-  for (Int_t j=0; j<nareas; j++)
-    {
-      
-      MHCalibrationPix    &hist = GetAverageLoGainArea(j);      
-      CheckOverflow(hist);
-   }
-  
-  for (Int_t j=0; j<nsectors; j++)
-    {
-      
-      MHCalibrationPix &hist = GetAverageLoGainSector(j);      
-      CheckOverflow(hist);
-    }
+  if (IsAverageing())
+  {
+      for (Int_t j=0; j<nareas; j++)
+          GetAverageLoGainArea(j).CheckOverflow(hist);
+
+      for (Int_t j=0; j<nsectors; j++)
+          GetAverageLoGainSector(j).CheckOverflow(hist);
+  }
 
   FitLoGainArrays(*hilocam,*badcam,
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationPix.h
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationPix.h	(revision 7012)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationPix.h	(revision 7013)
@@ -27,7 +27,7 @@
   
   // Getters
-  const Double_t GetBlackout       () const;  
-  const Double_t GetPickup         () const;
-  const Float_t  GetSaturated      () const { return fSaturated;      }
+  const Double_t GetBlackout() const;
+  const Double_t GetPickup() const;
+  const Int_t    GetSaturated() const { return fSaturated;      }
 
   // Fits
Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 7013)
@@ -222,9 +222,9 @@
   fTimeResolutionMin         =  0.;
   fTimeResolutionMax         =  1.;
-  
-  fRefConvFADC2PheInner      = 0.14;       
-  fRefConvFADC2PheOuter      = 0.4;       
-  fRefConvFADC2PhotInner     = 0.8; 
-  fRefConvFADC2PhotOuter     = 3.8; 
+
+  fRefFADC2PheInner          = 0.14;
+  fRefFADC2PheOuter          = 0.4;
+  fRefConvFADC2PheInner      = 0.14;
+  fRefConvFADC2PheOuter      = 0.52;
   fRefQEInner                = 0.18;            
   fRefQEOuter                = 0.12;
@@ -330,5 +330,5 @@
     MHCamera disp4 (geomcam, "RSigmaPerCharge",   "Reduced Sigma per Charge");
     MHCamera disp5 (geomcam, "NumPhes",           "Number Photo-electrons");
-    MHCamera disp6 (geomcam, "ConvFADC2Phes",     "Phes per Charge (before flat-field)");
+    MHCamera disp6 (geomcam, "ConvFADC2Phes",     "Phes per Charge (Before Flat-Field)");
     MHCamera disp7 (geomcam, "TotalFFactor",      "Total F-Factor(F-Factor Method)");
     MHCamera disp8 (geomcam, "CascadesQEFFactor", "Cascades QE (F-Factor Method)");
@@ -336,18 +336,18 @@
     MHCamera disp10(geomcam, "CascadesQEPINDiode","Cascades QE (PIN Diode Method)");
     MHCamera disp11(geomcam, "CascadesQECombined","Cascades QE (Combined Method)");
-    MHCamera disp12(geomcam, "FFactorValid",      "Pixels with valid F-Factor calibration");
-    MHCamera disp13(geomcam, "BlindPixelValid",   "Pixels with valid BlindPixel calibration");
-    MHCamera disp14(geomcam, "PINdiodeValid",     "Pixels with valid PINDiode calibration");
-    MHCamera disp15(geomcam, "CombinedValid",     "Pixels with valid Combined calibration");
-    MHCamera disp16(geomcam, "Saturation",        "Pixels with saturated Hi Gain");
+    MHCamera disp12(geomcam, "FFactorValid",      "Pixels with Valid F-Factor Calibration");
+    MHCamera disp13(geomcam, "BlindPixelValid",   "Pixels with valid BlindPixel Calibration");
+    MHCamera disp14(geomcam, "PINdiodeValid",     "Pixels with Valid PINDiode Calibration");
+    MHCamera disp15(geomcam, "CombinedValid",     "Pixels with Valid Combined Calibration");
+    MHCamera disp16(geomcam, "Saturation",        "Pixels with Saturated Hi Gain");
     MHCamera disp17(geomcam, "ConversionMeans",   "Conversion HiGain.vs.LoGain Means");
     MHCamera disp18(geomcam, "ConversionSigmas",  "Conversion HiGain.vs.LoGain Sigmas");
-    MHCamera disp19(geomcam, "HiGainPickup",      "Number Pickup events Hi Gain");
-    MHCamera disp20(geomcam, "LoGainPickup",      "Number Pickup events Lo Gain");
-    MHCamera disp21(geomcam, "HiGainBlackout",    "Number Blackout events Hi Gain");
-    MHCamera disp22(geomcam, "LoGainBlackout",    "Number Blackout events Lo Gain");
-    MHCamera disp23(geomcam, "Excluded",          "Pixels previously excluded");
-    MHCamera disp24(geomcam, "UnSuitable",        "Pixels not suited for further analysis");
-    MHCamera disp25(geomcam, "UnReliable",        "Pixels suitable, but not reliable for further analysis");
+    MHCamera disp19(geomcam, "HiGainPickup",      "Number Pickup Events Hi Gain");
+    MHCamera disp20(geomcam, "LoGainPickup",      "Number Pickup Events Lo Gain");
+    MHCamera disp21(geomcam, "HiGainBlackout",    "Number Blackout Events Hi Gain");
+    MHCamera disp22(geomcam, "LoGainBlackout",    "Number Blackout Events Lo Gain");
+    MHCamera disp23(geomcam, "Excluded",          "Pixels Previously Excluded");
+    MHCamera disp24(geomcam, "UnSuitable",        "Pixels NOT Suited for Further Analysis");
+    MHCamera disp25(geomcam, "UnReliable",        "Pixels Suitable, but NOT Reliable for Further Analysis");
     MHCamera disp26(geomcam, "HiGainOscillating", "Oscillating Pixels High Gain");
     MHCamera disp27(geomcam, "LoGainOscillating", "Oscillating Pixels Low Gain");
@@ -357,8 +357,9 @@
     MHCamera disp31(geomcam, "SigmaTime",         "Sigma Rel. Arrival Times");
     MHCamera disp32(geomcam, "TimeProb",          "Probability of Time Fit");
-    MHCamera disp33(geomcam, "TimeNotFitValid",   "Pixels with not valid fit results");
+    MHCamera disp33(geomcam, "TimeNotFitValid",   "Pixels with not valid Fit Results");
     MHCamera disp34(geomcam, "TimeOscillating",   "Oscillating Pixels");
-    MHCamera disp35(geomcam, "TotalConv",         "Conversion Factor to photons");
+    MHCamera disp35(geomcam, "TotalConv",         "Conversion Factor to Photons");
     MHCamera disp36(geomcam, "RMSperMean",        "Charge histogram RMS per Mean");
+    MHCamera disp37(geomcam, "TotalConvPhe",      "Conversion Factor to equiv. Phe's");
     
     MCalibrationChargeCam  *cam    = NULL;
@@ -447,4 +448,5 @@
     // RMS and Mean
     disp36.SetCamContent(*cam,32);
+    disp36.SetCamError(*cam,33);
 
     disp1.SetYTitle("Q [FADC cnts]");
@@ -484,8 +486,7 @@
     disp28.SetYTitle("Mean Abs. Time [FADC sl.]");
     disp29.SetYTitle("RMS Abs. Time [FADC sl.]");
-
     disp35.SetYTitle("Conv.Factor [Ph/FADC cnts]");
-
     disp36.SetYTitle("Charge RMS/<Q> [1]");
+    disp37.SetYTitle("Conv.Factor [Phe/FADC cnts]");
 
     for (UInt_t i=0;i<geomcam.GetNumPixels();i++)
@@ -503,4 +504,7 @@
         disp35.Fill(i,convphe/quaeff);
         disp35.SetUsed(i);
+
+        disp37.Fill(i,convphe/quaeff*MCalibrationQEPix::gkDefaultAverageQE);
+        disp37.SetUsed(i);
       }
     
@@ -733,10 +737,10 @@
       gPad->SetBorderMode(0);
       gPad->SetTicks();
-      MHCamera *obj7=(MHCamera*)disp35.DrawCopy("hist");
+      MHCamera *obj7=(MHCamera*)disp37.DrawCopy("hist");
       //
       // for the datacheck, fix the ranges!!
       //
-      obj7->SetMinimum(fConvFADC2PhotMin);
-      obj7->SetMaximum(fConvFADC2PhotMax);
+      obj7->SetMinimum(fConvFADC2PheMin);
+      obj7->SetMaximum(fConvFADC2PheMax);
       //
       // Set the datacheck sizes:
@@ -855,5 +859,5 @@
       pave->SetTextSize(0.05);
       pave->AddText("  ");
-      TText *t1 = pave->AddText(Form("Signal smaller 3 Pedestal RMS:                 %3i pixels",
+      TText *t1 = pave->AddText(Form("Signal smaller 4.5 Pedestal RMS:                 %3i pixels",
                                        CountBadPixels(&disp24,1)));
       t1->SetTextColor(gStyle->GetColorPalette(Int_t(1./max*numcol + 1.)));
@@ -887,8 +891,16 @@
       t11->SetTextColor(gStyle->GetColorPalette(Int_t(8./max*numcol + 1.)));
       t11->SetTextAlign(12);
-      TText *t12= pave->AddText(Form("Previously Excluded:                                    %3i pixels",
-                                       CountBadPixels(&disp24,9)));
+      TText *t12= pave->AddText(Form("Presumably dead from Ped. Rms:              %3i pixels",
+                                       CountBadPixels(&disp24,9 )));
       t12->SetTextColor(gStyle->GetColorPalette(Int_t(9./max*numcol + 1.)));
       t12->SetTextAlign(12);
+      TText *t13= pave->AddText(Form("Fluctuating Pulse Arrival Times:                 %3i pixels",
+                                       CountBadPixels(&disp24,10)));
+      t13->SetTextColor(gStyle->GetColorPalette(Int_t(10./max*numcol + 1.)));
+      t13->SetTextAlign(12);
+      TText *t14= pave->AddText(Form("Previously Excluded:                                   %3i pixels",
+                                       CountBadPixels(&disp24,11)));
+      t14->SetTextColor(gStyle->GetColorPalette(Int_t(11./max*numcol + 1.)));
+      t14->SetTextAlign(12);
       pave->Draw();
 
@@ -909,5 +921,5 @@
       // for the datacheck, fix the ranges!!
       //
-      const Double_t max2 = 8.;
+      const Double_t max2 = 9.;
       obj9->SetMinimum(0.);
       obj9->SetMaximum(max2);
@@ -927,5 +939,5 @@
       TText *t3 = pave2->AddText(Form("Signal Sigma smaller Pedestal RMS:      %3i pixels",
                                        CountBadPixels(&disp25,1)));
-      t3->SetTextColor(gStyle->GetColorPalette(Int_t(1./max*numcol + 1.)));
+      t3->SetTextColor(gStyle->GetColorPalette(Int_t(1./max2*numcol + 1.)));
       t3->SetTextAlign(12);
 
@@ -1250,8 +1262,8 @@
       break;
     case  1:
-      l1 = line.DrawLine(0, fRefConvFADC2PhotInner, x, fRefConvFADC2PhotInner);      
+      l1 = line.DrawLine(0, fRefConvFADC2PheInner, x, fRefConvFADC2PheInner);
       break;
     case  2:
-      l1 = line.DrawLine(0, fRefConvFADC2PheInner, x, fRefConvFADC2PheInner );
+      l1 = line.DrawLine(0, fRefFADC2PheInner, x, fRefFADC2PheInner );
       break;
     case  3:
@@ -1281,8 +1293,8 @@
           break;
         case 1:
-          line.DrawLine(x2, fRefConvFADC2PhotOuter, 398, fRefConvFADC2PhotOuter );      
+          line.DrawLine(x2, fRefConvFADC2PheOuter, 398, fRefConvFADC2PheOuter );
           break;
         case 2:
-          line.DrawLine(x2, fRefConvFADC2PheOuter, 398, fRefConvFADC2PheOuter);
+          line.DrawLine(x2, fRefFADC2PheOuter, 398, fRefFADC2PheOuter);
           break;
         case 3:
@@ -1437,8 +1449,10 @@
     fTimeResolutionMax      = refenv.GetValue("TimeResolutionMax",fTimeResolutionMax);
 			     		                        
+    fRefFADC2PheInner       = refenv.GetValue("RefFADC2PheInner",fRefFADC2PheInner);
+    fRefFADC2PheOuter       = refenv.GetValue("RefFADC2PheOuter",fRefFADC2PheOuter);
+    fRefConvFADC2PhotInner  = refenv.GetValue("RefConvFADC2PhotInner",fRefConvFADC2PhotInner);
+    fRefConvFADC2PhotOuter  = refenv.GetValue("RefConvFADC2PhotOuter",fRefConvFADC2PhotOuter);
     fRefConvFADC2PheInner   = refenv.GetValue("RefConvFADC2PheInner",fRefConvFADC2PheInner);
     fRefConvFADC2PheOuter   = refenv.GetValue("RefConvFADC2PheOuter",fRefConvFADC2PheOuter);
-    fRefConvFADC2PhotInner  = refenv.GetValue("RefConvFADC2PhotInner",fRefConvFADC2PhotInner);
-    fRefConvFADC2PhotOuter  = refenv.GetValue("RefConvFADC2PhotOuter",fRefConvFADC2PhotOuter);
     fRefQEInner             = refenv.GetValue("RefQEInner",fRefQEInner);
     fRefQEOuter             = refenv.GetValue("RefQEOuter",fRefQEOuter);
Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.h	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.h	(revision 7013)
@@ -79,8 +79,10 @@
   Double_t fTimeResolutionMax;             //! Histogram maximum for time resolutions
   					   
-  Float_t  fRefConvFADC2PheInner;          //! Reference value for the conversion factor to phes - inner
-  Float_t  fRefConvFADC2PheOuter;          //! Reference value for the conversion factor to phes - outer
+  Float_t  fRefFADC2PheInner;              //! Reference value for the ratio phes/charge - inner
+  Float_t  fRefFADC2PheOuter;              //! Reference value for the ratio phes/charge - outer
   Float_t  fRefConvFADC2PhotInner;         //! Reference value for the conversion factor to phs - inner
   Float_t  fRefConvFADC2PhotOuter;         //! Reference value for the conversion factor to phs - outer
+  Float_t  fRefConvFADC2PheInner;          //! Reference value for the conversion factor to phs - inner
+  Float_t  fRefConvFADC2PheOuter;          //! Reference value for the conversion factor to phs - outer
   Float_t  fRefQEInner;                    //! Reference value for the quantum eff. cascades - inner
   Float_t  fRefQEOuter;                    //! Reference value for the quantum eff. cascades - outer
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 7013)
@@ -83,4 +83,5 @@
 #include "MRawEvtData.h"
 #include "MGeomApply.h"
+#include "MTriggerPatternDecode.h"
 #include "MBadPixelsMerge.h"
 #include "MFillH.h"
@@ -944,4 +945,5 @@
     // data file will be processed. In any case there are no interleaved
     // calibration events in such data, so this is fine.
+    MTriggerPatternDecode decode;
     MFTriggerPattern fcalib("CalibFilter");
     fcalib.SetDefault(kFALSE);
@@ -950,8 +952,10 @@
 
     if (fIsPulsePosCheck)
-      {
+    {
         fillpul.SetFilter(&fcalib);
+	tlist.AddToList(&decode);
+	tlist.AddToList(&fcalib);
         tlist.AddToList(&fillpul);
-      }
+    }
 
     // ----------------------------------------------------------------------
Index: trunk/MagicSoft/Mars/mjobs/MJob.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJob.cc	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/MJob.cc	(revision 7013)
@@ -60,5 +60,4 @@
 //
 MJob::MJob(const char *name, const char *title) : fEnv(0), fEnvDebug(0), fOverwrite(kFALSE), fMaxEvents(0)
-  
 {
     fName  = name  ? name  : "MJob";
@@ -300,2 +299,36 @@
     return WriteContainer(cont);
 }
+
+TString MJob::ExpandPath(TString fname)
+{
+    // empty
+    if (fname.IsNull())
+        return fname;
+
+    // Expand path using environment
+    gSystem->ExpandPathName(fname);
+
+    // Absolute path
+    if (fname[0]=='/')
+        return fname;
+
+    // relative path to file and file could be found
+    if (!gSystem->AccessPathName(fname, kFileExists))
+        return fname;
+
+    // Now check gEnv and MARSSYS. gEnv can overwrite MARSSYS
+    TString path(gEnv ? gEnv->GetValue("Mars.Path", "$MARSSYS") : "$MARSSYS");
+
+    // Expand path using environment
+    gSystem->ExpandPathName(path);
+
+    // check if path ends with a slash
+    if (!path.EndsWith("/"))
+        path += "/";
+
+    // compile full qualified path
+    path += fname;
+
+    // return new path
+    return path;
+}
Index: trunk/MagicSoft/Mars/mjobs/MJob.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJob.h	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/MJob.h	(revision 7013)
@@ -75,4 +75,6 @@
     MStatusDisplay *GetDisplay() { return fDisplay; }
 
+    static TString ExpandPath(TString fname);
+
     ClassDef(MJob, 0) // Bas class for Jobs
 };
Index: trunk/MagicSoft/Mars/mjobs/calibrationref.rc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/calibrationref.rc	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/calibrationref.rc	(revision 7013)
@@ -42,8 +42,10 @@
 # Converstion factors:
 #
-RefConvFADC2PheInner:     0.14
-RefConvFADC2PheOuter:     0.4
+RefFADC2PheInner:         0.14
+RefFADC2PheOuter:         0.4
 RefConvFADC2PhotInner:    0.8
 RefConvFADC2PhotOuter:    3.8
+RefConvFADC2PheInner:     0.14
+RefConvFADC2PheOuter:     0.56
 #
 # Quantum Efficiencies:
Index: trunk/MagicSoft/Mars/mjobs/calibrationref_Dec04.rc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/calibrationref_Dec04.rc	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/calibrationref_Dec04.rc	(revision 7013)
@@ -42,8 +42,10 @@
 # Converstion factors:
 #
-RefConvFADC2PheInner:     0.3
-RefConvFADC2PheOuter:     0.6
+RefFADC2PheInner:         0.3
+RefFADC2PheOuter:         0.6
 RefConvFADC2PhotInner:    1.7
 RefConvFADC2PhotOuter:    6.55
+RefConvFADC2PheInner:     0.31
+RefConvFADC2PheOuter:     1.26
 #
 # Quantum Efficiencies:
Index: trunk/MagicSoft/Mars/mjobs/calibrationref_Nov04.rc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/calibrationref_Nov04.rc	(revision 7012)
+++ trunk/MagicSoft/Mars/mjobs/calibrationref_Nov04.rc	(revision 7013)
@@ -42,8 +42,10 @@
 # Converstion factors:
 #
-RefConvFADC2PheInner:     0.13
-RefConvFADC2PheOuter:     0.33
+RefFADC2PheInner:         0.13
+RefFADC2PheOuter:         0.33
 RefConvFADC2PhotInner:    0.71.
 RefConvFADC2PhotOuter:    2.8
+RefConvFADC2PheInner:     0.135
+RefConvFADC2PheOuter:     0.53
 #
 # Quantum Efficiencies:
Index: trunk/MagicSoft/Mars/msignal/MC_weights46.dat
===================================================================
--- trunk/MagicSoft/Mars/msignal/MC_weights46.dat	(revision 7013)
+++ trunk/MagicSoft/Mars/msignal/MC_weights46.dat	(revision 7013)
@@ -0,0 +1,104 @@
+# High Gain Weights: 4 10
+# (Amplitude)  (Time)
+-0.483688 -0.498619
+-0.52105 -0.409251
+-0.551668 -0.347732
+-0.588621 -0.297486
+-0.661896 -0.2371
+-0.754507 -0.0572828
+-0.809786 0.380243
+-0.569956 1.15886
+-0.0188177 1.56188
+0.366116 1.43988
+0.560145 1.24361
+0.659133 1.09171
+0.743506 1.01359
+0.842199 0.994443
+1.03659 1.08537
+1.27803 1.17221
+1.52592 1.11221
+1.87086 0.786182
+1.9451 0.195753
+1.84721 -0.202808
+1.74892 -0.438476
+1.6951 -0.598997
+1.63854 -0.777709
+1.55247 -1.00352
+1.32498 -1.37711
+1.00846 -1.77543
+0.590272 -2.03408
+-0.111902 -1.86442
+-0.42886 -1.06692
+-0.383767 -0.46555
+-0.258546 -0.122314
+-0.237253 -0.0243087
+-0.234402 0.036867
+-0.236007 0.0905807
+-0.22029 0.156137
+-0.191449 0.235519
+-0.139186 0.309597
+-0.0270788 0.320152
+0.0388423 0.213534
+0.0424905 0.116622
+# Low Gain Weights: 6 10
+# (Amplitude)  (Time)
+0.0138311 -0.0165919
+0.0117372 -0.0354005
+0.00232654 -0.0581018
+-0.00791094 -0.0631271
+-0.0131845 -0.0558022
+-0.0154786 -0.0480772
+-0.0171358 -0.0420274
+-0.0199068 -0.0340744
+-0.02688 -0.0117278
+-0.0404328 0.0754397
+-0.0357035 0.342673
+0.00409834 0.849274
+0.248584 1.52181
+0.528673 1.67974
+0.67261 1.47068
+0.735023 1.24965
+0.778865 1.10395
+0.832049 1.02856
+0.907609 1.00924
+1.07304 1.09208
+1.25051 1.14906
+1.37475 1.0253
+1.52056 0.653112
+1.53175 0.163076
+1.49683 -0.15273
+1.47188 -0.344252
+1.45258 -0.50129
+1.42348 -0.670218
+1.3673 -0.87756
+1.19832 -1.20557
+0.99973 -1.53248
+0.808836 -1.68211
+0.533208 -1.45238
+0.446023 -0.900265
+0.459037 -0.529769
+0.470945 -0.368053
+0.465845 -0.313525
+0.446981 -0.311926
+0.415815 -0.342317
+0.348688 -0.425439
+0.271752 -0.495437
+0.211195 -0.503879
+0.131582 -0.413276
+0.109187 -0.245156
+0.114005 -0.139006
+0.117671 -0.0939116
+0.116527 -0.078572
+0.11177 -0.0772896
+0.103901 -0.0840098
+0.0871027 -0.102357
+0.0758618 -0.119019
+0.0611863 -0.118991
+0.0430436 -0.0930814
+0.0390695 -0.0517162
+0.0409257 -0.027711
+0.0420581 -0.0186558
+0.0419035 -0.0164813
+0.0408279 -0.0174564
+0.0389147 -0.0202082
+0.0345678 -0.025232
