Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3495)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3496)
@@ -19,4 +19,12 @@
                                                  -*-*- END OF LINE -*-*-
  2004/03/13: Markus Gaug 
+
+   * mcalib/MCalibrationChargeCalc.cc
+   * mcalib/MCalibrationChargePix.[h,cc]
+   * mcalib/MCalibrationChargeCam.cc
+   * mcalib/MHCalibrationChargeCam.cc
+   * mcalib/MHCalibrationChargeLoGainPix.cc
+     - fixed Low Gain calibration
+
 
    * mcalib/MHGausEvents.cc
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3495)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3496)
@@ -444,4 +444,6 @@
       if (!pix.CalcReducedSigma())
         {
+          *fLog << warn << GetDescriptor() 
+                << ": Could not calculate reduced sigmas of pixel: " << pix.GetPixId() << endl;
           bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
 	  continue;
@@ -449,10 +451,11 @@
       
       if (!pix.CalcFFactorMethod())
-        bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
-
-    }
-  
-
-
+        {
+          *fLog << warn << GetDescriptor() 
+                << ": Could not calculate F-Factor of pixel: " << pix.GetPixId() << endl;
+          bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
+        }
+    }
+  
   //
   // The Michele check ...
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 3495)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 3496)
@@ -737,6 +737,5 @@
   Int_t   validinner      = 0;
   Int_t   validouter      = 0;
-  
-      
+
   TIter Next(fPixels);
   MCalibrationChargePix *pix;
@@ -845,5 +844,5 @@
       if(!bad[idx].IsCalibrationResultOK())
         continue;
-      
+
       const Float_t nphe    = pix2->GetPheFFactorMethod();
       const Float_t npheerr = pix2->GetPheFFactorMethodErr();
@@ -857,5 +856,5 @@
           if (ratio == 1.)
             {
-
+              
               if (nphe < lowerpheinnerlimit || nphe > upperpheinnerlimit)
                 {
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc	(revision 3495)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc	(revision 3496)
@@ -414,4 +414,14 @@
 }
 
+Float_t  MCalibrationChargePix::GetPedRms()  const
+{
+  return IsHiGainSaturation() ? fLoGainPedRms : fPedRms;
+}
+
+Float_t  MCalibrationChargePix::GetPedRmsErr()  const
+{
+  return IsHiGainSaturation() ? fLoGainPedRmsErr : fPedErr/2.;
+}
+
 Float_t  MCalibrationChargePix::GetMeanCharge()   const 
 {
@@ -544,17 +554,19 @@
 {
   
-  const Float_t loweredge     = IsHiGainSaturation() ? fTimeFirstHiGain   : fTimeFirstLoGain;
-  const Float_t upperedge     = IsHiGainSaturation() ? fTimeLastHiGain    : fTimeLastLoGain;
-  
-  if ( fAbsTimeMean < loweredge+1.)
+  const Byte_t loweredge     = IsHiGainSaturation() ? fTimeFirstLoGain   : fTimeFirstHiGain;
+  const Byte_t upperedge     = IsHiGainSaturation() ? fTimeLastLoGain    : fTimeLastHiGain;
+  
+  if ( fAbsTimeMean < (Float_t)loweredge+1)
     {
       *fLog << warn << "WARNING: Mean ArrivalTime in first extraction bin of the Pixel " << fPixId << endl;
+      *fLog << fAbsTimeMean << "   " << (Float_t)loweredge+1. << endl;
       bad->SetMeanTimeInFirstBin();
       bad->SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
     }
   
-  if ( fAbsTimeMean > upperedge-1.)
+  if ( fAbsTimeMean > (Float_t)upperedge-1)
     {
       *fLog << warn << "WARNING: Mean ArrivalTime in last extraction bin of the Pixel " << fPixId << endl;
+      *fLog << fAbsTimeMean << "   " << (Float_t)upperedge-1. << endl;
       bad->SetMeanTimeInLastBin();
       bad->SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
@@ -617,9 +629,7 @@
   if (IsHiGainSaturation())
   {
-      CalcLoGainPed();
-
-      pedRmsSquare             =      fLoGainPedRms    * fLoGainPedRms;                                          
+      pedRmsSquare             =      fLoGainPedRms    * fLoGainPedRms;
       pedRmsSquareErrSquare    =  4.* fLoGainPedRmsErr * fLoGainPedRmsErr * pedRmsSquare;
-    }   /* if (HiGainSaturation) */
+    }
   else
   {
@@ -715,10 +725,13 @@
   fLoGainMeanChargeErr       = TMath::Sqrt(chargeRelErrSquare + conversionRelErrSquare) * fLoGainMeanCharge;
   
-  fLoGainSigmaCharge    *= fConversionHiLo;
-  fLoGainSigmaChargeErr =  TMath::Sqrt(sigmaRelErrSquare + conversionRelErrSquare) * fLoGainSigmaCharge;
+  fLoGainSigmaCharge        *= fConversionHiLo;
+  fLoGainSigmaChargeErr      =  TMath::Sqrt(sigmaRelErrSquare + conversionRelErrSquare) * fLoGainSigmaCharge;
   
   fElectronicPedRms     = gkElectronicPedRms    * TMath::Sqrt(fNumLoGainSamples);
   fElectronicPedRmsErr  = gkElectronicPedRmsErr * TMath::Sqrt(fNumLoGainSamples);
-
-}
-
+  
+  CalcLoGainPed();
+
+}
+
+
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h	(revision 3495)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h	(revision 3496)
@@ -248,6 +248,6 @@
   Float_t GetPed()                             const { return fPed;                              }
   Float_t GetPedErr()                          const { return fPedErr;                           }
-  Float_t GetPedRms()                          const { return fPedRms;                           }
-  Float_t GetPedRmsErr()                       const { return fPedErr / 2.;                      }
+  Float_t GetPedRms()                          const;
+  Float_t GetPedRmsErr()                       const;
 
   Float_t GetTotalFFactorFFactorMethod()       const { return fTotalFFactorFFactorMethod;        }
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 3495)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 3496)
@@ -378,5 +378,6 @@
     }
   
