Index: trunk/MagicSoft/Mars/mhist/MHSigmaTheta.cc
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHSigmaTheta.cc	(revision 5420)
+++ trunk/MagicSoft/Mars/mhist/MHSigmaTheta.cc	(revision 5431)
@@ -32,4 +32,5 @@
 //             - the 3D-histogram   sigma, pixel no., Theta                 //
 //             - the 3D-histogram   (sigma^2-sigmabar^2), pixel no., Theta  //
+//             - the 2D-histogram   Theta    vs. Phi                        //
 //                                                                          //
 //////////////////////////////////////////////////////////////////////////////
@@ -64,5 +65,5 @@
 // --------------------------------------------------------------------------
 //
-// Default Constructor. It sets name and title of the histogram.
+// Constructor. 
 //
 MHSigmaTheta::MHSigmaTheta(const char *name, const char *title)
@@ -71,49 +72,104 @@
     fTitle = title ? title : "2D histogram sigmabar vs. Theta";
 
-    fSigmaTheta.SetDirectory(NULL);
-    fSigmaTheta.SetName("2D-ThetaSigmabar(Inner)");
-    fSigmaTheta.SetTitle("2D: \\bar{\\sigma}, \\Theta");
-    fSigmaTheta.SetXTitle("\\Theta [\\circ]");
-    fSigmaTheta.SetYTitle("Sigmabar(Inner) / SQRT(Area)");
-
-    fSigmaThetaOuter.SetDirectory(NULL);
-    fSigmaThetaOuter.SetName("2D-ThetaSigmabar(Outer)");
-    fSigmaThetaOuter.SetTitle("2D: \\bar{\\sigma}, \\Theta");
-    fSigmaThetaOuter.SetXTitle("\\Theta [\\circ]");
-    fSigmaThetaOuter.SetYTitle("Sigmabar(Outer) / SQRT(Area)");
-
-    fSigmaPixTheta.SetDirectory(NULL);
-    fSigmaPixTheta.SetName("3D-ThetaPixSigma");
-    fSigmaPixTheta.SetTitle("3D: \\Theta, Pixel Id, \\sigma");
-    fSigmaPixTheta.SetXTitle("\\Theta [\\circ]");
-    fSigmaPixTheta.SetYTitle("Pixel Id");
-    fSigmaPixTheta.SetZTitle("Sigma");
-
-    fDiffPixTheta.SetDirectory(NULL);
-    fDiffPixTheta.SetName("3D-ThetaPixDiff");
-    fDiffPixTheta.SetTitle("3D: \\Theta, Pixel Id, {\\sigma}^{2}-\\bar{\\sigma}^{2}");
-    fDiffPixTheta.SetXTitle("\\Theta [\\circ]");
-    fDiffPixTheta.SetYTitle("Pixel Id");
-    fDiffPixTheta.SetZTitle("(Sigma2 - Sigmabar2)/Area");
-
-    // Set default binning
-    // FIXME: Maybe ist's necessary to adapt the value to the
-    // Magic default values
-    MBinning binsb;
-    MBinning binst;
-    MBinning binsd;
-    binsd.SetEdges(100, -10, 20);
-    binsb.SetEdges(100, 0, 10);
-    binst.SetEdgesCos(10, 0, 90);
-
-    MBinning binspix("BinningPixel");
-    binspix.SetEdges(578, -0.5, 577.5);
-
-    SetBinning(&fSigmaTheta,      &binst, &binsb);
-    SetBinning(&fSigmaThetaOuter, &binst, &binsb);
-    SetBinning(&fSigmaPixTheta,   &binst, &binspix, &binsb);
-    SetBinning(&fDiffPixTheta,    &binst, &binspix, &binsd);
-
+    fThetaPhi = new TH2D;
+    fThetaPhi->SetDirectory(NULL);
+    fThetaPhi->UseCurrentStyle();
+    fThetaPhi->SetName("2D-ThetaPhi");
+    fThetaPhi->SetTitle("2D: \\Theta vs. \\Phi");
+    fThetaPhi->SetXTitle("\\phi [\\circ]");
+    fThetaPhi->SetYTitle("\\Theta [\\circ]");
+    fThetaPhi->SetTitleOffset(1.2,"Y");
+
+    fSigmaTheta = new TH2D;
+    fSigmaTheta->SetDirectory(NULL);
+    fSigmaTheta->UseCurrentStyle();
+    fSigmaTheta->SetName("2D-ThetaSigmabar(Inner)");
+    fSigmaTheta->SetTitle("2D: \\bar{\\sigma}, \\Theta");
+    fSigmaTheta->SetXTitle("\\Theta [\\circ]");
+    fSigmaTheta->SetYTitle("Sigmabar(Inner)");
+    fSigmaTheta->SetTitleOffset(1.2,"Y");
+
+    fSigmaThetaOuter = new TH2D;
+    fSigmaThetaOuter->SetDirectory(NULL);
+    fSigmaThetaOuter->UseCurrentStyle();
+    fSigmaThetaOuter->SetName("2D-ThetaSigmabar(Outer)");
+    fSigmaThetaOuter->SetTitle("2D: \\bar{\\sigma}, \\Theta");
+    fSigmaThetaOuter->SetXTitle("\\Theta [\\circ]");
+    fSigmaThetaOuter->SetYTitle("Sigmabar(Outer)");
+    fSigmaThetaOuter->SetTitleOffset(1.2,"Y");
+
+    fSigmaPixTheta = new TH3D;
+    fSigmaPixTheta->SetDirectory(NULL);
+    fSigmaPixTheta->UseCurrentStyle();
+    fSigmaPixTheta->SetName("3D-ThetaPixSigma");
+    fSigmaPixTheta->SetTitle("3D: \\Theta, Pixel Id, \\sigma");
+    fSigmaPixTheta->SetXTitle("\\Theta [\\circ]");
+    fSigmaPixTheta->SetYTitle("Pixel Id");
+    fSigmaPixTheta->SetZTitle("Sigma");
+
+    fDiffPixTheta = new TH3D;
+    fDiffPixTheta->SetDirectory(NULL);
+    fDiffPixTheta->UseCurrentStyle();
+    fDiffPixTheta->SetName("3D-ThetaPixDiff");
+    //fDiffPixTheta->SetTitle("3D: \\Theta, Pixel Id, {\\sigma}^{2}-\\bar{\\sigma}^{2}");
+    fDiffPixTheta->SetTitle("3D: \\Theta, Pixel Id, (Sigma2-Sigmabar2)/Area");
+    fDiffPixTheta->SetXTitle("\\Theta [\\circ]");
+    fDiffPixTheta->SetYTitle("Pixel Id");
+    fDiffPixTheta->SetZTitle("(Sigma2 - Sigmabar2)/Area");
+
+    // Define default binning
+    fBinsPhi = new MBinning;
+    fBinsPhi->SetEdges( 20, 0.0, 360.0);
+
+    Double_t fThetaLo =  0.0;
+    Double_t fThetaHi = 90.0;
+    fBinsTheta = new MBinning;
+    fBinsTheta->SetEdgesCos( 10,  fThetaLo, fThetaHi);   // theta
+    //fBinsTheta->SetEdges( 1, fThetaLo, fThetaHi);   // theta
+
+    fBinsSigma = new MBinning;
+    fBinsSigma->SetEdges(   100,     0.0, 120.0);   // sigma 
+
+    fBinsSigmabarIn  = new MBinning;
+    fBinsSigmabarOut = new MBinning;;
+    fBinsSigmabarIn->SetEdges(100,     0.0,  40.0);   // sigmabar (inner)
+    fBinsSigmabarOut->SetEdges(100,     0.0,  80.0);   // sigmabar (outer)
+
+    fBinsPix = new MBinning;
+    fBinsPix->SetEdges(578, -0.5, 577.5);
+
+    fBinsDiff = new MBinning;
+    fBinsDiff->SetEdges(   100,  -500.0, 1500.0);   // (sigma2-sigmabar2)/area
+
+    SetBinning(fThetaPhi,        fBinsPhi,   fBinsTheta);
+    SetBinning(fSigmaTheta,      fBinsTheta, fBinsSigmabarIn);
+    SetBinning(fSigmaThetaOuter, fBinsTheta, fBinsSigmabarOut);
+    SetBinning(fSigmaPixTheta,   fBinsTheta, fBinsPix, fBinsSigma);
+    SetBinning(fDiffPixTheta,    fBinsTheta, fBinsPix, fBinsDiff);
+
+    //--------------------------------------------
     fNamePedPhotCam = "MPedPhotCamFromData";
+}
+
+
+// --------------------------------------------------------------------------
+//
+// Destructor. 
+//
+MHSigmaTheta::~MHSigmaTheta()
+{
+  delete fThetaPhi;
+  delete fSigmaTheta;
+  delete fSigmaThetaOuter;
+  delete fSigmaPixTheta;
+  delete fDiffPixTheta;
+
+  delete fBinsPhi;
+  delete fBinsTheta;
+  delete fBinsSigma;
+  delete fBinsSigmabarIn;
+  delete fBinsSigmabarOut;
+  delete fBinsPix;
+  delete fBinsDiff;
 }
 
@@ -133,7 +189,8 @@
     fPointPos = (MPointingPos*)plist->FindObject("MPointingPos");
     if (!fPointPos)
-        *fLog << warn << "MPointingPos not found... aborting." << endl;
-
-
+    {
+        *fLog << err << "MPointingPos not found... aborting." << endl;
+        return kFALSE;
+    }
 
     fPed = (MPedPhotCam*)plist->FindObject(AddSerialNumber(fNamePedPhotCam), "MPedPhotCam");
@@ -144,5 +201,5 @@
         return kFALSE;
     }
-    //fPed->InitSize(fCam->GetNumPixels()); 
+    fPed->InitSize(fCam->GetNumPixels()); 
 
     
@@ -162,40 +219,76 @@
 
 
+    //---------------------------------------------------------------
+    *fLog << inf << "Name of MPedPhotCam container : " 
+          << fNamePedPhotCam << endl;
+
+
+    //---------------------------------------------------------------
+
+    // Get Phi Binning
+    MBinning* binsphi  = (MBinning*)plist->FindObject("BinningPhi", "MBinning");
+    if (!binsphi)
+    {
+        *fLog << warn << "Object 'BinningPhi' [MBinning] not found... use default binning." << endl;
+        binsphi = fBinsPhi;
+    }
+
     // Get Theta Binning
     MBinning* binstheta  = (MBinning*)plist->FindObject("BinningTheta", "MBinning");
     if (!binstheta)
     {
-        *fLog << warn << "Object 'BinningTheta' [MBinning] not found... no binning applied." << endl;
-        return kTRUE;
-    }
-
-    // Get Sigmabar binning
-    MBinning* binssigma = (MBinning*)plist->FindObject("BinningSigmabar", "MBinning");
-    if (!binssigma)
-        *fLog << warn << "Object 'BinningSigmabar' [MBinning] not found... no binning applied." << endl;
+        *fLog << warn << "Object 'BinningTheta' [MBinning] not found... use default binning." << endl;
+        binstheta = fBinsTheta;
+    }
+
+    // Get Sigma binning
+    MBinning* binssig = (MBinning*)plist->FindObject("BinningSigma", "MBinning");
+    if (!binssig)
+    {
+        *fLog << warn << "Object 'BinningSigma' [MBinning] not found... use default binning." << endl;
+        binssig = fBinsSigma;
+    }
+
+    // Get SigmabarIn binning
+    MBinning* binssigmain = (MBinning*)plist->FindObject("BinningSigmabarIn", "MBinning");
+    if (!binssigmain)
+    {
+        *fLog << warn << "Object 'BinningSigmabarIn' [MBinning] not found... use default binning." << endl;
+        binssigmain = fBinsSigmabarIn;
+    }
+
+    // Get SigmabarOut binning
+    MBinning* binssigmaout = (MBinning*)plist->FindObject("BinningSigmabarOut", "MBinning");
+    if (!binssigmaout)
+    {
+        *fLog << warn << "Object 'BinningSigmabarOut' [MBinning] not found... use default binning." << endl;
+        binssigmaout = fBinsSigmabarOut;
+    }
 
     // Get binning for (sigma^2-sigmabar^2)
     MBinning* binsdiff  = (MBinning*)plist->FindObject("BinningDiffsigma2", "MBinning");
     if (!binsdiff)
-        *fLog << warn << "Object 'BinningDiffsigma2' [MBinning] not found... no binning applied." << endl;
-
-    //FIXME: Missing: Apply new binning to only one axis!
+    {
+        *fLog << warn << "Object 'BinningDiffsigma2' [MBinning] not found... use default binning." << endl;
+        binsdiff = fBinsDiff;
+    }
+
+
+    //---------------------------------------------------------------
 
     // Get binning for pixel number
     const UInt_t npix1 = fPed->GetSize()+1;
-    *fLog << "npix1 = " << npix1 << endl;
+    //*fLog << "MHSigmaTheata::SetupFill(); npix1 = " << npix1 << endl;
     MBinning binspix("BinningPixel");
     binspix.SetEdges(npix1, -0.5, npix1-0.5);
 
     // Set binnings in histograms
-    if (binssigma)
-    {
-        SetBinning(&fSigmaTheta,      binstheta, binssigma);
-        SetBinning(&fSigmaThetaOuter, binstheta, binssigma);
-        SetBinning(&fSigmaPixTheta,   binstheta, &binspix, binssigma);
-    }
-
-    if (binsdiff)
-        SetBinning(&fDiffPixTheta,  binstheta, &binspix, binsdiff);
+    SetBinning(fThetaPhi,        binsphi,   binstheta);
+    SetBinning(fSigmaTheta,      binstheta, binssigmain);
+    SetBinning(fSigmaThetaOuter, binstheta, binssigmaout);
+    SetBinning(fSigmaPixTheta,   binstheta, &binspix, binssig);
+    SetBinning(fDiffPixTheta,    binstheta, &binspix, binsdiff);
+
+    *fLog << "MHSigmaTheta::SetupFill(); binnings were set" << endl;
 
     return kTRUE;
@@ -211,22 +304,25 @@
 {
     Double_t theta = fPointPos->GetZd();
+    Double_t phi   = fPointPos->GetAz();
+
+    fPed->ReCalc(*fCam, fBad);
 
     Double_t mysig      = (fPed->GetArea(0)).GetRms();
     Double_t mysigouter = (fPed->GetArea(1)).GetRms();
 
-    *fLog << "theta, mysig, mysigouter = " << theta << ",  " << mysig 
-          << ",  " << mysigouter << endl;
-
-    fSigmaTheta.Fill(theta, mysig);
-    fSigmaThetaOuter.Fill(theta, mysigouter);
-
-    const UInt_t npix = fEvt->GetNumPixels();
-
-    for (UInt_t i=0; i<npix; i++)
-    {
-        MCerPhotPix &cerpix = (*fEvt)[i];
-        const Int_t id = cerpix.GetPixId();
-
-        if (!cerpix.IsPixelUsed())
+    //*fLog << "theta, mysig, mysigouter = " << theta << ",  " << mysig 
+    //      << ",  " << mysigouter << endl;
+
+    fThetaPhi->Fill(phi, theta);
+    fSigmaTheta->Fill(theta, mysig);
+    fSigmaThetaOuter->Fill(theta, mysigouter);
+
+    MCerPhotPix *cerpix = 0;
+    TIter Next(*fEvt);
+    while ( (cerpix=(MCerPhotPix*)Next()) )
+    {
+        const Int_t id = cerpix->GetPixId();
+
+        if (!cerpix->IsPixelUsed())
 	{
           //*fLog << all << "MHSigmaTheta::Fill; unused pixel found, id = "
@@ -237,13 +333,4 @@
         const MPedPhotPix &pix = (*fPed)[id];
 
-        if ( fBad != NULL  &&  ((*fBad)[id]).IsUnsuitable() )
-	{
-          // this should never occur, because bad pixels should have
-          // been set unused 
-          *fLog << all << "MHSigmaTheta::Fill; bad pixel found which is used, id = "
-                << id << "... go to next pixel." << endl;
-	  continue;
-	}
-
         // ratio is the area of pixel 0 
         //          divided by the area of the current pixel
@@ -251,5 +338,5 @@
         const Double_t sigma = pix.GetRms();
 
-        fSigmaPixTheta.Fill(theta, (Double_t)id, sigma*sqrt(ratio));
+        fSigmaPixTheta->Fill(theta, (Double_t)id, sigma);
 
 	Double_t diff;
@@ -258,13 +345,13 @@
 	{
           // inner pixel
-          diff = sigma*sigma*ratio - mysig*mysig;
+          diff = (sigma*sigma - mysig*mysig) * ratio;
 	}
         else
 	{
           // outer pixel
-          diff = sigma*sigma*ratio - mysigouter*mysigouter;
+          diff = (sigma*sigma - mysigouter*mysigouter) * ratio;
 	}
 
-        fDiffPixTheta.Fill(theta, (Double_t)id, diff);
+        fDiffPixTheta->Fill(theta, (Double_t)id, diff);
     }
 
@@ -285,5 +372,5 @@
     if ((h = (TH1D*)gPad->FindObject("ProjX-Theta")))
     {
-        ProjectionX(*h, fSigmaTheta);
+        ProjectionX(*h, *fSigmaTheta);
         if (h->GetEntries()!=0)
             gPad->SetLogy();
@@ -292,5 +379,5 @@
     padsave->cd(4);
     if ((h = (TH1D*)gPad->FindObject("ProjY-sigma")))
-        ProjectionY(*h, fSigmaTheta);
+        ProjectionY(*h, *fSigmaTheta);
 
     gPad = padsave;
@@ -305,5 +392,4 @@
     TVirtualPad *pad = gPad ? gPad : MakeDefCanvas(this);
     pad->SetBorderMode(0);
-
     AppendPad("");
 
@@ -315,9 +401,11 @@
     pad->cd(1);
     gPad->SetBorderMode(0);
-    h = fSigmaTheta.ProjectionX("ProjX-Theta", -1, 9999, "E");
+    h = fSigmaTheta->ProjectionX("ProjX-Theta", -1, 9999, "E");
     h->SetDirectory(NULL);
+    h->UseCurrentStyle();
     h->SetTitle("Distribution of \\Theta");
     h->SetXTitle("\\Theta [\\circ]");
     h->SetYTitle("No.of events");
+    h->SetTitleOffset(1.2,"Y");
     h->Draw(opt);
     h->SetBit(kCanDelete);
@@ -325,9 +413,12 @@
     pad->cd(2);
     gPad->SetBorderMode(0);
-    h = fDiffPixTheta.Project3D("zx");
+    h = fDiffPixTheta->Project3D("zx");
     h->SetDirectory(NULL);
-    h->SetTitle("\\sigma_{ped}^{2}-\\bar{\\sigma}_{ped}^{2} vs. \\Theta (all pixels)");
+    h->UseCurrentStyle();
+    //h->SetTitle("\\sigma_{ped}^{2}-\\bar{\\sigma}_{ped}^{2} vs. \\Theta (all pixels)");
+    h->SetTitle("(Sigma2-Sigmabar2)/Area  vs. \\Theta (all pixels)");
     h->SetXTitle("\\Theta [\\circ]");
     h->SetYTitle("(Sigma2 - Sigmabar2) / Area");
+    h->SetTitleOffset(1.2,"Y");
     h->Draw("box");
     h->SetBit(kCanDelete);
@@ -335,9 +426,11 @@
     pad->cd(3);
     gPad->SetBorderMode(0);
-    h = fSigmaPixTheta.Project3D("zx");
+    h = fSigmaPixTheta->Project3D("zx");
     h->SetDirectory(NULL);
+    h->UseCurrentStyle();
     h->SetTitle("\\sigma_{ped} vs. \\Theta (all pixels)");
     h->SetXTitle("\\Theta [\\circ]");
     h->SetYTitle("Sigma");
+    h->SetTitleOffset(1.2,"Y");
     h->Draw("box");
     h->SetBit(kCanDelete);
@@ -345,9 +438,11 @@
     //pad->cd(7);
     //gPad->SetBorderMode(0);
-    //h = fSigmaTheta.ProjectionY("ProjY-sigma", -1, 9999, "E");
+    //h = fSigmaTheta->ProjectionY("ProjY-sigma", -1, 9999, "E");
     //h->SetDirectory(NULL);
+    //h->UseCurrentStyle();
     //h->SetTitle("Distribution of \\bar{\\sigma}_{ped}");
     //h->SetXTitle("\\bar{\\sigma}_{ped}");
     //h->SetYTitle("No.of events");
+    //h->SetTitleOffset(1.2,"Y");
     //h->Draw(opt);
     //h->SetBit(kCanDelete);
@@ -355,9 +450,12 @@
     pad->cd(5);
     gPad->SetBorderMode(0);
-    h = fDiffPixTheta.Project3D("zy");
+    h = fDiffPixTheta->Project3D("zy");
     h->SetDirectory(NULL);
-    h->SetTitle("\\sigma_{ped}^{2}-\\bar{\\sigma}_{ped}^{2} vs. pixel Id (all  \\Theta)");
+    h->UseCurrentStyle();
+    //h->SetTitle("\\sigma_{ped}^{2}-\\bar{\\sigma}_{ped}^{2} vs. pixel Id (all  \\Theta)");
+    h->SetTitle("(Sigma2-Sigmabar2)/Area  vs. pixel Id (all  \\Theta)");
     h->SetXTitle("Pixel Id");
-    h->SetYTitle("Sigma2 - sigmabar2) / Area");
+    h->SetYTitle("(Sigma2 - sigmabar2) / Area");
+    h->SetTitleOffset(1.2,"Y");
     h->Draw("box");
     h->SetBit(kCanDelete);
@@ -365,23 +463,37 @@
     pad->cd(6);
     gPad->SetBorderMode(0);
-    h = fSigmaPixTheta.Project3D("zy");
+    h = fSigmaPixTheta->Project3D("zy");
     h->SetDirectory(NULL);
+    h->UseCurrentStyle();
     h->SetTitle("\\sigma_{ped} vs. pixel Id (all  \\Theta)");
     h->SetXTitle("Pixel Id");
     h->SetYTitle("Sigma");
+    h->SetTitleOffset(1.2,"Y");
     h->Draw("box");
     h->SetBit(kCanDelete);
 
     pad->cd(4);
-    fSigmaTheta.Draw(opt);
+    gPad->SetBorderMode(0);
+    fSigmaTheta->Draw();
 
     pad->cd(7);
-    fSigmaThetaOuter.Draw(opt);
-
-    //pad->cd(8);
-    //fDiffPixTheta.Draw(opt);
-
-    //pad->cd(9);
-    //fSigmaPixTheta.Draw(opt);
+    gPad->SetBorderMode(0);
+    fSigmaThetaOuter->Draw();
+
+    pad->cd(8);
+    gPad->SetBorderMode(0);
+    fThetaPhi->Draw();
+
+    pad->cd(9);
+    gPad->SetBorderMode(0);
+    h = fThetaPhi->ProjectionX("ProjX-Phi", -1, 9999, "E");
+    h->SetDirectory(NULL);
+    h->UseCurrentStyle();
+    h->SetTitle("Distribution of \\Phi");
+    h->SetXTitle("\\phi [\\circ]");
+    h->SetYTitle("No. of events");
+    h->SetTitleOffset(1.2,"Y");
+    h->Draw(opt);
+    h->SetBit(kCanDelete);
 }
 
Index: trunk/MagicSoft/Mars/mhist/MHSigmaTheta.h
===================================================================
--- trunk/MagicSoft/Mars/mhist/MHSigmaTheta.h	(revision 5420)
+++ trunk/MagicSoft/Mars/mhist/MHSigmaTheta.h	(revision 5431)
@@ -35,9 +35,19 @@
 
                            // sigmabar is the average pedestal sigma  
-    TH2D fSigmaTheta;      // 2D-distribution sigmabar versus Theta (Inner) 
-    TH2D fSigmaThetaOuter; // 2D-distribution sigmabar versus Theta (Outer) 
+    TH2D *fSigmaTheta;      // 2D-distribution sigmabar versus Theta (Inner) 
+    TH2D *fSigmaThetaOuter; // 2D-distribution sigmabar versus Theta (Outer) 
 
-    TH3D fSigmaPixTheta; // 3D-distr.:Theta, pixel, pedestal sigma
-    TH3D fDiffPixTheta;  // 3D-distr.:Theta, pixel, sigma^2-sigmabar^2
+    TH3D *fSigmaPixTheta; // 3D-distr.:Theta, pixel, pedestal sigma
+    TH3D *fDiffPixTheta;  // 3D-distr.:Theta, pixel, sigma^2-sigmabar^2
+
+    TH2D *fThetaPhi;      // 2D-distribution Theta versus Phi 
+
+    MBinning *fBinsPhi;            //!
+    MBinning *fBinsTheta;          //!
+    MBinning *fBinsSigma;          //!
+    MBinning *fBinsSigmabarIn;     //!
+    MBinning *fBinsSigmabarOut;    //!
+    MBinning *fBinsPix;            //!
+    MBinning *fBinsDiff;           //!
 
     void Paint(Option_t *opt="");
@@ -45,4 +55,5 @@
 public:
     MHSigmaTheta(const char *name=NULL, const char *title=NULL);
+    ~MHSigmaTheta();
 
     void SetNamePedPhotCam(const char *name)  { fNamePedPhotCam = name; }
@@ -51,15 +62,18 @@
     Bool_t Fill(const MParContainer *par, const Stat_t w=1);
 
-    const TH2D *GetSigmaTheta() { return &fSigmaTheta; }
-    const TH2D *GetSigmaTheta() const { return &fSigmaTheta; }
+    const TH2D *GetThetaPhi() { return fThetaPhi; }
+    const TH2D *GetThetaPhi() const { return fThetaPhi; }
 
-    const TH2D *GetSigmaThetaOuter() { return &fSigmaThetaOuter; }
-    const TH2D *GetSigmaThetaOuter() const { return &fSigmaThetaOuter; }
+    const TH2D *GetSigmaTheta() { return fSigmaTheta; }
+    const TH2D *GetSigmaTheta() const { return fSigmaTheta; }
 
-    const TH3D *GetSigmaPixTheta() { return &fSigmaPixTheta; }
-    const TH3D *GetSigmaPixTheta() const { return &fSigmaPixTheta; }
+    const TH2D *GetSigmaThetaOuter() { return fSigmaThetaOuter; }
+    const TH2D *GetSigmaThetaOuter() const { return fSigmaThetaOuter; }
 
-    const TH3D *GetDiffPixTheta() { return &fDiffPixTheta; }
-    const TH3D *GetDiffPixTheta() const { return &fDiffPixTheta; }
+    const TH3D *GetSigmaPixTheta() { return fSigmaPixTheta; }
+    const TH3D *GetSigmaPixTheta() const { return fSigmaPixTheta; }
+
+    const TH3D *GetDiffPixTheta() { return fDiffPixTheta; }
+    const TH3D *GetDiffPixTheta() const { return fDiffPixTheta; }
 
     void Draw(Option_t *option="");
