Index: trunk/MagicSoft/Mars/manalysis/MCalibrationCam.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationCam.h	(revision 2661)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationCam.h	(revision 2662)
@@ -110,5 +110,5 @@
   Bool_t CalcNrPhotInnerPixel();
   Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
-  void DrawPixelContent(Int_t num) const;    
+  void   DrawPixelContent(Int_t num) const;    
   
   MCalibrationPix      *GetCalibrationPix(Int_t idx) const;
Index: trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2661)
+++ trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2662)
@@ -127,6 +127,6 @@
     //fNumHiGainSamples =  fRunHeader->GetNumSamplesHiGain();
     //fNumLoGainSamples =  fRunHeader->GetNumSamplesLoGain();
-    fNumHiGainSamples =  fAfter+fBefore;
-    fNumLoGainSamples =  fAfter+fBefore;
+    fNumHiGainSamples =  6;
+    fNumLoGainSamples =  6;
 
     fSqrtHiGainSamples = TMath::Sqrt((float)fNumHiGainSamples); 
@@ -221,7 +221,7 @@
 	  }
 
-	pix.SetExtractedSignal((float)sumHi - pedes*(float)fNumHiGainSamples,
+	pix.SetExtractedSignal((Float_t)sumHi - pedes*(Float_t)fNumHiGainSamples,
 			       pedrms*fSqrtHiGainSamples,
-			       ((float)sumLo - pedes*(float)fNumLoGainSamples)*fConversionHiLo,
+			       ((Float_t)sumLo - pedes*(Float_t)fNumLoGainSamples)*fConversionHiLo,
 			       pedrms*fSqrtLoGainSamples
 			       );
Index: trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.cc	(revision 2661)
+++ trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.cc	(revision 2662)
@@ -65,5 +65,4 @@
 MHCalibrationPixel::MHCalibrationPixel(const char *name, const char *title)
       : fPixId(-1),
-	fHiGainvsLoGain(NULL),
 	fTotalEntries(0),
 	fHiGains(NULL),
@@ -71,4 +70,5 @@
         fChargeGausFit(NULL), 
 	fTimeGausFit(NULL), 
+	fHivsLoGain(NULL),
 	fFitLegend(NULL),
 	fLowerFitRange(-2000.),
@@ -166,7 +166,4 @@
   delete fHChargevsNLoGain;
 
-  if (fHiGainvsLoGain)
-    delete fHiGainvsLoGain;
-
   delete fHiGains;
   delete fLoGains;
@@ -178,4 +175,7 @@
   if (fFitLegend)
     delete fFitLegend;
+  if (fHivsLoGain)
+    delete fHivsLoGain;
+
 
 }
