Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 4601)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 4602)
@@ -21,4 +21,11 @@
 
   2004/08/12: Markus Gaug
+
+   * mcalib/MHCalibrationChargeBlindPix.[h,cc]
+     - adapt Draw() and DrawLegend() for the datacheck display
+
+   * mcalib/MHCalibrationChargeBlindCam.[h,cc]
+     - new member function fFitFunc, can be set from outside and is 
+       further passed onto the MHCalibrationChargeBlindPix's
 
    * mcalib/MCalibrateData.[h,cc]
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h	(revision 4601)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h	(revision 4602)
@@ -120,5 +120,5 @@
 
   // Clone
-  virtual TObject *Clone(const char *) const;
+  virtual TObject *Clone(const char *name="") const;
 
   // Draw
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindCam.cc	(revision 4601)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindCam.cc	(revision 4602)
@@ -62,4 +62,6 @@
 // Initializes and sets owner of:
 // - fBlindPixelsArray
+// 
+// Sets fFitFunc to kEPoisson4
 //
 MHCalibrationChargeBlindCam::MHCalibrationChargeBlindCam(const char *name, const char *title)
@@ -72,4 +74,7 @@
   fBlindPixelsArray = new TObjArray;
   fBlindPixelsArray->SetOwner();
+
+  fFitFunc = MHCalibrationChargeBlindPix::kEPoisson4;
+
 }
 
@@ -212,4 +217,5 @@
 	  TH1F *h = (*this)[i].GetHGausHist();
 	  h->SetTitle( Form("%s%s", h->GetTitle()," Runs: "));
+          (*this)[i].ChangeFitFunc(fFitFunc);
 	  (*this)[i].SetupFill(pList);
 	  (*this)[i].SetCalibrationChargeBlindPix(&(*fCam)[i]);
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindCam.h	(revision 4601)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindCam.h	(revision 4602)
@@ -12,7 +12,9 @@
 #include "MCamEvent.h"
 #endif
-
 #ifndef MARS_MBadPixelsPix
 #include "MBadPixelsPix.h"
+#endif
+#ifndef MARS_MHCalibrationChargeBlindPix
+#include "MHCalibrationChargeBlindPix.h"
 #endif
 
@@ -31,4 +33,6 @@
   TObjArray *fBlindPixelsArray;            //-> Array of calibration pixels, one per pixel
 
+  MHCalibrationChargeBlindPix::FitFunc_t fFitFunc;
+  
 public:
 
@@ -51,4 +55,6 @@
         MHCalibrationChargeBlindPix &operator[] (UInt_t i);
   const MHCalibrationChargeBlindPix &operator[] (UInt_t i)  const;
+
+  void   SetFitFunc(const MHCalibrationChargeBlindPix::FitFunc_t func)  { fFitFunc = func;  }  
   
   ClassDef(MHCalibrationChargeBlindCam, 1)	// Histogram class for Blind Pixel Calibration
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindPix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindPix.cc	(revision 4601)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindPix.cc	(revision 4602)
@@ -74,8 +74,10 @@
 #include <TCanvas.h>
 #include <TPaveText.h>
+#include <TPaveStats.h>
 
 #include <TVector.h>
 #include <TF1.h>
 #include <TH1.h>
+#include <TH2D.h>
 #include <TRandom.h>
 
@@ -99,8 +101,8 @@
 const Float_t  MHCalibrationChargeBlindPix::gkSignalInitializer  = -9999.;
 
-const Int_t    MHCalibrationChargeBlindPix::fgChargeNbins        = 512;
+const Int_t    MHCalibrationChargeBlindPix::fgChargeNbins        = 128;
 const Axis_t   MHCalibrationChargeBlindPix::fgChargeFirst        = -0.5;
