Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3922)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3923)
@@ -18,4 +18,9 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2004/05/01: Markus Gaug
+   * macros/dohtml.C
+     - include directory mpedestal
+
 
  2004/04/30: Thomas Bretz
Index: /trunk/MagicSoft/Mars/macros/dohtml.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/dohtml.C	(revision 3922)
+++ /trunk/MagicSoft/Mars/macros/dohtml.C	(revision 3923)
@@ -63,4 +63,5 @@
     sourcedir += "mmontecarlo:";
     sourcedir += "mpointing:";
+    sourcedir += "mpedestal:";
     sourcedir += "mranforest:";
     sourcedir += "mraw:";
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3922)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3923)
@@ -229,4 +229,5 @@
 const Float_t MCalibrationChargeCalc::fgLambdaCheckLimit       = 0.2;
 const Float_t MCalibrationChargeCalc::fgPheErrLimit            = 4.;
+const Float_t MCalibrationChargeCalc::fgFFactorErrLimit        = 3.;
 // --------------------------------------------------------------------------
 //
@@ -245,4 +246,5 @@
 // - fChargeErrLimit    to fgChargeErrLimit   
 // - fChargeRelErrLimit to fgChargeRelErrLimit
+// - fFFactorErrLimit   to fgFFactorErrLimit
 // - fLambdaCheckLimit  to fgLambdaCheckLimit 
 // - fLambdaErrLimit    to fgLambdaErrLimit 
@@ -256,6 +258,6 @@
     : fBadPixels(NULL), fCam(NULL), fBlindPixel(NULL), fPINDiode(NULL), 
       fQECam(NULL), fGeom(NULL), fPedestals(NULL), fEvtTime(NULL)
-      {
-
+{
+        
   fName  = name  ? name  : "MCalibrationChargeCalc";
   fTitle = title ? title : "Task to calculate the calibration constants and MCalibrationCam ";
@@ -269,4 +271,5 @@
   SetChargeErrLimit();  
   SetChargeRelErrLimit();
+  SetFFactorErrLimit();
   SetLambdaCheckLimit();
   SetLambdaErrLimit();
@@ -1207,4 +1210,18 @@
                             + fQECam->GetPlexiglassQERelVar();
 
+  const UInt_t nareas   = fGeom->GetNumAreas();
+
+  Float_t lowlim           [nareas];
+  Float_t upplim           [nareas];
+  Float_t avffactorphotons [nareas];
+  Float_t avffactorphotvar [nareas];
+  Int_t   numffactor       [nareas];
+
+  memset(lowlim          ,0, nareas   * sizeof(Float_t));
+  memset(upplim          ,0, nareas   * sizeof(Float_t));
+  memset(avffactorphotons,0, nareas   * sizeof(Float_t));
+  memset(avffactorphotvar,0, nareas   * sizeof(Float_t));
+  memset(numffactor      ,0, nareas   * sizeof(Int_t));
+
   const UInt_t npixels  = fGeom->GetNumPixels();
 
@@ -1240,4 +1257,42 @@
         *fLog << warn << GetDescriptor() 
               << ": Cannot update Quantum efficiencies with the F-Factor Method" << endl;
+
+      const Int_t aidx = (*fGeom)[i].GetAidx();
+
+      avffactorphotons[aidx] += pix.GetMeanFFactorFADC2Phot();
+      avffactorphotvar[aidx] += pix.GetMeanFFactorFADC2PhotVar();
+      numffactor[aidx]++;
+    }
+
+  for (UInt_t i=0; i<nareas; i++)
+    {
+      avffactorphotons[i] /= numffactor[i];
+      avffactorphotvar[i] /= numffactor[i];
+      lowlim  [i] = avffactorphotons[i] - fFFactorErrLimit*TMath::Sqrt(avffactorphotvar[i]);
+      upplim  [i] = avffactorphotons[i] + fFFactorErrLimit*TMath::Sqrt(avffactorphotvar[i]);
+    }
+  
+  for (UInt_t i=0; i<npixels; i++)
+    {
+      
+      MCalibrationChargePix &pix = (MCalibrationChargePix&)(*fCam)[i];
+
+      if (!pix.IsFFactorMethodValid())
+        continue;
+      
+      const Float_t ffactor = pix.GetMeanFFactorFADC2Phot();
+      MBadPixelsPix    &bad = (*fBadPixels)[i];
+
+      const Int_t   aidx   = (*fGeom)[i].GetAidx();
+
+      if ( ffactor < lowlim[aidx] || ffactor > upplim[aidx] )
+        {
+          *fLog << warn << GetDescriptor() << ": Deviating F-Factor: " 
+                << Form("%4.2f",ffactor) << " out of accepted limits: [" 
+                << Form("%4.2f%s%4.2f",lowlim[aidx],",",upplim[aidx]) << "] in pixel " << i << endl;
+          bad.SetUncalibrated( MBadPixelsPix::kDeviatingFFactor );
+          bad.SetUnsuitable  ( MBadPixelsPix::kUnsuitableRun    );
+          pix.SetExcluded();
+        }
     }
 }
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.cc	(revision 3922)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.cc	(revision 3923)
@@ -41,6 +41,6 @@
 //
 const Int_t   MHCalibrationRelTimePix::fgRelTimeNbins    = 900;
-const Axis_t  MHCalibrationRelTimePix::fgRelTimeFirst    = -13.;
-const Axis_t  MHCalibrationRelTimePix::fgRelTimeLast     =  13.;
+const Axis_t  MHCalibrationRelTimePix::fgRelTimeFirst    = -5.;
+const Axis_t  MHCalibrationRelTimePix::fgRelTimeLast     =  5.;
 const Float_t MHCalibrationRelTimePix::fgFADCSliceWidth  =  3.3333;
 // --------------------------------------------------------------------------