@@ -379,31 +379,15 @@
 {
 
-  if (!fHiGainvsLoGain)
-    {
-
-    // Create TGraph, we set the points later, get hold of the number of points with fTotalEntries
-    fHiGainvsLoGain = new TGraph(fTotalEntries,fHiGains->GetArray(),fLoGains->GetArray());
-    fHiGainvsLoGain->SetName("HiGainvsLoGain");
-    fHiGainvsLoGain->SetTitle("Plot the High Gain vs. Low Gain");
-    fHiGainvsLoGain->GetXaxis()->Set(300,0.,1500.);
-    fHiGainvsLoGain->GetYaxis()->Set(400,0.,2000.);
-    fHiGainvsLoGain->GetXaxis()->SetTitle("Sum of Charges High Gain");
-    fHiGainvsLoGain->GetYaxis()->SetTitle("Sum of Charges Low Gain");
-    fHiGainvsLoGain->SetMarkerStyle(7);
-
-    }
-
-  TProfile *hist = new TProfile("PePe","Shit is still moving",100,0.,1000.,0.,1000.);
-
-  for (Int_t i=0;i<fTotalEntries;i++)
-      hist->Fill(fHiGains->At(i),fLoGains->At(i),1);
-
+  if (!fHivsLoGain)
+    FitHiGainvsLoGain();
+      
+  
   gStyle->SetOptFit(0);
   gStyle->SetOptStat(1111111);
-    
-    TCanvas *c = MakeDefCanvas(this,600,900); 
-
-    gROOT->SetSelectedPad(NULL);
-
+  
+  TCanvas *c = MakeDefCanvas(this,600,900); 
+  
+  gROOT->SetSelectedPad(NULL);
+  
     c->Divide(2,4);
 
@@ -440,13 +424,5 @@
 	gROOT->SetSelectedPad(NULL);
 	gStyle->SetOptFit();
-	//	fHiGainvsLoGain->DrawClone("Apq")->SetBit(kCanDelete);
-	//	fHiGainvsLoGain->Fit("p1","q");
-	hist->Draw("prof");
-	hist->Fit("pol1","pepe","markus",hist->GetMean()-3.*hist->GetRMS(),hist->GetMean()+2.*hist->GetRMS());
-
-	fOffset = hist->GetFunction("pepe")->GetParameter(0);
-	fSlope  = hist->GetFunction("pepe")->GetParameter(1);
-
-	cout << "Pepe: " << fOffset << " Markus: " << fSlope << endl;
+	fHivsLoGain->Draw("prof");
 
 
@@ -484,8 +460,5 @@
 	gROOT->SetSelectedPad(NULL);
 	gStyle->SetOptFit();
-	hist->Draw("prof");
-	hist->Fit("p1","pepe","markus",hist->GetMean()-3.*hist->GetRMS(),hist->GetMean()+3.*hist->GetRMS());
-	//	fHiGainvsLoGain->DrawClone("Apq")->SetBit(kCanDelete);
-	//	fHiGainvsLoGain->Fit("p1","q");
+	fHivsLoGain->Draw("prof");
 	gPad->Modified();
 	gPad->Update();
@@ -563,4 +536,25 @@
 }
 
+void MHCalibrationPixel::FitHiGainvsLoGain()
+{
+
+  if (fHivsLoGain)
+    return;
+
+  gStyle->SetOptFit();
+
+  fHivsLoGain = new TProfile("HiGainvsLoGain","Plot the High Gain vs. Low Gain",100,0.,1000.,0.,1000.);
+  fHivsLoGain->GetXaxis()->SetTitle("Sum of Charges High Gain");
+  fHivsLoGain->GetYaxis()->SetTitle("Sum of Charges Low Gain");
+  
+  for (Int_t i=0;i<fTotalEntries;i++)
+    fHivsLoGain->Fill(fHiGains->At(i),fLoGains->At(i),1);
+  
+  fHivsLoGain->Fit("pol1","rq","",fHivsLoGain->GetMean()-2.5*fHivsLoGain->GetRMS(),fHivsLoGain->GetMean()+2.*fHivsLoGain->GetRMS());
+  
+  fOffset = fHivsLoGain->GetFunction("pol1")->GetParameter(0);
+  fSlope  = fHivsLoGain->GetFunction("pol1")->GetParameter(1);
+  
+}
 
 
Index: trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.h	(revision 2661)
+++ trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.h	(revision 2662)
@@ -18,6 +18,6 @@
 #endif
 
-#ifndef ROOT_TGraph
-#include "TGraph.h"
+#ifndef ROOT_TProfile
+#include "TProfile.h"
 #endif
 
@@ -36,5 +36,4 @@
 
   Int_t fPixId;                  // Pixel Nr
-  TGraph *fHiGainvsLoGain;       //! Plot the HiGain vs. the LoGain
   Int_t fTotalEntries;           // Number of entries
 
@@ -55,4 +54,6 @@
   TF1* fTimeGausFit;
   
+  TProfile* fHivsLoGain;
+
   TPaveText *fFitLegend;  
   
@@ -102,4 +103,5 @@
 
   void   SetPointInGraph(Float_t qhi, Float_t qlo);
+  void   FitHiGainvsLoGain();
 
   Bool_t FillChargeLoGain(Float_t q)             { return (fHChargeLoGain->Fill(q) > -1); }