-const Axis_t   MHCalibrationChargeBlindPix::fgChargeLast         = 255.5;
-const Float_t  MHCalibrationChargeBlindPix::fgSinglePheCut       =  30.;
+const Axis_t   MHCalibrationChargeBlindPix::fgChargeLast         = 511.5;
+const Float_t  MHCalibrationChargeBlindPix::fgSinglePheCut       =  20.;
 const Float_t  MHCalibrationChargeBlindPix::fgNumSinglePheLimit  =  50.;
 // --------------------------------------------------------------------------
@@ -150,9 +152,9 @@
     SetNumSinglePheLimit();
     SetProbLimit(0.001);
-    SetBinsAfterStripping(64);
+    SetBinsAfterStripping(0);
 
     fHGausHist.SetName("HCalibrationChargeBlindPix");
     fHGausHist.SetTitle("Distribution of Summed FADC slices Blind Pixel");  
-    fHGausHist.SetXTitle("Sum FADC Slices");
+    fHGausHist.SetXTitle("Signal Amplitude");
     fHGausHist.SetYTitle("Nr. of events");
 
@@ -222,5 +224,5 @@
   
   //  fFitFunc = kEMichele;
-  fFitFunc = kEPoisson4;
+  fFitFunc = kEPoisson5;
 
   fNumSinglePhes    = 0;
@@ -257,5 +259,4 @@
     fHPedestalFADCSlices = NULL;
   }
-
 
   MHGausEvents::Clear();
@@ -504,6 +505,6 @@
     fBlindPix->SetValid(IsPedestalFitOK());
 
-  fBlindPix->SetLambda      (    fLambdaCheck          );
-  fBlindPix->SetLambdaVar   (    fLambdaCheckErr*fLambdaCheckErr );
+  fBlindPix->SetLambda      (    fLambda               );
+  fBlindPix->SetLambdaVar   (    fLambdaErr*fLambdaErr );
   fBlindPix->SetMu0         (    fMu0                  );
   fBlindPix->SetMu0Err      (    fMu0Err               );
@@ -516,6 +517,6 @@
   fBlindPix->SetProb        (    fProb                 );
 
-  fBlindPix->SetLambdaCheck    ( fLambda               );
-  fBlindPix->SetLambdaCheckErr ( fLambdaErr            );
+  fBlindPix->SetLambdaCheck    ( fLambdaCheck          );
+  fBlindPix->SetLambdaCheckErr ( fLambdaCheckErr       );
 
   return kTRUE;
@@ -630,5 +631,5 @@
   //
   const Stat_t   entries      = fHGausHist.Integral("width");
-  const Double_t lambda_guess = 0.05;
+  const Double_t lambda_guess = 0.5;
   const Double_t maximum_bin  = fHGausHist.GetBinCenter(fHGausHist.GetMaximumBin());
   const Double_t norm         = entries/TMath::Sqrt(TMath::TwoPi());
@@ -641,4 +642,5 @@
     case kEPoisson4:
       fSinglePheFit = new TF1("SinglePheFit",&fPoissonKto4,rmin,rmax,6);
+      rmin += 6.5;
       break;
     case kEPoisson5:
@@ -652,5 +654,5 @@
       break;
     case kEMichele:
-      fSinglePheFit = new TF1("SinglePheFit",&fFitFuncMichele,rmin,rmax,10);
+      fSinglePheFit = new TF1("SinglePheFit",&fFitFuncMichele,rmin,rmax,9);
       break;
     default:
@@ -666,16 +668,15 @@
   }
   
-  const Double_t mu_0_guess = maximum_bin;
-  const Double_t si_0_guess = 40.;
-  const Double_t mu_1_guess = mu_0_guess + 4000.;
+  const Double_t mu_0_guess = 13.5;
+  const Double_t si_0_guess = 2.5;
+  const Double_t mu_1_guess = 30.;
   const Double_t si_1_guess = si_0_guess + si_0_guess;
   // Michele
-  const Double_t lambda_1cat_guess = 0.05;
+  const Double_t lambda_1cat_guess = 1.00;
   const Double_t lambda_1dyn_guess = lambda_1cat_guess/10.;
