Index: trunk/MagicSoft/Mars/mtools/MTFillMatrix.cc
===================================================================
--- trunk/MagicSoft/Mars/mtools/MTFillMatrix.cc	(revision 7402)
+++ trunk/MagicSoft/Mars/mtools/MTFillMatrix.cc	(revision 7413)
@@ -204,4 +204,17 @@
 }
 
+//------------------------------------------------------------------------
+//
+// Add all entries deriving from MFilter from list to PreCuts.
+// The ownership is not affected.
+//
+void MTFillMatrix::AddPreCuts(const TList &list)
+{
+    TIter Next(&list);
+    TObject *obj=0;
+    while ((obj=Next()))
+        if (obj->InheritsFrom(MFilter::Class()))
+            fPreCuts.Add(obj);
+}
 
 // --------------------------------------------------------------------------
@@ -209,5 +222,5 @@
 // Fill the matrix (FIXME: Flow diagram missing)
 //
-Bool_t MTFillMatrix::Process()
+Bool_t MTFillMatrix::Process(const MParList &parlist)
 {
     if (!fReader)
@@ -232,5 +245,6 @@
     // Create parameter list and task list, add tasklist to parlist
     //
-    MParList  plist;
+    parlist.Print();
+    MParList  plist(parlist);
     MTaskList tlist;
     plist.AddToList(&tlist);
@@ -372,2 +386,18 @@
     return WriteMatrix1(fname) && WriteMatrix2(fname);
 }
+
+Int_t MTFillMatrix::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
+{
+    Bool_t rc = kFALSE;
+    if (IsEnvDefined(env, prefix, "NumDestEvents1", print))
+    {
+        rc = kTRUE;
+        SetNumDestEvents1(GetEnvValue(env, prefix, "NumDestEvents1", fNumDestEvents1));
+    }
+    if (IsEnvDefined(env, prefix, "NumDestEvents2", print))
+    {
+        rc = kTRUE;
+        SetNumDestEvents2(GetEnvValue(env, prefix, "NumDestEvents2", fNumDestEvents2));
+    }
+    return rc;
+}
Index: trunk/MagicSoft/Mars/mtools/MTFillMatrix.h
===================================================================
--- trunk/MagicSoft/Mars/mtools/MTFillMatrix.h	(revision 7402)
+++ trunk/MagicSoft/Mars/mtools/MTFillMatrix.h	(revision 7413)
@@ -1,4 +1,8 @@
 #ifndef MARS_MTFillMatrix
 #define MARS_MTFillMatrix
+
+#ifndef MARS_MParList
+#include "MParList.h"
+#endif
 
 #ifndef MARS_MH3
@@ -27,4 +31,6 @@
 
     TList     fPreCuts;
+
+    Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
 
     Bool_t CheckResult(MHMatrix *m, Int_t num) const;
@@ -72,6 +78,7 @@
     void AddPreCut(const char *rule);
     void AddPreCut(MFilter *f);
+    void AddPreCuts(const TList &list);
 
-    Bool_t Process();
+    Bool_t Process(const MParList &plist=MParList());
     Bool_t WriteMatrix1(const TString &fname) const { return WriteMatrix(fDestMatrix1, fname, 1); }
     Bool_t WriteMatrix2(const TString &fname) const { return WriteMatrix(fDestMatrix2, fname, 2); }
