Index: trunk/MagicSoft/Mars/mhflux/MAlphaFitter.cc
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MAlphaFitter.cc	(revision 8988)
+++ trunk/MagicSoft/Mars/mhflux/MAlphaFitter.cc	(revision 8989)
@@ -18,5 +18,5 @@
 !   Author(s): Thomas Bretz, 3/2004 <mailto:tbretz@astro.uni-wuerzburg.de>
 !
-!   Copyright: MAGIC Software Development, 2000-2004
+!   Copyright: MAGIC Software Development, 2000-2008
 !
 !
@@ -42,4 +42,9 @@
 //  + TArrayD fErrors;  // errors of coefficients
 //
+// Version 4:
+// ----------
+//  + Double_t fErrorExcess;
+//  - Double_t fSignificanceExc;
+//
 //
 //////////////////////////////////////////////////////////////////////////////
@@ -68,5 +73,5 @@
 {
     fSignificance=0;
-    fSignificanceExc=0;
+    fErrorExcess=0;
     fEventsExcess=0;
     fEventsSignal=0;
@@ -168,12 +173,9 @@
     fEventsExcess     = fEventsSignal-fEventsBackground;
     fSignificance     = MMath::SignificanceLiMaSigned(fEventsSignal, fEventsBackground);
-    fSignificanceExc  = MMath::SignificanceLiMaExc(fEventsSignal, fEventsBackground);
+    fErrorExcess      = MMath::ErrorExc(fEventsSignal, fEventsBackground);
 
     // !Finitite includes IsNaN
     if (!TMath::Finite(fSignificance))
         fSignificance=0;
-
-    if (fEventsExcess<0)
-        fEventsExcess=0;
 }
 
@@ -282,5 +284,4 @@
     const Int_t bin = hon.GetXaxis()->FindFixBin(fSigInt*0.999);
 
-
     MAlphaFitter fit(*this);
     fit.EnableBackgroundFit();
@@ -290,4 +291,5 @@
     // off-source in the off-source region and the on-data in the source-region
     TH1D h(hof);
+    h.SetDirectory(0);
     h.Add(&hon);
     h.Scale(0.5);