-  Int_t n = signal->GetSize();
+  Int_t n       = signal->GetSize();
+  Int_t lofirst = signal->GetFirstUsedSliceLoGain();
 
   if (fHiGainArray->GetEntries() != n)
@@ -470,6 +471,6 @@
 	continue;
 
-      const Int_t timehi   = (Int_t)pixel.GetIdxMaxHiGainSample();
-      const Float_t timelo = (Float_t)pixel.GetIdxMaxLoGainSample() + 15.;
+      const Float_t timehi = (Float_t)pixel.GetIdxMaxHiGainSample();
+      const Float_t timelo = (Float_t)pixel.GetIdxMaxLoGainSample(lofirst);
 
       (*this)[pixid].FillAbsTime(timehi);
@@ -626,5 +627,4 @@
 {
 
-
     if (hist.IsEmpty())
       {
@@ -633,5 +633,4 @@
         return;
       }
-    
 
     if (hist.GetSaturated() > fNumLoGainSaturationLimit*hist.GetHGausHist()->GetEntries())
@@ -685,5 +684,5 @@
     }	    
     
-    pix.SetLoGainNumPickup     (  hist.GetPickup()           );
+    pix.SetLoGainNumPickup     (  hist.GetPickup()    );
 
     if (!hist.IsFourierSpectrumOK())
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeLoGainPix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeLoGainPix.cc	(revision 3495)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeLoGainPix.cc	(revision 3496)
@@ -53,6 +53,6 @@
 const Axis_t  MHCalibrationChargeLoGainPix::fgChargeLast      = 199.5;
 const Int_t   MHCalibrationChargeLoGainPix::fgAbsTimeNbins    = 15;
-const Axis_t  MHCalibrationChargeLoGainPix::fgAbsTimeFirst    = 14.5;
-const Axis_t  MHCalibrationChargeLoGainPix::fgAbsTimeLast     = 29.5;
+const Axis_t  MHCalibrationChargeLoGainPix::fgAbsTimeFirst    = -0.5;
+const Axis_t  MHCalibrationChargeLoGainPix::fgAbsTimeLast     = 14.5;
 // --------------------------------------------------------------------------
 //
