Index: /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsTreat.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsTreat.cc	(revision 4632)
+++ /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsTreat.cc	(revision 4633)
@@ -56,4 +56,5 @@
 #include <fstream>
 
+#include <TEnv.h>
 #include <TArrayD.h>
 
@@ -579,3 +580,49 @@
     if (TESTBIT(fFlags, kUseCentralPixel))
         out << "   " << GetUniqueName() << ".SetUseCentralPixel();" << endl;
-}
+    if (TESTBIT(fFlags, kProcessRMS))
+        out << "   " << GetUniqueName() << ".SetProcessRMS();" << endl;
+    if (TESTBIT(fFlags, kHardTreatment))
+        out << "   " << GetUniqueName() << ".SetHardTreatment();" << endl;
+    if (fNumMinNeighbors!=3)
+        out << "   " << GetUniqueName() << ".SetNumMinNeighbors(" << (int)fNumMinNeighbors << ");" << endl;
+}
+
+// --------------------------------------------------------------------------
+//
+// Read the setup from a TEnv, eg:
+//   MBadPixelsCalc.UseInterpolation: no
+//   MBadPixelsCalc.UseCentralPixel:  no
+//   MBadPixelsCalc.HardTreatment:    no
+//   MBadPixelsCalc.ProcessRMS:       no
+//   MBadPixelsCalc.NumMinNeighbors:  3
+//
+Int_t MBadPixelsTreat::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
+{
+    Bool_t rc = kFALSE;
+    if (IsEnvDefined(env, prefix, "UseInterpolation"))
+    {
+        rc = kTRUE;
+        SetUseInterpolation(GetEnvValue(env, prefix, "UseInterpolation", IsUseInterpolation()));
+    }
+    if (IsEnvDefined(env, prefix, "UseCentralPixel"))
+    {
+        rc = kTRUE;
+        SetUseCentralPixel(GetEnvValue(env, prefix, "UseCentralPixel", IsUseCentralPixel()));
+    }
+    if (IsEnvDefined(env, prefix, "HardTreatment"))
+    {
+        rc = kTRUE;
+        SetHardTreatment(GetEnvValue(env, prefix, "HardTreatment", IsHardTreatment()));
+    }
+    if (IsEnvDefined(env, prefix, "ProcessRMS"))
+    {
+        rc = kTRUE;
+        SetProcessRMS(GetEnvValue(env, prefix, "ProcessRMS", IsProcessRMS()));
+    }
+    if (IsEnvDefined(env, prefix, "NumMinNeighbors"))
+    {
+        rc = kTRUE;
+        SetNumMinNeighbors(GetEnvValue(env, prefix, "NumMinNeighbors", fNumMinNeighbors));
+    }
+    return rc;
+}
Index: /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsTreat.h
===================================================================
--- /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsTreat.h	(revision 4632)
+++ /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsTreat.h	(revision 4633)
@@ -28,5 +28,5 @@
         kUseCentralPixel  = 2,
         kProcessRMS       = 3,
-        kHardTreatment  = 4
+        kHardTreatment    = 4
     };
 
@@ -37,11 +37,11 @@
 
     void   Unmap() const;
-    void   StreamPrimitive(ofstream &out) const;
+    Bool_t IsPixelBad(Int_t idx) const;
 
     Bool_t ReInit(MParList *pList);
     Int_t  PreProcess(MParList *pList);
     Int_t  Process();
-
-    Bool_t IsPixelBad(Int_t idx) const;
+    Int_t  ReadEnv(const TEnv &env, TString prefix, Bool_t print);
+    void   StreamPrimitive(ofstream &out) const;
 
 public:
@@ -64,4 +64,10 @@
         b ? SETBIT(fFlags, kHardTreatment) : CLRBIT(fFlags, kHardTreatment);
     }
+
+    Bool_t IsHardTreatment() const    { return TESTBIT(fFlags, kHardTreatment); }
+    Bool_t IsProcessRMS() const       { return TESTBIT(fFlags, kProcessRMS); }
+    Bool_t IsUseCentralPixel() const  { return TESTBIT(fFlags, kUseCentralPixel); }
+    Bool_t IsUseInterpolation() const { return TESTBIT(fFlags, kUseInterpolation); }
+
     void SetNumMinNeighbors(Byte_t num) { fNumMinNeighbors=num; }
     void SetNamePedPhotContainer(const char *name)    { fNamePedPhotContainer = name; }