-  const Double_t mu_1cat_guess = 1000.;
-  const Double_t mu_1dyn_guess = 2500.;
-  const Double_t si_1cat_guess = si_0_guess+ 500.;
-  const Double_t si_1dyn_guess = si_0_guess+ 1000.;
-  const Double_t offset_guess  = 0.5;
+  const Double_t mu_1cat_guess = 50.;
+  const Double_t mu_1dyn_guess = 17.;
+  const Double_t si_1cat_guess = si_0_guess + si_0_guess;
+  const Double_t si_1dyn_guess = si_0_guess + si_0_guess/2.;
   // Polya
   const Double_t excessPoisson_guess = 0.5;
@@ -693,32 +694,22 @@
     case kEPoisson4:
 	fSinglePheFit->SetParNames(  "#lambda",   "#mu_{0}",    "#mu_{1}", "#sigma_{0}",  "#sigma_{1}","Area");
-        //        fSinglePheFit->SetParameters(lambda_guess,fMeanPedestal,mu_1_guess,fSigmaPedestal,si_1_guess,norm);
-        fSinglePheFit->SetParameters(0.05,10.,75.,20.,70.,norm);
-
-	fSinglePheFit->SetParLimits(0,0.,0.5);
-        //        fSinglePheFit->SetParLimits(1,
-        //                                    fMeanPedestal-5.*fMeanPedestalErr,
-        //                                    fMeanPedestal+5.*fMeanPedestalErr);
-        fSinglePheFit->SetParLimits(1,0.,30.);
-        //	fSinglePheFit->SetParLimits(2,rmin,rmax);
-	fSinglePheFit->SetParLimits(2,50.,150.);
-        //        fSinglePheFit->SetParLimits(3,
-        //                                    fSigmaPedestal-5.*fSigmaPedestalErr,
-        //                                    fSigmaPedestal+5.*fSigmaPedestalErr);
-        fSinglePheFit->SetParLimits(3,0.,50.);
-        //	fSinglePheFit->SetParLimits(4,0.,(rmax-rmin));
-	fSinglePheFit->SetParLimits(4,0.,100.);
-	fSinglePheFit->SetParLimits(5,norm-(0.5*norm),norm+(0.5*norm));
+        fSinglePheFit->SetParameters(lambda_guess,mu_0_guess,mu_1_guess,si_0_guess,si_1_guess,norm);
+	fSinglePheFit->SetParLimits(0,0.,2.);
+        fSinglePheFit->SetParLimits(1,10.,17.);
+	fSinglePheFit->SetParLimits(2,17.,50.);
+        fSinglePheFit->SetParLimits(3,1.,5.);
+	fSinglePheFit->SetParLimits(4,5.,30.);
+	fSinglePheFit->SetParLimits(5,norm-(0.5*norm),norm+(0.7*norm));
 	break;
     case kEPoisson5:
     case kEPoisson6:
-      fSinglePheFit->SetParameters(lambda_guess,mu_0_guess,mu_1_guess,si_0_guess,si_1_guess,norm);
       fSinglePheFit->SetParNames("#lambda","#mu_{0}","#mu_{1}","#sigma_{0}","#sigma_{1}","Area");
-      fSinglePheFit->SetParLimits(0,0.,1.);
-      fSinglePheFit->SetParLimits(1,rmin,(rmax-rmin)/1.5);
-      fSinglePheFit->SetParLimits(2,(rmax-rmin)/2.,(rmax-0.05*(rmax-rmin)));
-      fSinglePheFit->SetParLimits(3,1.0,(rmax-rmin)/2.0);
-      fSinglePheFit->SetParLimits(4,1.0,(rmax-rmin)/2.5);
-      fSinglePheFit->SetParLimits(5,norm-0.1,norm+0.1);
+      fSinglePheFit->SetParameters(lambda_guess,mu_0_guess,800.,si_0_guess,500.,norm);
+      fSinglePheFit->SetParLimits(0,0.,2.);
+      fSinglePheFit->SetParLimits(1,0.,100.);
+      fSinglePheFit->SetParLimits(2,200.,1500.);
+      fSinglePheFit->SetParLimits(3,0.,250.);
+      fSinglePheFit->SetParLimits(4,100.,1000.);
+      fSinglePheFit->SetParLimits(5,norm/2.,norm+(0.7*norm));
       break;
 
