Index: /trunk/MagicSoft/Mars/macros/calibration.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/calibration.C	(revision 2627)
+++ /trunk/MagicSoft/Mars/macros/calibration.C	(revision 2628)
@@ -105,8 +105,11 @@
     read2.DisableAutoScheme();
 
+    MExtractSignal   sigsig;
     MCalibrationCalc calcalc;
 //    calcalc.SetSkipTFits();
+    MExtractedSignalCam   sigcam;
 
     plist2.AddToList(&geomcam);
+    plist2.AddToList(&sigcam);
 
     //
@@ -118,4 +121,5 @@
     tlist2.AddToList(&read2);
     tlist2.AddToList(&calcalc);
+    tlist2.AddToList(&sigsig);
 
     MHCamEvent hist2;
Index: /trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc	(revision 2627)
+++ /trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc	(revision 2628)
@@ -93,4 +93,7 @@
 #include "MRawEvtPixelIter.h"
 
+#include "MExtractedSignalCam.h"
+#include "MExtractedSignalPix.h"
+
 #include "MTime.h"
 #include "TMath.h"
@@ -189,4 +192,12 @@
         return kFALSE;
       }
+
+
+    fSignals = (MExtractedSignalCam*)pList->FindObject("MExtractedSignalCam");
+    if (!fSignals)
+      {
+        *fLog << err << dbginf << "Cannot find MExtractedSignalCam ... aborting" << endl;
+        return kFALSE;
+      }
     
     return kTRUE;
@@ -290,47 +301,19 @@
       {
 
-        UShort_t sat = 0;
-
-        const Int_t pixid = pixel.GetPixelId();
-
-        Byte_t mid  = pixel.GetIdxMaxHiGainSample();
-        UInt_t max  = pixel.GetMaxHiGainSample();
-
-        MPedestalPix    &ped = (*fPedestals)[pixid]; 
+	const UInt_t pixid = pixel.GetPixelId();
+
+	MExtractedSignalPix &sig =  (*fSignals)[pixid];
+	Float_t sum = sig.GetExtractedSignal();
+	Bool_t  logain = sig.IsLoGainUsed();
+
+	Byte_t mid;
+
+	if (logain)
+	    mid  = pixel.GetIdxMaxLoGainSample();
+	else
+	    mid  = pixel.GetIdxMaxHiGainSample();
+
+
 	MCalibrationPix &pix = (*fCalibrations)[pixid];
-
-        Float_t pedes  = ped.GetPedestal();
-	Float_t sum;
-
-        //
-        // FIXME: This is preliminary, we will change to pedestals per slice!!!
-        // Assume pedestals per time slice ==> multiply with number of slices
-        //
-
-	if (max < gkSaturationLimit)  // take Hi Gain
-	  {
-	    sum = (float)pixel.GetSumHiGainSamples() - pedes*fNumHiGainSamples;  
-	  }
-	else 	                      // Lo Gain
-	  {
-
-	    sat++;
-	    pix.SetHiGainSaturation();
-
-	    sum = (float)pixel.GetSumLoGainSamples() - pedes*fNumLoGainSamples ;
-	    sum *= gkConversionHiLo; 
-
-            max = pixel.GetMaxLoGainSample();
-            mid = pixel.GetIdxMaxLoGainSample();
-
-	    if (max > gkSaturationLimit)
-	      {
-		*fLog << err << dbginf 
-		      << "Warning: Saturation of Lo Gain reached in pixel: " 
-		      << pixid << " " << "   sum = " << sum << endl;
-		fHistOverFlow++;
-	      }
-
-	  }
 
         switch(pixid)
@@ -364,5 +347,5 @@
           default:
 
-	    if (sat)
+	    if (logain)
 	      {
 		
Index: /trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.h
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.h	(revision 2627)
+++ /trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.h	(revision 2628)
@@ -20,4 +20,5 @@
 class MPedestalCam;
 class MCalibrationCam;
+class MExtractedSignalCam;
 
 class MTime;
@@ -29,4 +30,5 @@
   MPedestalCam             *fPedestals;    // Pedestals of all pixels in the camera
   MCalibrationCam          *fCalibrations; // Calibration events of all pixels in the camera
+  MExtractedSignalCam      *fSignals;      // Calibration events of all pixels in the camera
 
   MRawEvtData              *fRawEvt;       // raw event data (time slices)
