Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3555)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3556)
@@ -46,4 +46,5 @@
    * mcalib/MCalibrationChargeCalc.[h,cc]
      - added MCalibrationQECam
+     - cleaned the code up a little
 
    * mcalib/MCalibrationChargePix.[h,cc]
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3555)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3556)
@@ -405,6 +405,6 @@
 // 
 //
-void MCalibrationChargeCalc::FinalizePedestals(MPedestalPix &ped, MCalibrationChargePix &cal,
-                                               Float_t &avped, Float_t &avrms, Float_t &avnum)
+void MCalibrationChargeCalc::FinalizePedestals(const MPedestalPix &ped, MCalibrationChargePix &cal,
+                                               Float_t &avped, Float_t &avrms)
 {
   
@@ -421,5 +421,4 @@
   avped += pedes;
   avrms += prms;
-  avnum++;
   
   //
@@ -442,6 +441,67 @@
 }
 
-
-
+void MCalibrationChargeCalc::FinalizeAvPedestals(MCalibrationChargePix &cal, 
+                                                 Float_t avped, Float_t avrms, Int_t avnum)
+{
+  
+  //
+  // set the pedestans in the calibration camera
+  //
+  if (cal.IsHiGainSaturation())
+    {
+      cal.SetPedestal(avped/avnum  * fNumLoGainSamples,
+                      avrms/avnum * fSqrtLoGainSamples,
+                      avrms/avnum * fSqrtLoGainSamples/avnum);
+      cal.CalcLoGainPedestal((Float_t)fNumLoGainSamples);
+    }
+  else
+    {
+      cal.SetPedestal(avped/avnum  * fNumHiGainSamples,
+                      avrms/avnum * fSqrtHiGainSamples,
+                      avrms/avnum * fSqrtHiGainSamples/avnum);
+    }
+}
+
+//
+// Finalize charges per pixel: 
+// * Check chage validity
+// * check absolute time validity
+// * calculate the reduced sigma
+// * caluclate the number of photo-electrons
+//
+//
+Bool_t MCalibrationChargeCalc::FinalizeCharges(MCalibrationChargePix &cal, MBadPixelsPix &bad)
+{
+  
+  cal.CheckChargeValidity (&bad);
+  cal.CheckTimeValidity   (&bad);
+      
+  if (bad.IsUnsuitable(MBadPixelsPix::kUnsuitableRun))
+    return kFALSE;
+
+  if (!cal.CalcReducedSigma())
+    {
+      *fLog << warn << GetDescriptor() 
+            << ": Could not calculate reduced sigmas of pixel: " << cal.GetPixId() << endl;
+      bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
+      return kFALSE;
+    }
+  
+  if (!cal.CalcFFactorMethod())
+    {
+      *fLog << warn << GetDescriptor() 
+            << ": Could not calculate F-Factor of pixel: " << cal.GetPixId() << endl;
+      bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
+      return kFALSE;
+    }
+  return kTRUE;
+}
+
+//
+// * Finalize the pedestals
+// * Do the quality checks 
+// * Calculate the reduced sigma 
+// * Calculate the F-Factor Method
+//
 Int_t MCalibrationChargeCalc::PostProcess()
 {
@@ -450,11 +510,11 @@
   // loop over the pedestal events and check if we have calibration
   //
-  Int_t nvalid   = 0;
-  Float_t avinnerped  = 0;
-  Float_t avinnerprms = 0;
-  Float_t avinnernum  = 0;
-  Float_t avouterped  = 0;
-  Float_t avouterprms = 0;
-  Float_t avouternum  = 0;
+  Int_t   nvalid      = 0;
+  Float_t avinnerped  = 0.;
+  Float_t avinnerprms = 0.;
+  Int_t   avinnernum  = 0;
+  Float_t avouterped  = 0.;
+  Float_t avouterprms = 0.;
+  Int_t   avouternum  = 0;
 
   for (Int_t pixid=0; pixid<fPedestals->GetSize(); pixid++)
@@ -468,37 +528,20 @@
         continue;
 
-      MPedestalPix &ped = (*fPedestals)[pixid];
-
+      MPedestalPix  &ped = (*fPedestals)[pixid];
+      MBadPixelsPix &bad = (*fBadPixels)[pixid];
 
       if (fGeom->GetPixRatio(pixid) == 1.)
-        FinalizePedestals(ped,pix,avinnerped,avinnerprms,avinnernum);
+        {
+          FinalizePedestals(ped,pix,avinnerped,avinnerprms);
+          avinnernum++;
+        }
       else
-        FinalizePedestals(ped,pix,avouterped,avouterprms,avouternum);
-
-
-      MBadPixelsPix         &bad = (*fBadPixels)[pixid];
-
-      pix.CheckChargeValidity (&bad);
-      pix.CheckTimeValidity   (&bad);
-      
-      if (bad.IsUnsuitable(MBadPixelsPix::kUnsuitableRun))
-        continue;
-      
-      nvalid++;
-
-      if (!pix.CalcReducedSigma())
         {
-          *fLog << warn << GetDescriptor() 
-                << ": Could not calculate reduced sigmas of pixel: " << pix.GetPixId() << endl;
-          bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
-	  continue;
+          FinalizePedestals(ped,pix,avouterped,avouterprms);
+          avouternum++;
         }
-      
-      if (!pix.CalcFFactorMethod())
-        {
-          *fLog << warn << GetDescriptor() 
-                << ": Could not calculate F-Factor of pixel: " << pix.GetPixId() << endl;
-          bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
-        }
+
+      if (FinalizeCharges(pix,bad))
+          nvalid++;
     }
   