@@ -749,22 +740,21 @@
       break;
     case kEMichele:
-      fSinglePheFit->SetParameters(lambda_1cat_guess, lambda_1dyn_guess, 
-                                   20., mu_1cat_guess,mu_1dyn_guess,
-                                   si_0_guess, si_1cat_guess,si_1dyn_guess,
-                                   norm, offset_guess);
       fSinglePheFit->SetParNames("#lambda_{cat}","#lambda_{dyn}",
                                  "#mu_{0}","#mu_{1cat}","#mu_{1dyn}",
                                  "#sigma_{0}","#sigma_{1cat}","#sigma_{1dyn}",
-                                 "Area","offset");
-      fSinglePheFit->SetParLimits(0,0.,0.5);
-      fSinglePheFit->SetParLimits(1,0.,0.05); 
-      fSinglePheFit->SetParLimits(2,0.,fSinglePheCut);    
-      fSinglePheFit->SetParLimits(3,1500.,5500.);    
-      fSinglePheFit->SetParLimits(4,fSinglePheCut,1500.);    
-      fSinglePheFit->SetParLimits(5,0.1,fSinglePheCut/1.25);    
-      fSinglePheFit->SetParLimits(6,fSinglePheCut/1.25,1000.);    
-      fSinglePheFit->SetParLimits(7,1000.,1500.);    
-      fSinglePheFit->SetParLimits(8,norm/1.1,norm*1.1);
-      fSinglePheFit->SetParLimits(9,0.,1.);
+                                 "Area");
+      fSinglePheFit->SetParameters(lambda_1cat_guess, lambda_1dyn_guess, 
+                                   mu_0_guess, mu_1cat_guess,mu_1dyn_guess,
+                                   si_0_guess, si_1cat_guess,si_1dyn_guess,
+                                   norm);
+      fSinglePheFit->SetParLimits(0,0.01,2.0);
+      fSinglePheFit->SetParLimits(1,0.,0.5); 
+      fSinglePheFit->SetParLimits(2,10.,16.);    
+      fSinglePheFit->SetParLimits(3,25.,50.);    
+      fSinglePheFit->SetParLimits(4,16.,18.5);    
+      fSinglePheFit->SetParLimits(5,1.,5.);    
+      fSinglePheFit->SetParLimits(6,10.,50.);    
+      fSinglePheFit->SetParLimits(7,5.,10.);    
+      fSinglePheFit->SetParLimits(8,norm/2.,norm*2.5);
       break;
 
@@ -944,6 +934,8 @@
 // Draw a legend with the fit results
 //
