Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 6891)
+++ trunk/MagicSoft/Mars/Changelog	(revision 6892)
@@ -94,4 +94,10 @@
      - added dummy parameters to FixParameter for compatibility
        with SetParemeter
+
+   * mbase/MFilter.[h,cc]:
+     - implemented ReadEnv to treat "Inverted"
+
+   * mfbase/MF.[h,cc], mfilter/MFSupercuts.cc:
+     - treat "inverted" with MFilter::ReadEnv
 
 
Index: trunk/MagicSoft/Mars/NEWS
===================================================================
--- trunk/MagicSoft/Mars/NEWS	(revision 6891)
+++ trunk/MagicSoft/Mars/NEWS	(revision 6892)
@@ -4,5 +4,6 @@
 
    - Fix bug on the arrival time reconstruction when using Digital
-     Filter
+     Filter (in some marginal cases times were reconstructed shifted by one
+     or two slices)
 
    - all executables now return 2 where in previous versions -1 has
Index: trunk/MagicSoft/Mars/manalysis/MCompProbCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCompProbCalc.cc	(revision 6891)
+++ trunk/MagicSoft/Mars/manalysis/MCompProbCalc.cc	(revision 6892)
@@ -43,5 +43,5 @@
 
 #include "MHCompProb.h"
-#include "MHadronness.h"
+#include "MParameters.h"
 
 ClassImp(MCompProbCalc);
@@ -123,5 +123,5 @@
     }
 
-    fHadronness = (MHadronness*)plist->FindCreateObj("MHadronness");
+    fHadronness = (MParameterD*)plist->FindCreateObj("MParameterD", "MHadronness");
     if (!fHadronness)
         return kFALSE;
@@ -161,5 +161,5 @@
     }
 
-    fHadronness->SetHadronness(pow(p, 1./n));
+    fHadronness->SetVal(pow(p, 1./n));
     return kTRUE;
 }
Index: trunk/MagicSoft/Mars/mbase/MFilter.cc
===================================================================
--- trunk/MagicSoft/Mars/mbase/MFilter.cc	(revision 6891)
+++ trunk/MagicSoft/Mars/mbase/MFilter.cc	(revision 6892)
@@ -109,2 +109,21 @@
     *fLog << "%) Evts fullfilled: " << str << endl;
 }
+
+// --------------------------------------------------------------------------
+//
+// Check for corresponding entries in resource file and setup filters.
+//
+// Assuming your filter is called (Set/GetName): MyFilter
+//
+// First you can setup whether the filter is inverted or not:
+//     MyFilter.Inverted: yes, no  <default=no>
+//
+Int_t MFilter::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
+{
+    if (IsEnvDefined(env, prefix, "Inverted", print))
+    {
+        SetInverted(GetEnvValue(env, prefix, "Inverted", IsInverted()));
+        return kTRUE;
+    }
+    return kFALSE;
+}
Index: trunk/MagicSoft/Mars/mbase/MFilter.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MFilter.h	(revision 6891)
+++ trunk/MagicSoft/Mars/mbase/MFilter.h	(revision 6892)
@@ -28,4 +28,6 @@
     void PrintSkipped(UInt_t n, const char *str);
 
+    Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print=kFALSE);
+
     ClassDef(MFilter, 1)		// Abstract base class for the filters
 };