@@ -342,4 +344,5 @@
 {
     TH1D h(hon);
+    h.SetDirectory(0);
     h.Add(&hof, -1); // substracts also number of entries!
     h.SetEntries(hon.GetEntries());
@@ -354,5 +357,4 @@
     fCoefficients = fit.GetCoefficients();
     fErrors       = fit.GetErrors();
-
 
     // ----------------------------------------------------------------------------
@@ -372,11 +374,9 @@
     fScaleFactor      = alpha;
     fSignificance     = MMath::SignificanceLiMaSigned(fEventsSignal, fEventsBackground/alpha, alpha);
-    fSignificanceExc  = MMath::SignificanceLiMaExc(fEventsSignal, fEventsBackground/alpha, alpha);
+    fErrorExcess      = MMath::ErrorExc(fEventsSignal, fEventsBackground/alpha, alpha);
 
     // !Finitite includes IsNaN
     if (!TMath::Finite(fSignificance))
         fSignificance=0;
-    if (fEventsExcess<0)
-        fEventsExcess=0;
 
     return kTRUE;
@@ -461,5 +461,5 @@
     // Result
     f.fSignificance     = fSignificance;
-    f.fSignificanceExc  = fSignificanceExc;
+    f.fErrorExcess      = fErrorExcess;
     f.fEventsExcess     = fEventsExcess;
     f.fEventsSignal     = fEventsSignal;
@@ -526,5 +526,5 @@
 {
     const TString name(Form("TempAlphaEnergy%06d", gRandom->Integer(1000000)));
-    TH1D *h = hon.ProjectionZ(name, -1, -1, bin, bin, "E");
+    TH1D *h = hon.ProjectionZ(name, 0, hon.GetNbinsX()+1, bin, bin, "E");
     h->SetDirectory(0);
 
@@ -537,5 +537,5 @@
 {
     const TString name(Form("TempAlphaTheta%06d", gRandom->Integer(1000000)));
-    TH1D *h = hon.ProjectionZ(name, bin, bin, -1, -1, "E");
+    TH1D *h = hon.ProjectionZ(name, bin, bin, 0, hon.GetNbinsY()+1, "E");
     h->SetDirectory(0);
 
@@ -563,5 +563,5 @@
 {
     const TString name(Form("TempAlpha%06d", gRandom->Integer(1000000)));
-    TH1D *h = hon.ProjectionZ(name, -1, -1, -1, -1, "E");
+    TH1D *h = hon.ProjectionZ(name, 0, hon.GetNbinsX()+1, 0, hon.GetNbinsY()+1, "E");
     h->SetDirectory(0);
 
@@ -576,6 +576,6 @@
     const TString name0(Form("TempAlpha%06d_off", gRandom->Integer(1000000)));
 
-    TH1D *h1 = hon.ProjectionZ(name1, -1, -1, bin, bin, "E");
-    TH1D *h0 = hof.ProjectionZ(name0, -1, -1, bin, bin, "E");
+    TH1D *h1 = hon.ProjectionZ(name1, 0, hon.GetNbinsX()+1, bin, bin, "E");
+    TH1D *h0 = hof.ProjectionZ(name0, 0, hof.GetNbinsX()+1, bin, bin, "E");
     h1->SetDirectory(0);
     h0->SetDirectory(0);
@@ -594,6 +594,6 @@
     const TString name0(Form("TempAlpha%06d_off", gRandom->Integer(1000000)));
 
-    TH1D *h1 = hon.ProjectionZ(name1, bin, bin, -1, -1, "E");
-    TH1D *h0 = hof.ProjectionZ(name0, bin, bin, -1, -1, "E");
+    TH1D *h1 = hon.ProjectionZ(name1, bin, bin, 0, hon.GetNbinsY()+1, "E");
+    TH1D *h0 = hof.ProjectionZ(name0, bin, bin, 0, hof.GetNbinsY()+1, "E");
     h1->SetDirectory(0);
     h0->SetDirectory(0);
@@ -636,6 +636,6 @@
     const TString name0(Form("TempAlpha%06d_off", gRandom->Integer(1000000)));
 
-    TH1D *h1 = hon.ProjectionZ(name1, -1, -1, -1, -1, "E");
-    TH1D *h0 = hof.ProjectionZ(name0, -1, -1, -1, -1, "E");
+    TH1D *h1 = hon.ProjectionZ(name1, 0, hon.GetNbinsX()+1, 0, hon.GetNbinsY()+1, "E");
+    TH1D *h0 = hof.ProjectionZ(name0, 0, hof.GetNbinsX()+1, 0, hof.GetNbinsY()+1, "E");
     h1->SetDirectory(0);
     h0->SetDirectory(0);
@@ -654,6 +654,6 @@
     const TString name0(Form("TempAlpha%06d_off", gRandom->Integer(1000000)));
 
-    TH1D *h1 = hon.ProjectionZ(name1, -1, -1, bin, bin, "E");
-    TH1D *h0 = hof.ProjectionZ(name0, -1, -1, bin, bin, "E");
+    TH1D *h1 = hon.ProjectionZ(name1, 0, hon.GetNbinsX()+1, bin, bin, "E");
+    TH1D *h0 = hof.ProjectionZ(name0, 0, hof.GetNbinsX()+1, bin, bin, "E");
     h1->SetDirectory(0);
     h0->SetDirectory(0);
Index: trunk/MagicSoft/Mars/mhflux/MAlphaFitter.h
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MAlphaFitter.h	(revision 8988)
+++ trunk/MagicSoft/Mars/mhflux/MAlphaFitter.h	(revision 8989)
@@ -56,5 +56,5 @@
     // Result
     Double_t fSignificance;     // significance of an unknown signal (Li/Ma 17)
-    Double_t fSignificanceExc;  // significance of a known excess    (Li/Ma 5)
+    Double_t fErrorExcess;      // Simple error propagation
     Double_t fEventsExcess;     // calculated number of excess events (signal-bg)
     Double_t fEventsSignal;     // calculated number of signal events
@@ -179,5 +179,5 @@
 
     Double_t GetSignificance() const       { return fSignificance; }
-    Double_t GetSignificanceExc() const    { return fSignificanceExc; }
+    Double_t GetErrorExcess() const        { return fErrorExcess; }
     Double_t GetChiSqSignal() const        { return fChiSqSignal; }
     Double_t GetChiSqBg() const            { return fChiSqBg; }
@@ -253,5 +253,5 @@
     Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print=kFALSE);
 
-    ClassDef(MAlphaFitter, 3)
+    ClassDef(MAlphaFitter, 4)
 };
 
