Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 2811)
+++ trunk/MagicSoft/Mars/Changelog	(revision 2812)
@@ -10,4 +10,7 @@
      - incorporate Thomas's changes
      - replace void CreateProjection() by TH1D *Projection(const char*)
+
+   * macros/calibration.C
+     - replace MHCamera->Draw("proj") by MHCamera->Projection()
 
 
Index: trunk/MagicSoft/Mars/macros/calibration.C
===================================================================
--- trunk/MagicSoft/Mars/macros/calibration.C	(revision 2811)
+++ trunk/MagicSoft/Mars/macros/calibration.C	(revision 2812)
@@ -24,5 +24,5 @@
 
 void calibration(TString pedname="/mnt/Data/rootdata/Miscellaneous/2003_12_19/20031218_03522_P_Park_E.root",
-                 TString calname="/mnt/Data/rootdata/Miscellaneous/2003_12_19/20031218_03527_C_Park_E.root")
+             TString calname="/mnt/Data/rootdata/Miscellaneous/2003_12_19/20031218_03527_C_Park_E.root")
 {
 
@@ -56,5 +56,5 @@
 
     MHCamEvent hist("Pedestal");
-    hist.SetType(0);
+    hist.SetType(1);
     plist.AddToList(&hist);
     MFillH fill(&hist, "MPedestalCam");
@@ -82,17 +82,21 @@
     tlist.PrintStatistics();
 
-
     //
     // Create a empty Parameter List and an empty Task List
     //
     MParList  plist2;
-
     MTaskList tlist2;
     plist2.AddToList(&tlist2);
 
-
+    //
+    // Get the previously created MPedestalCam into the new Parameter List 
+    //
     plist2.AddToList((MPedestalCam*)plist.FindObject("MPedestalCam"));
 
+    //
+    // Get the MAGIC geometry
+    //
     tlist2.AddToList(&geomapl);
+    plist2.AddToList(&geomcam);
 
     //
@@ -106,9 +110,4 @@
     MExtractSignal        sigsig;
     MCalibrationCalc     calcalc;
-    MExtractedSignalCam   sigcam;
-
-    plist2.AddToList(&geomcam);
-    plist2.AddToList(&sigcam);
-
     //
     // As long, as we don't have digital modules, 
@@ -120,4 +119,7 @@
     tlist2.AddToList(&sigsig);
     tlist2.AddToList(&calcalc);
+
+    MExtractedSignalCam   sigcam;
+    plist2.AddToList(&sigcam);
 
     //
@@ -152,7 +154,10 @@
     MHCamera disp11  (geomcam, "MCalibrationPix;RSigma", "Reduced Sigmas");
     MHCamera disp12  (geomcam, "MCalibrationPix;PheFFactorMethod", "Nr. of Phe's (F-Factor Method)");
-    MHCamera disp13  (geomcam, "MCalibrationPix;MeanConversionFFactorMethod", "Conversion Factor (F-Factor Method)");
-    MHCamera disp14  (geomcam, "MCalibrationPix;MeanPhotInsidePlexiglass", "Nr. of Photons (Blind Pixel Method)");
-    MHCamera disp15  (geomcam, "MCalibrationPix;MeanConversionBlindPixelMethod", "Conversion Factor (Blind Pixel Method)");
+    MHCamera disp13  (geomcam, "MCalibrationPix;MeanConversionFFactorMethod", 
+                      "Conversion Factor (F-Factor Method)");
+    MHCamera disp14  (geomcam, "MCalibrationPix;MeanPhotInsidePlexiglass", 
+                      "Nr. of Photons (Blind Pixel Method)");
+    MHCamera disp15  (geomcam, "MCalibrationPix;MeanConversionBlindPixelMethod", 
+                      "Conversion Factor (Blind Pixel Method)");
     MHCamera disp16  (geomcam, "MCalibrationPix;RSigma/Charge", "Reduced Sigma per Charge");
 
@@ -188,7 +193,5 @@
 
     disp1.SetYTitle("Charge [FADC counts]");
-    //    disp2.SetYTitle("\\Delta Q [FADC counts]");
     disp3.SetYTitle("\\sigma_{Charge} [FADC counts]");
-    //    disp4.SetYTitle("\\Delta {\\sigma_{Q}} [FADC counts]");
     disp5.SetYTitle("P_{Charge} [1]");
     disp6.SetYTitle("Arr. Time [Time Slice Nr.]");
@@ -216,5 +219,4 @@
 
     TObject *obj1;
-    TObject *obj2;
 
     c1->cd(1);
@@ -229,8 +231,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     c1->cd(2);
@@ -245,8 +253,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     // Fit Probability
@@ -265,8 +279,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     // Times
@@ -284,8 +304,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     c2->cd(2);
@@ -299,8 +325,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     c2->cd(3);
@@ -314,8 +346,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     // Pedestals
@@ -333,8 +371,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     c3->cd(2);
@@ -348,8 +392,14 @@
     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);    
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     // Reduced Sigmas
@@ -367,8 +417,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     c4->cd(2);
@@ -382,8 +438,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     // F-Factor Method
@@ -401,8 +463,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     c5->cd(2);
@@ -416,8 +484,14 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
 
     // Blind Pixel Method
@@ -444,8 +518,15 @@
     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);
+    Float_t he = gStyle->GetStatH();
+    Float_t wi = gStyle->GetStatH();
+    gStyle->SetStatH(0.4);
+    gStyle->SetStatW(0.25);
+    TH1D *h2 = ((MHCamera*)obj1)->Projection(obj1->GetName());
+    h2->Fit("gaus","Q");
+    h2->GetFunction("gaus")->SetLineColor(kYellow);    
+    h2->Draw();
+    gStyle->SetStatH(he);      
+    gStyle->SetStatW(wi);      
+
 }
 
Index: trunk/MagicSoft/Mars/mhist/MHCamera.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2811)
+++ trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 2812)
@@ -95,5 +95,5 @@
 //  Default Constructor. To be used by the root system ONLY.
 //
-MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend), fYProj(NULL)
+MHCamera::MHCamera() : TH1D(), fGeomCam(NULL), fColors(kItemsLegend)
 {
     Init();
@@ -474,4 +474,7 @@
 TH1D *MHCamera::Projection(const char *name) const
 {
+
+    Int_t nbins = 50;
+
     // Create the projection histogram
     TString pname(name);
@@ -495,7 +498,7 @@
         Int_t newbins=0;
 
-        THLimitsFinder::OptimizeLimits(50, newbins, min, max, kFALSE);
-
-        h1 = new TH1D(pname, GetTitle(), 50, min, max);
+        THLimitsFinder::OptimizeLimits(nbins, newbins, min, max, kFALSE);
+
+        h1 = new TH1D(pname, GetTitle(), nbins, min, max);
 
         h1->SetXTitle(GetYaxis()->GetTitle());
@@ -516,27 +519,4 @@
 
     return h1;
-}
-
-// ------------------------------------------------------------------------
-// Will be removed in the future
-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);
-    }
 }
 
@@ -689,14 +669,7 @@
     if (opt.Contains("proj"))
     {
-        CreateProjection();
-        opt.ReplaceAll("proj", "");
-        Float_t he = gStyle->GetStatH();
-        Float_t wi = gStyle->GetStatH();
-        gStyle->SetStatH(0.4);
-        gStyle->SetStatW(0.25);
-        fYProj->Paint(opt);
-        gStyle->SetStatH(he);
-        gStyle->SetStatW(wi);
-        return;
+      opt.ReplaceAll("proj", "");
+      Projection(GetName())->Paint(opt);
+      return;
     }
     