Index: trunk/MagicSoft/Mars/mfbase/MF.cc
===================================================================
--- trunk/MagicSoft/Mars/mfbase/MF.cc	(revision 6891)
+++ trunk/MagicSoft/Mars/mfbase/MF.cc	(revision 6892)
@@ -477,10 +477,7 @@
 Int_t MF::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
 {
-    Bool_t rc = kFALSE;
-    if (IsEnvDefined(env, prefix, "Inverted", print))
-    {
-        rc = kTRUE;
-        SetInverted(GetEnvValue(env, prefix, "Inverted", IsInverted()));
-    }
+    Bool_t rc = MFilter::ReadEnv(env, prefix, print);
+    if (rc==kERROR)
+        return kERROR;
 
     if (!IsEnvDefined(env, prefix, "Condition", print))
Index: trunk/MagicSoft/Mars/mfilter/MFSupercuts.cc
===================================================================
--- trunk/MagicSoft/Mars/mfilter/MFSupercuts.cc	(revision 6891)
+++ trunk/MagicSoft/Mars/mfilter/MFSupercuts.cc	(revision 6892)
@@ -297,4 +297,7 @@
 Int_t MFSupercuts::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
 {
+    if (MFilter::ReadEnv(env, prefix, print)==kERROR)
+        return kERROR;
+
     if (IsEnvDefined(env, prefix, "File", print))
     {
Index: trunk/MagicSoft/Mars/mhflux/FluxLinkDef.h
===================================================================
--- trunk/MagicSoft/Mars/mhflux/FluxLinkDef.h	(revision 6891)
+++ trunk/MagicSoft/Mars/mhflux/FluxLinkDef.h	(revision 6892)
@@ -10,5 +10,4 @@
 #pragma link C++ class MHEnergyEst+;
 #pragma link C++ class MHFalseSource+;
-#pragma link C++ class MHEnergyEst+;
 #pragma link C++ class MHEffectiveOnTime+;
 
Index: trunk/MagicSoft/Mars/mhflux/MAlphaFitter.h
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MAlphaFitter.h	(revision 6891)
+++ trunk/MagicSoft/Mars/mhflux/MAlphaFitter.h	(revision 6892)
@@ -32,5 +32,4 @@
         kSignificanceChi2,
         kSignificanceLogExcess,
-        kSignificanceChi2,
         kSignificanceExcess,
         kExcess
Index: trunk/MagicSoft/Mars/mhflux/MHFalseSource.cc
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHFalseSource.cc	(revision 6891)
+++ trunk/MagicSoft/Mars/mhflux/MHFalseSource.cc	(revision 6892)
@@ -611,4 +611,5 @@
                 fHistOff->ProjectionZ("AlphaOff_z", maxx, maxx, maxy, maxy);
 
+                /* ============= local scaling ================ */
                 const Int_t f = h0->GetXaxis()->FindFixBin(fBgMean-1.5*fAlphaCut);
                 const Int_t l = h0->GetXaxis()->FindFixBin(fAlphaCut*3)+f-1;
@@ -616,4 +617,13 @@
                 //h0->Scale(h1->GetEntries()/h0->GetEntries());
 
+                /* ============= global scaling ================
+                const Int_t f = fHistOff->GetZaxis()->FindFixBin(fBgMean-1.5*fAlphaCut);
+                const Int_t l = fHistOff->GetZaxis()->FindFixBin(fAlphaCut*3)+f-1;
+
+                Double_t c0 = fHist.Integral(0, 9999, 0, 9999, f, l);
+                Double_t c1 = fHistOff->Integral(0, 9999, 0, 9999, f, l);
+
+                h0->Scale(c0/c1);
+                */
             }
         }
Index: trunk/MagicSoft/Mars/mjobs/MJCut.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 6891)
+++ trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 6892)
@@ -322,7 +322,7 @@
 
     // Initialize default binnings
-    MBinning bins1(18, 0,  90,  "BinningAlpha",     "lin");
-    MBinning bins2(30, 10, 1e6, "BinningEnergyEst", "log");
-    MBinning bins3(25, 0,  60,  "BinningTheta",     "cos"); // orig=50bins
+    MBinning bins1(18, 0,  90,   "BinningAlpha",     "lin");
+    MBinning bins2(15, 10, 1e6 , "BinningEnergyEst", "log");
+    MBinning bins3(50, 0,  60,   "BinningTheta",     "cos");
     MBinning bins4("BinningFalseSource");
     plist.AddToList(&bins1);
