Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 2761)
+++ trunk/MagicSoft/Mars/Changelog	(revision 2762)
@@ -5,4 +5,7 @@
                                                  -*-*- END OF LINE -*-*-
  2004/01/09: Markus Gaug
+
+   * mcalib/MHCalibrationBlindPixel.h
+     - make the fit by default quiet
 
    * mhist/MHCamera.[h.cc]
Index: trunk/MagicSoft/Mars/macros/calibration.C
===================================================================
--- trunk/MagicSoft/Mars/macros/calibration.C	(revision 2761)
+++ trunk/MagicSoft/Mars/macros/calibration.C	(revision 2762)
@@ -23,6 +23,6 @@
 \* ======================================================================== */
 
-void calibration(TString pedname="/data/MAGIC/rootdata/2003_12_01/20031130_03340_P_CrabNebula_E.root",
-                 TString calname="/data/MAGIC/rootdata/2003_12_01/20031130_03341_C_CrabNebula_E.root")
+void calibration(TString pedname="/mnt/Data/rootdata/2003_12_01/20031130_03340_P_CrabNebula_E.root",
+                 TString calname="/mnt/Data/rootdata/2003_12_01/20031130_03341_C_CrabNebula_E.root")
 {
 
@@ -94,5 +94,4 @@
     plist2.AddToList((MPedestalCam*)plist.FindObject("MPedestalCam"));
 
-//    MGeomApply geomapl2;
     tlist2.AddToList(&geomapl);
 
@@ -167,5 +166,5 @@
     MHCamera disp6   (geomcam, "MCalibrationCam;t", "Arrival Times");
     MHCamera disp7   (geomcam, "MCalibrationCam;sigmat", "Sigma of Arrival Times");
-    MHCamera disp8   (geomcam, "MCalibrationCam;probt", "Chi Square of Time Fit");
+    MHCamera disp8   (geomcam, "MCalibrationCam;probt", "Probability of Time Fit");
     MHCamera disp9   (geomcam, "MCalibrationCam;ped", "Pedestals");
     MHCamera disp10  (geomcam, "MCalibrationCam;pedrms", "Pedestal RMS");
@@ -211,11 +210,11 @@
     disp3.SetYTitle("\\sigma_{Q} [FADC counts]");
     //    disp4.SetYTitle("\\Delta {\\sigma_{Q}} [FADC counts]");
-    disp5.SetYTitle("P [au]");
+    disp5.SetYTitle("P_{Q} [au]");
     disp6.SetYTitle("T [FADC slices]");
-    disp7.SetYTitle("\\Delta T [FADC slices]");
-    disp8.SetYTitle("\\Chi^2 T [au]");
+    disp7.SetYTitle("\\sigma_{T} [FADC slices]");
+    disp8.SetYTitle("P_{T} [au]");
     disp9.SetYTitle("P [Total FADC counts ]");
     disp10.SetYTitle("RMS_{P} [Total FADC counts ]");
-    disp11.SetYTitle("\\sigma^2_{Q} - RMS^2_{P} [FADC counts^2]");
+    disp11.SetYTitle("\\sigma^{2}_{Q} - RMS^{2}_{P} [FADC counts^2]");
     disp12.SetYTitle("Nr Phe's");
     disp13.SetYTitle("Conversion Factor [Phe/FADC count]");
@@ -225,161 +224,247 @@
 
     MStatusDisplay *d3 = new MStatusDisplay;
- 
-    // Set update time to 3s
     d3->SetUpdateTime(3000);
-
+    d3->Resize(1180,900);
+
+    gStyle->SetOptStat(1111);
+    gStyle->SetOptFit();
+    
+    // Charges
     TCanvas *c1 = &d3->AddTab("Fitted Charges"); 
-    c1->Divide(2, 2);
-
-    TObject *obj;
+    c1->Divide(2,3);
+
+    TObject *obj1;
+    TObject *obj2;
 
     c1->cd(1);
-    gStyle->SetOptStat(1111);
-    obj=disp1.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp1.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c1->cd(3);
     gPad->SetBorderMode(0);
-    obj->Draw();
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+
+    c1->cd(5);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
 
     c1->cd(2);
-    gStyle->SetOptStat(1101);
-    obj=disp3.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp3.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c1->cd(4);
     gPad->SetBorderMode(0);
-    obj->Draw();
-
-
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+
+    c1->cd(6);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
+
+    // Fit Probability
     TCanvas *c12 = &d3->AddTab("Fit Prob."); 
-    c12->Divide(1, 2);
+    c12->Divide(1, 3);
 
     c12->cd(1);
-    gStyle->SetOptStat(1101);
-    obj=disp5.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp5.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c12->cd(2);
     gPad->SetBorderMode(0);
-    obj->Draw();
-
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c12->cd(3);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("pol0","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("pol0")->SetLineColor(kYellow);
+
+    // Times
     TCanvas *c2 = &d3->AddTab("Fitted Times");
-    c2->Divide(3, 2);
+    c2->Divide(3, 3);
 
     c2->cd(1);
-    gStyle->SetOptStat(1111);
-    obj=disp6.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp6.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c2->cd(4);
-    obj->Draw();
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c2->cd(7);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
 
     c2->cd(2);
-    gStyle->SetOptStat(1101);
-    obj=disp7.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp7.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c2->cd(5);
-    obj->Draw();
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+
+    c2->cd(8);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
 
     c2->cd(3);
-    gStyle->SetOptStat(1101);
-    obj=disp8.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp8.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c2->cd(6);
-    obj->Draw();
-
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c2->cd(9);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
+
+    // Pedestals
     TCanvas *c3 = &d3->AddTab("Pedestals");
-    c3->Divide(2, 2);
+    c3->Divide(2, 3);
 
     c3->cd(1);
-    gStyle->SetOptStat(1111);
-    obj=disp9.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp9.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c3->cd(3);
-    obj->Draw();
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c3->cd(5);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
 
     c3->cd(2);
-    gStyle->SetOptStat(1111);
-    obj=disp10.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp10.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c3->cd(4);
-    obj->Draw();
-
-    TCanvas *c4 = &d3->AddTab("Reduced Charges");
-    c4->Divide(2,2);
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+
+    c3->cd(6);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);    
+
+    // Reduced Sigmas
+    TCanvas *c4 = &d3->AddTab("Reduced Sigmas");
+    c4->Divide(2,3);
 
     c4->cd(1);
-    gStyle->SetOptStat(1111);
-    obj=disp11.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp11.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c4->cd(3);
-    obj->Draw();
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c4->cd(5);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
 
     c4->cd(2);
-    gStyle->SetOptStat(1111);
-    obj=disp16.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp16.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c4->cd(4);
-    obj->Draw();
-
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c4->cd(6);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
+
+    // F-Factor Method
     TCanvas *c5 = &d3->AddTab("F-Factor Method");
-    c5->Divide(2, 2);
+    c5->Divide(2, 3);
 
     c5->cd(1);
-    gStyle->SetOptStat(1111);
-    obj=disp12.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp12.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c5->cd(3);
-    obj->Draw();
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c5->cd(5);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
 
     c5->cd(2);
-    gStyle->SetOptStat(1101);
-    obj=disp13.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp13.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c5->cd(4);
-    obj->Draw();
-
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c5->cd(6);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
+
+    // Blind Pixel Method
     TCanvas *c6 = &d3->AddTab("Blind Pixel Method");
-    c6->Divide(2, 2);
+    c6->Divide(2, 3);
 
     c6->cd(1);
-    gStyle->SetOptStat(1111);
-    obj=disp14.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp14.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c6->cd(3);
-    obj->Draw();
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
 
     c6->cd(2);
-    gStyle->SetOptStat(1101);
-    obj=disp15.DrawCopy("hist");
-    ((MHCamera*)obj)->AddNotify(*cam);
-    ((MHCamera*)obj)->SetPrettyPalette();
+    obj1=disp15.DrawCopy("hist");
+    ((MHCamera*)obj1)->AddNotify(*cam);
 
     c6->cd(4);
-    obj->Draw();
-
+    obj1->Draw();
+    ((MHCamera*)obj1)->SetPrettyPalette();
+    
+    c6->cd(6);
+    gPad->SetBorderMode(0);
+    obj2 = obj1->DrawClone("proj");
+    gPad->Update();
+    ((MHCamera*)obj2)->GetYProj()->Fit("gaus","Q");
+    ((MHCamera*)obj2)->GetYProj()->GetFunction("gaus")->SetLineColor(kYellow);
 }
 
