Index: trunk/MagicSoft/Mars/manalysis/MCT1ReadAscii.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCT1ReadAscii.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MCT1ReadAscii.cc	(revision 1003)
@@ -43,5 +43,5 @@
 #include <fstream.h>
 
-#include <TArrayC.h>
+#include <TList.h>
 
 #include "MLog.h"
@@ -65,11 +65,13 @@
     : fIn(NULL)
 {
-    *fName  = name  ? name  : "MCT1ReadAscii";
-    *fTitle = title ? title : "Task to loop over events in CT1 ascii file";
+    fName  = name  ? name  : "MCT1ReadAscii";
+    fTitle = title ? title : "Task to loop over events in CT1 ascii file";
 
     //
     // remember file name for opening the file in the preprocessor
     //
-    fFileNames = new TArrayC;
+    fFileNames = new TList;
+    fFileNames->SetOwner();
+
     if (fname)
         AddFile(fname);
@@ -93,10 +95,6 @@
 void MCT1ReadAscii::AddFile(const char *txt)
 {
-    const int sz  = fFileNames->GetSize();
-    const int tsz = strlen(txt)+1;
-
-    fFileNames->Set(sz+tsz);
-
-    memcpy(fFileNames->GetArray()+sz, txt, tsz);
+    TNamed *name = new TNamed(txt, "");
+    fFileNames->AddLast(name);
 }
 
@@ -114,7 +112,9 @@
     fIn = NULL;
 
-    const int arrsz = fFileNames->GetSize();
-
-    if (arrsz<1)
+    //
+    // Check for the existance of a next file to read
+    //
+    TNamed *file = (TNamed*)fFileNames->First();
+    if (!file)
         return kFALSE;
 
@@ -122,33 +122,21 @@
     // open the file which is the first one in the chain
     //
-    const char *name = fFileNames->GetArray();
+    const char *name = file->GetName();
 
     fIn = new ifstream(name);
-    if (!(*fIn))
-    {
+
+    const Bool_t noexist = !(*fIn);
+
+    if (noexist)
         *fLog << dbginf << "Cannot open file '" << name << "'" << endl;
-        return kFALSE;
-    }
-
-    //
-    // remove the first entry from the chain
-    //
-    *fLog << "Open file: '" << name << "'" << endl;
-
-    //
-    // create the new char array containing the filenames to process
-    //
-    const int sz  = strlen(name)+1;
-
-    char *dummy = new char[arrsz-sz];
-    memcpy(dummy, name+sz, arrsz-sz);
-
-    //
-    // dummy will be deleted by the destructor of fFileNames
-    //
-    fFileNames->Adopt(arrsz-sz, dummy);
-
-    return kTRUE;
-
+    else
+        *fLog << "Open file: '" << name << "'" << endl;
+
+    //
+    // Remove this file from the list of pending files
+    //
+    fFileNames->Remove(file);
+
+    return !noexist;
 }
 
Index: trunk/MagicSoft/Mars/manalysis/MCerPhotCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCerPhotCalc.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MCerPhotCalc.cc	(revision 1003)
@@ -58,6 +58,6 @@
 MCerPhotCalc::MCerPhotCalc(const char *name, const char *title)
 {
-    *fName  = name  ? name  : "MCerPhotCalc";
-    *fTitle = title ? title : "Task to calculate Cerenkov photons from raw data";
+    fName  = name  ? name  : "MCerPhotCalc";
+    fTitle = title ? title : "Task to calculate Cerenkov photons from raw data";
 }
 
Index: trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.cc	(revision 1003)
@@ -45,6 +45,6 @@
 {
 
-  *fName  = name  ? name  : "MCerPhotEvt";
-  *fTitle = title ? title : "(Number of Photon)-Event Information";
+  fName  = name  ? name  : "MCerPhotEvt";
+  fTitle = title ? title : "(Number of Photon)-Event Information";
   
   fPixels = new TClonesArray ("MCerPhotPix", 577) ;
Index: trunk/MagicSoft/Mars/manalysis/MHillas.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MHillas.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MHillas.cc	(revision 1003)
@@ -60,6 +60,6 @@
 MHillas::MHillas(const char *name, const char *title) : fEllipse(NULL)
 {
-    *fName  = name  ? name  : "MHillas";
-    *fTitle = title ? title : "Storage container for Hillas parameter of one event";
+    fName  = name  ? name  : "MHillas";
+    fTitle = title ? title : "Storage container for Hillas parameter of one event";
 
     Reset();
Index: trunk/MagicSoft/Mars/manalysis/MHillasCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MHillasCalc.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MHillasCalc.cc	(revision 1003)
@@ -56,6 +56,6 @@
 MHillasCalc::MHillasCalc(const char *name, const char *title)
 {
-    *fName  = name  ? name  : "MHillasCalc";
-    *fTitle = title ? title : "Task to calculate Hillas parameters";
+    fName  = name  ? name  : "MHillasCalc";
+    fTitle = title ? title : "Task to calculate Hillas parameters";
 }
 
Index: trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1003)
@@ -66,6 +66,6 @@
     : fCleanLvl1(lvl1), fCleanLvl2(lvl2)
 {
-    *fName  = name  ? name  : "MImgCleanStd";
-    *fTitle = title ? title : "Task which does a standard image cleaning";
+    fName  = name  ? name  : "MImgCleanStd";
+    fTitle = title ? title : "Task which does a standard image cleaning";
 
     *fLog << "Cleaning initialized. Using noise level " << lvl1 << " and " << lvl2 << endl;
Index: trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MMcPedestalCopy.cc	(revision 1003)
@@ -49,6 +49,6 @@
 MMcPedestalCopy::MMcPedestalCopy(const char *name, const char *title)
 {
-    *fName  = name  ? name  : "MMcPedestalCopy";
-    *fTitle = title ? title : "Task to copy monte carlo pedestals into MPedestal Container";
+    fName  = name  ? name  : "MMcPedestalCopy";
+    fTitle = title ? title : "Task to copy monte carlo pedestals into MPedestal Container";
 }
 
Index: trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc	(revision 1003)
@@ -53,6 +53,6 @@
 MPedCalcPedRun::MPedCalcPedRun(const char *name, const char *title)
 {
-    *fName  = name  ? name  : "MPedCalcPedRun";
-    *fTitle = title ? title : "Task to calculate pedestals from pedestal runs raw data";
+    fName  = name  ? name  : "MPedCalcPedRun";
+    fTitle = title ? title : "Task to calculate pedestals from pedestal runs raw data";
 }
 
Index: trunk/MagicSoft/Mars/manalysis/MPedestalCam.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MPedestalCam.cc	(revision 1002)
+++ trunk/MagicSoft/Mars/manalysis/MPedestalCam.cc	(revision 1003)
@@ -42,6 +42,6 @@
 MPedestalCam::MPedestalCam(const char *name, const char *title)
 {
-    *fName  = name  ? name  : "MPedestalCam";
-    *fTitle = title ? title : "Storage container for all Pedestal Information in the camera";
+    fName  = name  ? name  : "MPedestalCam";
+    fTitle = title ? title : "Storage container for all Pedestal Information in the camera";
 
     fArray = new TClonesArray("MPedestalPix", 577);