-void MHCalibrationChargeBlindPix::DrawLegend()
-{
+void MHCalibrationChargeBlindPix::DrawLegend(Option_t *opt)
+{
+
+  TString option(opt);
 
   if (!fFitLegend)
@@ -967,35 +959,49 @@
       
   const TString line6 =
-      Form("Mean #lambda (check) = %2.2f #pm %2.2f",fLambdaCheck,fLambdaCheckErr);
+      Form("Mean #lambda_{check} = %2.2f #pm %2.2f",fLambdaCheck,fLambdaCheckErr);
   TText *t2 = fFitLegend->AddText(line6.Data());
   t2->SetBit(kCanDelete);
-  
-  const TString line2 = 
-      Form("Pedestal: #mu_{0} = %2.2f #pm %2.2f",fMu0,fMu0Err);
-  TText *t3 = fFitLegend->AddText(line2.Data());
-  t3->SetBit(kCanDelete);
-  
-  const TString line3 =
-      Form("Width Pedestal: #sigma_{0} = %2.2f #pm %2.2f",fSigma0,fSigma0Err);
-  TText *t4 = fFitLegend->AddText(line3.Data());
-  t4->SetBit(kCanDelete);
-  
-  const TString line4 =
-      Form("1^{st} Phe-peak: #mu_{1} = %2.2f #pm %2.2f",fMu1,fMu1Err);
-  TText *t5 = fFitLegend->AddText(line4.Data());
-  t5->SetBit(kCanDelete);
-  
-  const TString line5 =
-      Form("Width 1^{st} Phe-peak: #sigma_{1} = %2.2f #pm %2.2f",fSigma1,fSigma1Err);
-  TText *t6 = fFitLegend->AddText(line5.Data());
-  t6->SetBit(kCanDelete);
+
+  if (option.Contains("datacheck"))
+    {
+      if (fLambda + 3.*fLambdaErr < fLambdaCheck - 3.*fLambdaCheckErr 
+          || 
+          fLambda - 3.*fLambdaErr > fLambdaCheck + 3.*fLambdaCheckErr )
+        {
+          TText *t = fFitLegend->AddText("#lambda and #lambda_{check} more than 3#sigma apart!");
+          t->SetBit(kCanDelete);
+        }
+    }
+  else
+    {
+
+      const TString line2 = 
+        Form("Pedestal: #mu_{0} = %2.2f #pm %2.2f",fMu0,fMu0Err);
+      TText *t3 = fFitLegend->AddText(line2.Data());
+      t3->SetBit(kCanDelete);
+      
+      const TString line3 =
+        Form("Width Pedestal: #sigma_{0} = %2.2f #pm %2.2f",fSigma0,fSigma0Err);
+      TText *t4 = fFitLegend->AddText(line3.Data());
+      t4->SetBit(kCanDelete);
+      
+      const TString line4 =
+        Form("1^{st} Phe-peak: #mu_{1} = %2.2f #pm %2.2f",fMu1,fMu1Err);
+      TText *t5 = fFitLegend->AddText(line4.Data());
+      t5->SetBit(kCanDelete);
+      
+      const TString line5 =
+        Form("Width 1^{st} Phe-peak: #sigma_{1} = %2.2f #pm %2.2f",fSigma1,fSigma1Err);
+      TText *t6 = fFitLegend->AddText(line5.Data());
+      t6->SetBit(kCanDelete);
+    }
   
   const TString line7 =
-      Form("#chi^{2} / N_{dof}: %4.2f / %3i",fChisquare,fNDF);
+    Form("#chi^{2} / N_{dof}: %4.2f / %3i",fChisquare,fNDF);
   TText *t7 = fFitLegend->AddText(line7.Data());
   t7->SetBit(kCanDelete);
   
   const TString line8 =
-      Form("Probability: %4.2f ",fProb);
+      Form("Probability: %6.4f ",fProb);
   TText *t8 = fFitLegend->AddText(line8.Data());
   t8->SetBit(kCanDelete);
@@ -1003,5 +1009,5 @@
   if (IsSinglePheFitOK())
   {
-      TText *t = fFitLegend->AddText(0.,0.,"Result of the Fit: OK");
+      TText *t = fFitLegend->AddText("Result of the Fit: OK");
       t->SetBit(kCanDelete);
   }
@@ -1054,6 +1060,7 @@
     {
       pad = oldpad;
-      pad->Divide(2,1);
+      pad->Divide(1,2);
       pad->cd(1);
+      fHGausHist.SetStats(0);
     }
   else
@@ -1064,5 +1071,5 @@
   }
 
-  if (!IsEmpty())
+  if (!IsEmpty() && !IsOnlyOverflow())
     gPad->SetLogy();
 
@@ -1070,22 +1077,28 @@
 
   fHGausHist.Draw(); 
-  if (fFGausFit)
+  if (fFGausFit )
   {
       fFGausFit->SetLineColor(kBlue);
       fFGausFit->Draw("same");
-      TLine *line = new TLine(fSinglePheCut, 0., fSinglePheCut, 10.);
-      line->SetBit(kCanDelete);
-      line->SetLineColor(kBlue);
-      line->SetLineWidth(3);
-      line->DrawLine(fSinglePheCut, 0., fSinglePheCut, 2.);
-  }
+      if (!option.Contains("datacheck"))
+        {
+          TLine *line = new TLine(fSinglePheCut, 0., fSinglePheCut, 10.);
+          line->SetBit(kCanDelete);
+          line->SetLineColor(kBlue);
+          line->SetLineWidth(3);
+          line->DrawLine(fSinglePheCut, 0., fSinglePheCut, 2.);
+        }
+  }
+  
   if (fSinglePheFit)
   {    
-      fSinglePheFit->SetLineColor(IsSinglePheFitOK() ? kGreen : kRed);          
-      fSinglePheFit->Draw("same");
+    fSinglePheFit->SetFillStyle(0);
+    fSinglePheFit->SetLineWidth(3);
+    fSinglePheFit->SetLineColor(IsSinglePheFitOK() ? kGreen : kRed);          
+    fSinglePheFit->Draw("same");
   }
 
   pad->cd(2);
-  DrawLegend();
+  DrawLegend(option.Data());
 
   if (option.Contains("datacheck"))
@@ -1098,10 +1111,23 @@
       if (fHSinglePheFADCSlices)
         delete fHSinglePheFADCSlices;
+
       fHSinglePheFADCSlices = new TH1F(fASinglePheFADCSlices);
       fHSinglePheFADCSlices->SetName("SinglePheFADCSlices");
-      fHSinglePheFADCSlices->SetTitle(Form("%s%f","Assumed Single Phe FADC Slices, Sum > ",fSinglePheCut));
+      fHSinglePheFADCSlices->SetTitle(Form("%s%4.1f","Assumed Single Phe FADC Slices, Sum > ",fSinglePheCut));
       fHSinglePheFADCSlices->SetXTitle("FADC slice number");
       fHSinglePheFADCSlices->SetYTitle("FADC counts");
-      fHSinglePheFADCSlices->Draw();
+      const Int_t nbins = fHSinglePheFADCSlices->GetNbinsX();
+      TH2D *nulls = new TH2D("Nulls",fHSinglePheFADCSlices->GetTitle(),nbins,0.,
+                            fHSinglePheFADCSlices->GetXaxis()->GetBinCenter(nbins),
+                            100,0.,50.);
+      nulls->SetDirectory(NULL);
+      nulls->SetBit(kCanDelete);
+      nulls->GetXaxis()->SetTitle(fHSinglePheFADCSlices->GetXaxis()->GetTitle());
+      nulls->GetYaxis()->SetTitle(fHSinglePheFADCSlices->GetYaxis()->GetTitle());  
+      nulls->GetXaxis()->CenterTitle();
+      nulls->GetYaxis()->CenterTitle();
+      nulls->SetStats(0);
+      nulls->Draw();
+      fHSinglePheFADCSlices->Draw("same");
     }
   
@@ -1115,8 +1141,20 @@
       fHPedestalFADCSlices = new TH1F(fAPedestalFADCSlices);
       fHPedestalFADCSlices->SetName("PedestalFADCSlices");
-      fHPedestalFADCSlices->SetTitle(Form("%s%f","Pedestal FADC Slices, Sum < ",fSinglePheCut));
+      fHPedestalFADCSlices->SetTitle(Form("%s%4.1f","Pedestal FADC Slices, Sum < ",fSinglePheCut));
       fHPedestalFADCSlices->SetXTitle("FADC slice number");
       fHPedestalFADCSlices->SetYTitle("FADC counts");
-      fHPedestalFADCSlices->Draw();
+      const Int_t nbins = fHPedestalFADCSlices->GetNbinsX();
+      TH2D *nullp = new TH2D("Nullp",fHPedestalFADCSlices->GetTitle(),nbins,0.,
+                            fHPedestalFADCSlices->GetXaxis()->GetBinCenter(nbins),
+                            100,0.,50.);
+      nullp->SetDirectory(NULL);
+      nullp->SetBit(kCanDelete);
+      nullp->GetXaxis()->SetTitle(fHPedestalFADCSlices->GetXaxis()->GetTitle());
+      nullp->GetYaxis()->SetTitle(fHPedestalFADCSlices->GetYaxis()->GetTitle());  
+      nullp->GetXaxis()->CenterTitle();
+      nullp->GetYaxis()->CenterTitle();
+      nullp->SetStats(0);
+      nullp->Draw();
+      fHPedestalFADCSlices->Draw("same");
     }
   
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindPix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindPix.h	(revision 4601)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeBlindPix.h	(revision 4602)
@@ -144,5 +144,5 @@
 
 private:
-  void DrawLegend();
+  void DrawLegend(Option_t *opt="");
   
   // Fits
@@ -177,5 +177,4 @@
       Double_t sigma1cat  = par[6];
       Double_t sigma1dyn  = par[7];
-      Double_t offset     = par[9];
       
       Double_t sumcat = 0.;
@@ -222,5 +221,5 @@
       arg = (x[0] - mu0)/sigma0;
       sumcat = TMath::Exp(-0.5*arg*arg)/sigma0;
-      sumdyn =sumcat;
+      sumdyn = sumcat;
 
       // k=1cat:
@@ -249,5 +248,5 @@
       sumdyn = TMath::Exp(-1.*lambda1dyn)*sumdyn;
       
-      return par[8]*(sumcat+sumdyn)/2. + offset;
+      return par[8]*(sumcat+sumdyn)/2.;
 
     }
@@ -518,6 +517,4 @@
     }
   
-
-  
   ClassDef(MHCalibrationChargeBlindPix, 1)  // Histogram class for Charge Blind Pixel Calibration
 };
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 4601)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 4602)
@@ -606,10 +606,12 @@
 {
 
+  *fLog << endl;
+
   if (fHiGainOverFlow)
     *fLog << warn << GetDescriptor()
-          << ": WARNING: Histogram Overflow has occurred " << fHiGainOverFlow << " in the High-Gain! " << endl;
+          << ": Histogram Overflow has occurred " << fHiGainOverFlow << " in the High-Gain! " << endl;
   if (fLoGainOverFlow)
     *fLog << warn << GetDescriptor()
-          << ": WARNING: Histogram Overflow has occurred " << fLoGainOverFlow << " in the Low-Gain! " << endl;
+          << ": Histogram Overflow has occurred " << fLoGainOverFlow << " in the Low-Gain! " << endl;
 
   for (Int_t i=0; i<fHiGainArray->GetSize(); i++)
@@ -902,5 +904,5 @@
 // Creates new MHCalibrationCam
 //
-TObject *MHCalibrationChargeCam::Clone(const char *) const
+TObject *MHCalibrationChargeCam::Clone(const char *name) const
 {
 
@@ -958,5 +960,5 @@
   
   gPad->SetTicks();
-  if (!pix.IsEmpty())
+  if (!pix.IsEmpty() && !pix.IsOnlyOverflow())
     gPad->SetLogy();
 
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h	(revision 4601)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h	(revision 4602)
@@ -55,5 +55,5 @@
   ~MHCalibrationChargeCam() {}
   
-  TObject *Clone(const char *) const;
+  TObject *Clone(const char *name="") const;
 
   void SetTimeLowerLimit    ( const Float_t f=fgTimeLowerLimit         ) { fTimeLowerLimit    = f;   }
