Index: trunk/MagicSoft/Mars/manalysis/MCalibrationCam.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationCam.cc	(revision 2664)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationCam.cc	(revision 2665)
@@ -37,4 +37,5 @@
 #include "MCalibrationCam.h"
 #include "MCalibrationPix.h"
+#include "MHCalibrationPixel.h"
 #include "MCalibrationBlindPix.h"
 #include "MCalibrationConfig.h"
@@ -63,5 +64,6 @@
       fMeanNrPhotInnerPixErr(-1.),
       fOffsets(NULL),
-      fSlopes(NULL)
+      fSlopes(NULL),
+      fOffvsSlope(NULL)
 {
     fName  = name  ? name  : "MCalibrationCam";
@@ -92,4 +94,6 @@
   if (fSlopes)
     delete fSlopes;
+  if (fOffvsSlope)
+    delete fOffvsSlope;
 
 }
@@ -98,26 +102,38 @@
 {
 
-  fOffsets = new TH1D("pp","Offsets of the HiGain LoGain Fit",100,-300.,300.);
-  fSlopes  = new TH1D("mm","Slopess of the HiGain LoGain Fit",100,-3.,3.);
+  if (!fOffsets)
+    fOffsets = new TH1D("pp","Offsets of the HiGain LoGain Fit",100,-600.,400.);
+  if (!fSlopes)
+    fSlopes  = new TH1D("mm","Slopes of the HiGain LoGain Fit",100,-2.,2.);
+  if (!fOffvsSlope)
+    fOffvsSlope = new TH2D("aa","Slopes vs Offsets of the HiGain LoGain Fit",100,-600.,400.,100,-2.,2.);
 
   TIter Next(fPixels);
   MCalibrationPix *pix;
+  MHCalibrationPixel *hist;
   while ((pix=(MCalibrationPix*)Next()))
     {
-
-      fOffsets->Fill(pix->GetHist()->GetOffset());
-      fSlopes->Fill(pix->GetHist()->GetSlope());
-
-    }
-
-  TCanvas *c1 = new TCanvas();
-  c1->Divide(1,2);
-  c1->cd(1);
-  fOffsets->Draw();
+      hist = pix->GetHist();
+      hist->FitHiGainvsLoGain();
+      fOffsets->Fill(hist->GetOffset(),1.);
+      fSlopes->Fill(hist->GetSlope(),1.);
+      fOffvsSlope->Fill(hist->GetOffset(),hist->GetSlope(),1.);
+    }
+
+   TCanvas *c1 = new TCanvas();
+
+   c1->Divide(1,3);
+   c1->cd(1);
+   fOffsets->Draw();
+   gPad->Modified();
+   gPad->Update();
+
+   c1->cd(2);
+  fSlopes->Draw();
   gPad->Modified();
   gPad->Update();
 
-  c1->cd(2);
-  fSlopes->Draw();
+  c1->cd(3);
+  fOffvsSlope->Draw("col1");
   gPad->Modified();
   gPad->Update();
Index: trunk/MagicSoft/Mars/manalysis/MCalibrationCam.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationCam.h	(revision 2664)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationCam.h	(revision 2665)
@@ -28,4 +28,8 @@
 #ifndef ROOT_TH1D
 #include <TH1D.h>
+#endif
+
+#ifndef ROOT_TH2D
+#include <TH2D.h>
 #endif
 
@@ -70,4 +74,5 @@
   TH1D* fSlopes;
   
+  TH2D* fOffvsSlope;
 
 public:
Index: trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc	(revision 2664)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc	(revision 2665)
@@ -69,5 +69,5 @@
       fConversionSigmaPINDiodeMethod(-1.),
       fHiGainSaturation(kFALSE),
-      fElectronicPedRms(3.67)
+      fElectronicPedRms(1.5)
 {
 
@@ -150,6 +150,9 @@
       if (fHiGainSaturation)
 	{
-
-	  Float_t logainrms = fElectronicPedRms + (TMath::Sqrt(fPedRms*fPedRms - fElectronicPedRms*fElectronicPedRms));
+	  
+	  Float_t nsb = TMath::Sqrt(fPedRms*fPedRms - fElectronicPedRms*fElectronicPedRms);
+
+	  //	  Float_t logainrms = fElectronicPedRms + (TMath::Sqrt(fPedRms*fPedRms - fElectronicPedRms*fElectronicPedRms));
+	  Float_t logainrms = (TMath::Sqrt(nsb*nsb + 100.*fElectronicPedRms*fElectronicPedRms));
 	  if (logainrms > 0.)
 	    fRSigmaSquare = (fSigmaCharge*fSigmaCharge) - (logainrms*logainrms);
Index: trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2664)
+++ trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2665)
@@ -230,11 +230,11 @@
 
 	if (satHi)
-	  pix.SetArrivalTimes((float)(midlo+3),0.,0.);
+	  pix.SetArrivalTimes((Float_t)(midlo+3),0.,0.);
 	else
-	  pix.SetArrivalTimes((float)(midhi+3),0.,0.);
+	  pix.SetArrivalTimes((Float_t)(midhi+3),0.,0.);
 
       } /* while (pixel.Next()) */
 
-    fSignals->SetNumUsedFADCSlices(fNumHiGainSamples,fNumLoGainSamples);
+    fSignals->SetNumUsedFADCSlices(fNumHiGainSamples,3,8,fNumLoGainSamples,3,8);
     fSignals->SetReadyToSave();
 
Index: trunk/MagicSoft/Mars/manalysis/MExtractedSignalCam.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MExtractedSignalCam.h	(revision 2664)
+++ trunk/MagicSoft/Mars/manalysis/MExtractedSignalCam.h	(revision 2665)
@@ -19,4 +19,11 @@
     Byte_t fNumUsedLoGainFADCSlices;
 
+    Byte_t fFirstUsedSliceHiGain;
+    Byte_t fFirstUsedSliceLoGain;
+
+    Byte_t fLastUsedSliceHiGain;
+    Byte_t fLastUsedSliceLoGain;
+
+
 public:
 
@@ -32,8 +39,20 @@
     Byte_t GetNumUsedHiGainFADCSlices()    { return fNumUsedHiGainFADCSlices; }
     Byte_t GetNumUsedLoGainFADCSlices()    { return fNumUsedLoGainFADCSlices; }
-    void   SetNumUsedFADCSlices(Byte_t numh, Byte_t numl)   
+
+    Byte_t GetFirstUsedSliceHiGain()       { return fFirstUsedSliceHiGain; }
+    Byte_t GetLastUsedSliceHiGain()        { return fLastUsedSliceHiGain; }
+
+    Byte_t GetFirstUsedSliceLoGain()       { return fFirstUsedSliceLoGain; }
+    Byte_t GetLastUsedSliceLoGain()        { return fLastUsedSliceLoGain; }
+
+    void   SetNumUsedFADCSlices(Byte_t numh, Byte_t firsth, Byte_t lasth, 
+				Byte_t numl, Byte_t firstl, Byte_t lastl)   
                                            { 
 					     fNumUsedHiGainFADCSlices = numh;
+					     fFirstUsedSliceHiGain    = firsth;
+					     fLastUsedSliceHiGain     = lasth;
 					     fNumUsedLoGainFADCSlices = numl;  
+					     fFirstUsedSliceLoGain    = firstl;
+					     fLastUsedSliceLoGain     = lastl;
 					   }
 