Index: trunk/MagicSoft/Mars/mhist/MHCamera.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2761)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2762)
@@ -103,5 +103,5 @@
 //  Default Constructor. To be used by the root system ONLY.
 //
-MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend)
+MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend), fYProj(NULL)
 {
     Init();
@@ -116,5 +116,5 @@
 MHCamera::MHCamera(const MGeomCam &geom, const char *name, const char *title)
 : fGeomCam(NULL), /*TH1D(name, title, geom.GetNumPixels(), -0.5, geom.GetNumPixels()-0.5),
-fUsed(geom.GetNumPixels()),*/ fColors(kItemsLegend)
+                    fUsed(geom.GetNumPixels()),*/ fColors(kItemsLegend), fYProj(NULL)
 {
     //fGeomCam = (MGeomCam*)geom.Clone();
@@ -160,7 +160,10 @@
 {
     if (fGeomCam)
-        delete fGeomCam;
+      delete fGeomCam;
     if (fNotify)
-        delete fNotify;
+      delete fNotify;
+    if (fYProj)
+      delete fYProj;
+
 }
 
@@ -399,4 +402,7 @@
     gPad->SetBorderMode(0);
 
+    TString opt(option);
+    opt.ToLower();
+
     AppendPad(option);
 
@@ -414,5 +420,5 @@
 // If this makes trouble please write a bug report.
 //
-TObject *MHCamera::DrawClone(Option_t *option) const
+TObject *MHCamera::DrawClone(Option_t *option) const 
 {
    // Draw a clone of this object in the current pad
@@ -423,4 +429,5 @@
 
    TObject *newobj = Clone();
+
    if (!newobj)
        return 0;
@@ -437,5 +444,7 @@
    */
 
-   const TString opt(option);
+   TString opt(option);
+   opt.ToLower();
+
    newobj->Draw(opt.IsNull() ? GetDrawOption() : option);
 
@@ -445,4 +454,27 @@
    return newobj;
 }
+
+void MHCamera::CreateProjection()
+{
+  
+  Int_t nbins = 50;
+
+  // Create the projection histogram
+  TString ytitle(GetYaxis()->GetTitle());
+  fYProj = new TH1D(ytitle.Data(),GetTitle(),nbins,GetMinimum()-0.1,GetMaximum()+0.1);
+  fYProj->SetXTitle(ytitle.Data());
+  fYProj->SetYTitle("Nr. of pixels");
+  fYProj->Sumw2();
+  fYProj->SetDirectory(NULL);
+
+  // Fill the projected histogram
+  Double_t cont;
+  for (Int_t binx =0;binx<=GetNbinsX()+1;binx++) {
+    cont  = GetBinContent(binx);
+    if (cont) 
+      fYProj->Fill(cont);
+  }
+}
+
 
 // ------------------------------------------------------------------------
@@ -592,4 +624,13 @@
     }
 
+    if (opt.Contains("proj"))
+    {
+
+      CreateProjection();
+      opt.ReplaceAll("proj", "");
+      fYProj->Paint(opt);
+      return;
+    }
+    
     gPad->Clear();
 