@@ -516,54 +559,9 @@
   }
 
-  MCalibrationChargePix *avinnerpix = fCam->GetAverageInnerPix();
-  MCalibrationChargePix *avouterpix = fCam->GetAverageOuterPix();
-  //
-  // set the pedestans in the calibration camera
-  //
-  if (avinnerpix->IsHiGainSaturation())
-  {
-      avinnerpix->SetPedestal(avinnerped/avinnernum  * fNumLoGainSamples,
-			      avinnerprms/avinnernum * fSqrtLoGainSamples,
-			      avinnerprms/avinnernum * fSqrtLoGainSamples/avinnernum);
-      avinnerpix->CalcLoGainPedestal((Float_t)fNumLoGainSamples);
-  }
-  else
-  {
-      avinnerpix->SetPedestal(avinnerped/avinnernum  * fNumHiGainSamples,
-                              avinnerprms/avinnernum * fSqrtHiGainSamples,
-         	              avinnerprms/avinnernum * fSqrtHiGainSamples/avinnernum);
-  }
-
-  if (avouterpix->IsHiGainSaturation())
-  {
-      avouterpix->SetPedestal(avouterped/avouternum  * fNumLoGainSamples,
-			      avouterprms/avouternum * fSqrtLoGainSamples,
-			      avouterprms/avouternum * fSqrtLoGainSamples/avouternum);
-      avouterpix->CalcLoGainPedestal((Float_t)fNumLoGainSamples);
-  }
-  else
-  {
-      avouterpix->SetPedestal(avouterped/avouternum  * fNumHiGainSamples,
-			      avouterprms/avouternum * fSqrtHiGainSamples,
-			      avouterprms/avouternum * fSqrtHiGainSamples/avouternum);
-  }
-
-  MBadPixelsPix *bad = fCam->GetAverageInnerBadPix();
-  
-  avinnerpix->CheckChargeValidity(bad);
-  avinnerpix->CheckTimeValidity(bad);
-
-  if (bad->IsCalibrationSignalOK())
-    if (!avinnerpix->CalcReducedSigma())
-      avinnerpix->CalcFFactorMethod();
-
-  bad = fCam->GetAverageInnerBadPix();
-
-  avouterpix->CheckChargeValidity(bad);
-  avouterpix->CheckTimeValidity(bad);
-
-  if (bad->IsCalibrationSignalOK())  
-    if (!avouterpix->CalcReducedSigma())
-      avouterpix->CalcFFactorMethod();
+  FinalizeAvPedestals(*fCam->GetAverageInnerPix(), avinnerped, avinnerprms,avinnernum);
+  FinalizeAvPedestals(*fCam->GetAverageOuterPix(), avouterped, avouterprms,avouternum);  
+
+  FinalizeCharges(*fCam->GetAverageInnerPix(),*fCam->GetAverageInnerBadPix());
+  FinalizeCharges(*fCam->GetAverageOuterPix(),*fCam->GetAverageOuterBadPix());  
 
   // 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 3555)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 3556)
@@ -27,4 +27,5 @@
 class MExtractedSignalCam;
 class MBadPixelsCam;
+class MBadPixelsPix;
 class MTime;
 class MCalibrationChargeCalc : public MTask
@@ -62,7 +63,9 @@
   Int_t  PostProcess();
 
-  void FinalizePedestals(MPedestalPix &ped, MCalibrationChargePix &cal,
-                         Float_t &avped, Float_t &avrms, Float_t &avnum);
+  void FinalizePedestals(const MPedestalPix &ped, MCalibrationChargePix &cal,
+                         Float_t &avped, Float_t &avrms);
+  void FinalizeAvPedestals(MCalibrationChargePix &cal, Float_t avped, Float_t avrms, Int_t avnum);
   
+  Bool_t FinalizeCharges(MCalibrationChargePix &cal, MBadPixelsPix &bad);
   
 public:
