Index: trunk/MagicSoft/Mars/mhflux/MHAlpha.cc
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHAlpha.cc	(revision 7115)
+++ trunk/MagicSoft/Mars/mhflux/MHAlpha.cc	(revision 7122)
@@ -83,8 +83,7 @@
     : fNameParameter("MHillasSrc"), fParameter(0),
     fOffData(0), fResult(0), /*fExcess(0),*/ fEnergy(0), fHillas(0),
-    fPointPos(0), fTimeEffOn(0), fTime(0),
-    fSkipHistTime(kFALSE), fSkipHistTheta(kFALSE), fSkipHistEnergy(kFALSE),
-    fForceUsingSize(kFALSE), fNumTimeBins(10), fMatrix(0)
-
+    fPointPos(0), fTimeEffOn(0), fTime(0), fNumTimeBins(10),
+    fMatrix(0), fSkipHistTime(kFALSE), fSkipHistTheta(kFALSE),
+    fSkipHistEnergy(kFALSE), fForceUsingSize(kFALSE)
 {
     //
@@ -449,5 +448,5 @@
     if (fMatrix)
     {
-        alpha  = (*fMatrix)[fMap[0]];
+        alpha  = fMap[0]<0 ? GetVal() : (*fMatrix)[fMap[0]];
         energy = fMap[1]<0 ? -1 : (*fMatrix)[fMap[1]];
         size   = fMap[2]<0 ? -1 : (*fMatrix)[fMap[2]];
Index: trunk/MagicSoft/Mars/mhflux/MHAlpha.h
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHAlpha.h	(revision 7115)
+++ trunk/MagicSoft/Mars/mhflux/MHAlpha.h	(revision 7122)
@@ -52,4 +52,12 @@
     MTime    fLastTime;         //! Last fTimeEffOn
 
+    UShort_t fNumTimeBins;      // Number of time bins to fill together
+    UShort_t fNumRebin;         //!
+
+    //const TString fNameProjAlpha;  //! This should make sure, that gROOT doen't confuse the projection with something else
+protected:
+    MHMatrix *fMatrix;          //!
+    Int_t fMap[5];              //!
+
     Bool_t fSkipHistTime;
     Bool_t fSkipHistTheta;
@@ -57,13 +65,6 @@
     Bool_t fForceUsingSize;
 
-    UShort_t fNumTimeBins;      // Number of time bins to fill together
-    UShort_t fNumRebin;         //!
-
-    //const TString fNameProjAlpha;  //! This should make sure, that gROOT doen't confuse the projection with something else
-
-    MHMatrix *fMatrix;          //!
-    Int_t fMap[5];              //!
-
-    Float_t FitEnergyBins(Bool_t paint=kFALSE);
+private:
+     Float_t FitEnergyBins(Bool_t paint=kFALSE);
     void FitThetaBins(Bool_t paint=kFALSE);
 
@@ -127,5 +128,5 @@
     void DrawAll(); //*MENU*
 
-    void InitMapping(MHMatrix *mat, Int_t type=0);
+    virtual void InitMapping(MHMatrix *mat, Int_t type=0);
     void StopMapping();
 
Index: trunk/MagicSoft/Mars/mhflux/MHDisp.cc
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHDisp.cc	(revision 7115)
+++ trunk/MagicSoft/Mars/mhflux/MHDisp.cc	(revision 7122)
@@ -197,5 +197,5 @@
             return kFALSE;
         }
-        const Double_t m3l = fHilExt->GetM3Long()*TMath::Sign(1.0f, hsrc.GetCosDeltaAlpha())*fMm2Deg;
+        const Double_t m3l = fHilExt->GetM3Long()*TMath::Sign(fMm2Deg, hsrc.GetCosDeltaAlpha());
 
         gweight = m3l>fM3lCut ? 1 : 0;
@@ -217,9 +217,6 @@
     }
 
-    // Workaround: Number-of-entries
-    if (gweight>0.25)
-        fHist.Fill(pos1.X(), pos1.Y(), 0.0, w*gweight);
-    if (gweight<0.75)
-        fHist.Fill(pos2.X(), pos2.Y(), 0.0, w*(1-gweight));
+    fHist.Fill(pos1.X(), pos1.Y(), 0.0, w*gweight);
+    fHist.Fill(pos2.X(), pos2.Y(), 0.0, w*(1-gweight));
 
     return kTRUE;
@@ -273,4 +270,5 @@
         const Double_t x0 = h1->GetXaxis()->GetBinCenter(ix);
         const Double_t y0 = h1->GetYaxis()->GetBinCenter(iy);
+        const Double_t w0 = h1->GetXaxis()->GetBinWidth(1);
 
         for (int x=0; x<h1->GetNbinsX(); x++)
@@ -294,8 +292,14 @@
         h2->Fit(&func, "IMQ", "", 0, 1.0);
 
-        const Double_t r0 = 2*func.GetParameter(2);
-        const Double_t e  = func.Integral(0, r0)/h1->GetBinWidth(1);
-        func.SetParameter(0, 0);
-        const Double_t b  = func.Integral(0, r0)/h1->GetBinWidth(1);
+        // No wintegrate the function f(x) per Delta Area
+        // which is f(x)/(pi*delta r*(2*r+delta r))
+        TF1 func2("fcn2", Form("(gaus + [3]*x*x + [4])/(2*x+%.5f)", w0));
+        for (int i=0; i<5; i++)
+            func2.SetParameter(i, func.GetParameter(i));
+
+        const Double_t r0 = 2*func2.GetParameter(2);
+        const Double_t e  = func2.Integral(0, r0)/(w0*TMath::Pi());
+        func2.SetParameter(0, 0);
+        const Double_t b  = func2.Integral(0, r0)/(w0*TMath::Pi());
         const Double_t s  = MMath::SignificanceLiMa(e, b);
 
