Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 6452)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 6453)
@@ -22,4 +22,23 @@
                                                  -*-*- END OF LINE -*-*-
 
+ 2005/02/14 Thomas Bretz
+
+   * callisto.cc, ganymed.cc, star.cc:  
+     - added some more information to '--help' output
+     - replaced MSequences by MDataSet
+
+   * mjobs/MJCut.[h,cc]: 
+     - replaced MSequences by MDataSet
+     - write MEnergyEst
+     - recalculate MHillasSrc
+
+   * mjobs/MSequences.[h,cc]: 
+     - removed
+
+   * mjobs/MDataSet.[h,cc]: 
+     - added
+
+
+
  2005/02/12 Abelardo Moralejo
 
@@ -45,4 +64,5 @@
 
 
+
  2005/02/12 Markus Gaug
 
@@ -61,5 +81,7 @@
 
 
+
  2005/02/12 Abelardo Moralejo
+
    * mmc/MMcTrig.hxx 
      - Added getter GetNumFirstLevel. This is necessary if that data
@@ -67,4 +89,6 @@
        already a getter, but it is called GetFirstLevel and hence not
        recognized.
+
+
 
  2005/02/11 Abelardo Moralejo
Index: /trunk/MagicSoft/Mars/callisto.cc
===================================================================
--- /trunk/MagicSoft/Mars/callisto.cc	(revision 6452)
+++ /trunk/MagicSoft/Mars/callisto.cc	(revision 6453)
@@ -46,5 +46,6 @@
     gLog << " callisto [-c] [-y] [options] sequence.txt" << endl << endl;
     gLog << " Arguments:" << endl;
-    gLog << "   sequence.txt:             An ascii file defining a sequence of runs" << endl;
+    gLog << "   sequence.txt:             Ascii file defining a sequence of runs" << endl;
+    gLog << "                             For more details see MSequence" << endl;
     gLog << " Root Options:" << endl;
     gLog << "   -b                        Batch mode (no graphical output to screen)" << endl<<endl;
Index: /trunk/MagicSoft/Mars/ganymed.cc
===================================================================
--- /trunk/MagicSoft/Mars/ganymed.cc	(revision 6452)
+++ /trunk/MagicSoft/Mars/ganymed.cc	(revision 6453)
@@ -15,5 +15,5 @@
 #include "MStatusDisplay.h"
 
-#include "MSequences.h"
+#include "MDataSet.h"
 #include "MJCut.h"
 
@@ -43,5 +43,6 @@
     gLog << " ganymed [-c] [-y] [options] sequences.txt" << endl << endl;
     gLog << " Arguments:" << endl;
-    gLog << "   sequences.txt:            An ascii file defining a collection of sequences" << endl;
+    gLog << "   dataset.txt:              Ascii file defining a collection of sequences" << endl;
+    gLog << "                             For more details see MDataSet." << endl;
     gLog << " Root Options:" << endl;
     gLog << "   -b                        Batch mode (no graphical output to screen)" << endl<<endl;
@@ -142,5 +143,5 @@
     // Setup sequence and check its validity
     //
-    MSequences seq(kSequences);
+    MDataSet seq(kSequences);
     if (kNumAnalysis>=0)
         seq.SetNumAnalysis(kNumAnalysis);
Index: /trunk/MagicSoft/Mars/mjobs/MDataSet.cc
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MDataSet.cc	(revision 6453)
+++ /trunk/MagicSoft/Mars/mjobs/MDataSet.cc	(revision 6453)
@@ -0,0 +1,262 @@
+/* ======================================================================== *\
+!
+! *
+! * This file is part of MARS, the MAGIC Analysis and Reconstruction
+! * Software. It is distributed to you in the hope that it can be a useful
+! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
+! * It is distributed WITHOUT ANY WARRANTY.
+! *
+! * Permission to use, copy, modify and distribute this software and its
+! * documentation for any purpose is hereby granted without fee,
+! * provided that the above copyright notice appear in all copies and
+! * that both that copyright notice and this permission notice appear
+! * in supporting documentation. It is provided "as is" without express
+! * or implied warranty.
+! *
+!
+!
+!   Author(s): Thomas Bretz, 1/2005 <mailto:tbretz@astro.uni-wuerzburg.de>
+!
+!   Copyright: MAGIC Software Development, 2004-2005
+!
+!
+\* ======================================================================== */
+
+/////////////////////////////////////////////////////////////////////////////
+//
+//  MDataSet
+//
+//  This class describes a collection of sequences.
+//
+//  Such an input file looks like:
+//
+//     crab.seq:
+//     ---------
+//       AnalysisNumber: 1
+//
+//       SequencesOn: 35222
+//       SequencesOff: 36817
+//
+//       Sequence00035222.File: sequences/sequence035222.txt
+//       Sequence00036817.File: sequences/sequence036817.txt
+//
+//       Sequence00035222.Dir: /data2/wuerzburg/Crab-Analyse/images/035222
+//       Sequence00036817.Dir: /data2/wuerzburg/Crab-Analyse/images/036817
+//
+// The analysis number is an artifical number used to name the output
+// files automatically if the names are not overwritten in the corresponding
+// programs.
+//
+// The sequence number are used to concatenate the filenames of the
+// sequences using the file structure used in the datacenter.
+//
+// If you have different file names you can overwrite the default file names
+// using Sequence%08d.File (make sure you have 8 digits!)
+//
+// In standard coditions (datacenter file system) paths are concatenated
+// by using the information in the sequence files (date, etc). You can
+// overwrite the directories in which the sequence-files (eg I-files) are
+// stored using Sequence%08d.Dir (make sure you have 8 digits!)
+//
+// Resource file entries are case sensitive!
+//
+// MISSING (27/01/04): The default name and paths cannot be used yet, because
+//                     they have to be defined soon.
+//
+/////////////////////////////////////////////////////////////////////////////
+#include "MDataSet.h"
+
+#include <stdlib.h>
+
+#include <TEnv.h>
+#include <TRegexp.h>
+#include <TSystem.h> // TSystem::ExpandPath
+
+#include "MLog.h"
+#include "MLogManip.h"
+
+#include "MRead.h"
+#include "MDirIter.h"
+#include "MSequence.h"
+
+ClassImp(MDataSet);
+
+using namespace std;
+
+// --------------------------------------------------------------------------
+//
+// Copy the run numbers from the TString runs into the TArrayI data
+//
+void MDataSet::Split(TString &runs, TArrayI &data) const
+{
+    const TRegexp regexp("[0-9]+");
+
+    data.Set(0);
+    runs = runs.Strip(TString::kTrailing);
+
+    while (!runs.IsNull())
+    {
+        TString num = runs(regexp);
+
+        const Int_t n = data.GetSize();
+        data.Set(n+1);
+        data[n] = atoi(num.Data());
+
+        runs.Remove(0, runs.First(num)+num.Length());
+    }
+}
+
+void MDataSet::ResolveSequences(TEnv &env, const TArrayI &num, TList &list) const
+{
+    for (int i=0; i<num.GetSize(); i++)
+    {
+        TString name = env.GetValue(Form("Sequence%08d.File", num[i]), "");
+        TString dir  = env.GetValue(Form("Sequence%08d.Dir",  num[i]), "");
+
+        if (name.IsNull())
+        {
+            // Replace with correct default name
+            name = Form("/data2/wuerzburg/sequences/sequence%08d.txt", num[i]);
+        }
+        /*
+        if (dir.IsNull())
+        {
+            // Replace with default dir
+        }
+        */
+
+        if (gSystem->AccessPathName(name, kFileExists))
+            gLog << warn << "WARNING - Sequence file '" << name << "' doesn't exist." << endl;
+
+        if (gSystem->AccessPathName(dir, kFileExists))
+            gLog << warn << "WARNING - Directory '" << dir << "' doesn't exist." << endl;
+
+        list.Add(new TNamed(name, dir));
+    }
+}
+
+// --------------------------------------------------------------------------
+//
+// Read the file fname as setup file for the sequence.
+//
+MDataSet::MDataSet(const char *fname)
+{
+    fName  = fname;
+
+    const char *expname = gSystem->ExpandPathName(fname);
+
+    fTitle = Form("Sequences contained in file %s", expname);
+
+    TEnv env(expname);
+    delete [] expname;
+
+    TString str;
+
+    fNumAnalysis = env.GetValue("AnalysisNumber",  -1);
+
+    str = env.GetValue("SequencesOn", "");
+    Split(str, fNumSequencesOn);
+    str = env.GetValue("SequencesOff", "");
+    Split(str, fNumSequencesOff);
+
+
+    ResolveSequences(env, fNumSequencesOn,  fSequencesOn);
+    ResolveSequences(env, fNumSequencesOff, fSequencesOff);
+
+
+
+    //Print();
+    /*
+     GetFileNames(env, fSequencesOn);
+     GetFileNames(env, fSequencesOff);
+     */
+}
+
+// --------------------------------------------------------------------------
+//
+// Return '+' if both can be accessed, '-' otherwise.
+//
+void MDataSet::PrintFile(const TObject &obj)
+{
+    const Bool_t access = !gSystem->AccessPathName(obj.GetName(), kFileExists) && !gSystem->AccessPathName(obj.GetTitle(), kFileExists) ? '+' : '-';
+    gLog << " " << (access?"+":"-") << " " << obj.GetName() << " <" << obj.GetTitle() << ">" << endl;
+}
+
+// --------------------------------------------------------------------------
+//
+// Print the contents of the sequence
+//
+void MDataSet::Print(Option_t *o) const
+{
+    gLog << all;
+    if (!IsValid())
+    {
+        gLog << "Sequence: " << fName << " <invalid>" << endl;
+        return;
+    }
+    gLog << "Analysis Number: " << fNumAnalysis << endl;
+    gLog << "Sequences On:   ";
+    for (int i=0; i<fNumSequencesOn.GetSize(); i++)
+        gLog << " " << fNumSequencesOn[i];
+    gLog << endl;
+    gLog << "Sequences Off:  ";
+    for (int i=0; i<fNumSequencesOff.GetSize(); i++)
+        gLog << " " << fNumSequencesOff[i];
+    gLog << endl;
+
+    if (!TString(o).Contains("files", TString::kIgnoreCase))
+        return;
+
+    TObject *obj=0;
+
+    gLog << endl;
+    gLog << "On-Data Files:" << endl;
+    TIter NextOn(&fSequencesOn);
+    while ((obj=NextOn()))
+        PrintFile(*obj);
+
+    gLog << endl;
+    gLog << "Off-Data Files:" << endl;
+    TIter NextOff(&fSequencesOff);
+    while ((obj=NextOff()))
+        PrintFile(*obj);
+}
+
+Bool_t MDataSet::AddSequencesToList(const TList &list, MRead &read, char *id, Bool_t raw)
+{
+    MDirIter files;
+
+    TIter Next(const_cast<TList*>(&list));
+    TObject *o=0;
+    while ((o=Next()))
+    {
+        MSequence seq(o->GetName());
+        if (!seq.IsValid())
+        {
+            gLog << warn << "WARNING - Sequence " << o->GetName() << " invalid!" << endl;
+            return kFALSE;
+        }
+
+        const TString dir(o->GetTitle());
+        seq.SetupDatRuns(files, dir.IsNull() ? 0 : dir.Data(), id, raw);
+    }
+
+    return read.AddFiles(files)>0;
+}
+
+Bool_t MDataSet::AddFiles(MRead &read, char *id, Bool_t raw) const
+{
+    const Bool_t rc1 = AddFilesOff(read, id, raw);
+    const Bool_t rc2 = AddFilesOn(read, id, raw);
+    return rc1 && rc2;
+}
+
+Bool_t MDataSet::AddFilesOn(MRead &read, char *id, Bool_t raw) const
+{
+    return AddSequencesToList(fSequencesOn, read, id, raw);
+}
+
+Bool_t MDataSet::AddFilesOff(MRead &read, char *id, Bool_t raw) const
+{
+    return AddSequencesToList(fSequencesOff, read, id, raw);
+}
Index: /trunk/MagicSoft/Mars/mjobs/MDataSet.h
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MDataSet.h	(revision 6453)
+++ /trunk/MagicSoft/Mars/mjobs/MDataSet.h	(revision 6453)
@@ -0,0 +1,55 @@
+#ifndef MARS_MDataSet
+#define MARS_MDataSet
+
+#ifndef MARS_MParContainer
+#include "MParContainer.h"
+#endif
+
+#ifndef ROOT_TArrayI
+#include <TArrayI.h>
+#endif
+
+class MRead;
+
+class MDataSet : public MParContainer
+{
+private:
+    UInt_t fNumAnalysis;      // Analysis number (artificial)
+
+    TArrayI fNumSequencesOn;  // number of on-sequences
+    TArrayI fNumSequencesOff; // number of off-sequences
+
+    TList fSequencesOn;       // list of names and paths of on-sequences
+    TList fSequencesOff;      // list of names and paths of off-sequences
+
+    void Split(TString &runs, TArrayI &data) const;
+    void ResolveSequences(TEnv &env, const TArrayI &num, TList &list) const;
+    static void PrintFile(const TObject &obj);
+
+public:
+    MDataSet() : fNumAnalysis((UInt_t)-1) { }
+    MDataSet(const char *fname);
+
+    void Print(Option_t *o="") const;
+
+    Bool_t IsValid() const { return fNumAnalysis!=(UInt_t)-1; }
+
+    static Bool_t AddSequencesToList(const TList &list, MRead &read, char *id="I", Bool_t raw=kFALSE);
+
+    Bool_t AddFiles(MRead &read,    char *id="I", Bool_t raw=kFALSE) const;
+    Bool_t AddFilesOn(MRead &read,  char *id="I", Bool_t raw=kFALSE) const;
+    Bool_t AddFilesOff(MRead &read, char *id="I", Bool_t raw=kFALSE) const;
+
+    UInt_t GetNumSequencesOn() const  { return fNumSequencesOn.GetSize(); }
+    UInt_t GetNumSequencesOff() const { return fNumSequencesOff.GetSize(); }
+
+    Bool_t HasOffSequences() const { return GetNumSequencesOff()>0; }
+
+    // Getter
+    UInt_t GetNumAnalysis() const { return fNumAnalysis; }
+    void   SetNumAnalysis(UInt_t num) { fNumAnalysis=num; }
+
+    ClassDef(MDataSet, 0)
+};
+
+#endif
Index: /trunk/MagicSoft/Mars/mjobs/MJCut.cc
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 6452)
+++ /trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 6453)
@@ -56,5 +56,5 @@
 #include "../mhflux/MAlphaFitter.h"
 #include "MBinning.h"
-#include "MSequences.h"
+#include "MDataSet.h"
 #include "MParameters.h"
 #include "MObservatory.h"
@@ -255,4 +255,5 @@
 //   "MHillasSrc"   to  "Events"
 //   "MHadronness"  to  "Events"       yes
+//   "MEnergyEst"   to  "Events"       yes
 //   "DataType"     to  "Events"
 //
@@ -262,4 +263,5 @@
     write.AddContainer("MHillasSrc",  "Events");
     write.AddContainer("MHadronness", "Events", kFALSE);
+    write.AddContainer("MEnergyEst",  "Events", kFALSE);
     write.AddContainer("DataType",    "Events");
 
@@ -271,5 +273,5 @@
 }
 
-Bool_t MJCut::ProcessFile(const MSequences &seq)
+Bool_t MJCut::ProcessFile(const MDataSet &seq)
 {
     if (!seq.IsValid())
@@ -371,9 +373,10 @@
     // How to get source position from off- and on-data?
     MSrcPosCalc scalc;
-
-    //MHillasCalc hcalc;
-    //hcalc.SetFlags(MHillasCalc::kCalcHillasSrc);
+    MHillasCalc hcalc;
+    hcalc.SetFlags(MHillasCalc::kCalcHillasSrc);
 
     MTaskList tlist2;
+    tlist2.AddToList(&scalc);
+    tlist2.AddToList(&hcalc);
     tlist2.AddToList(&taskenv1);
     tlist2.AddToList(&taskenv2);
@@ -386,6 +389,4 @@
     if (!fWriteOnly)
         tlist2.AddToList(&ffs);
-    //tlist2.AddToList(&scalc);
-    //tlist2.AddToList(&hcalc);
     tlist2.AddToList(&cont2);
     if (!fWriteOnly)
Index: /trunk/MagicSoft/Mars/mjobs/MJCut.h
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MJCut.h	(revision 6452)
+++ /trunk/MagicSoft/Mars/mjobs/MJCut.h	(revision 6453)
@@ -7,5 +7,5 @@
 
 class MTask;
-class MSequences;
+class MDataSet;
 class MWriteRootFile;
 
@@ -37,5 +37,5 @@
     ~MJCut();
 
-    Bool_t ProcessFile(const MSequences &seq);
+    Bool_t ProcessFile(const MDataSet &seq);
 
     void EnableStorageOfSummary(Bool_t b=kTRUE)  { fStoreSummary = b; } // See SetNameSummary
Index: unk/MagicSoft/Mars/mjobs/MSequences.cc
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MSequences.cc	(revision 6452)
+++ 	(revision )
@@ -1,262 +1,0 @@
-/* ======================================================================== *\
-!
-! *
-! * This file is part of MARS, the MAGIC Analysis and Reconstruction
-! * Software. It is distributed to you in the hope that it can be a useful
-! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
-! * It is distributed WITHOUT ANY WARRANTY.
-! *
-! * Permission to use, copy, modify and distribute this software and its
-! * documentation for any purpose is hereby granted without fee,
-! * provided that the above copyright notice appear in all copies and
-! * that both that copyright notice and this permission notice appear
-! * in supporting documentation. It is provided "as is" without express
-! * or implied warranty.
-! *
-!
-!
-!   Author(s): Thomas Bretz, 1/2005 <mailto:tbretz@astro.uni-wuerzburg.de>
-!
-!   Copyright: MAGIC Software Development, 2004-2005
-!
-!
-\* ======================================================================== */
-
-/////////////////////////////////////////////////////////////////////////////
-//
-//  MSequences
-//
-//  This class describes a collection of sequences.
-//
-//  Such an input file looks like:
-//
-//     crab.seq:
-//     ---------
-//       AnalysisNumber: 1
-//
-//       SequencesOn: 35222
-//       SequencesOff: 36817
-//
-//       Sequence00035222.File: sequences/sequence035222.txt
-//       Sequence00036817.File: sequences/sequence036817.txt
-//
-//       Sequence00035222.Dir: /data2/wuerzburg/Crab-Analyse/images/035222
-//       Sequence00036817.Dir: /data2/wuerzburg/Crab-Analyse/images/036817
-//
-// The analysis number is an artifical number used to name the output
-// files automatically if the names are not overwritten in the corresponding
-// programs.
-//
-// The sequence number are used to concatenate the filenames of the
-// sequences using the file structure used in the datacenter.
-//
-// If you have different file names you can overwrite the default file names
-// using Sequence%08d.File (make sure you have 8 digits!)
-//
-// In standard coditions (datacenter file system) paths are concatenated
-// by using the information in the sequence files (date, etc). You can
-// overwrite the directories in which the sequence-files (eg I-files) are
-// stored using Sequence%08d.Dir (make sure you have 8 digits!)
-//
-// Resource file entries are case sensitive!
-//
-// MISSING (27/01/04): The default name and paths cannot be used yet, because
-//                     they have to be defined soon.
-//
-/////////////////////////////////////////////////////////////////////////////
-#include "MSequences.h"
-
-#include <stdlib.h>
-
-#include <TEnv.h>
-#include <TRegexp.h>
-#include <TSystem.h> // TSystem::ExpandPath
-
-#include "MLog.h"
-#include "MLogManip.h"
-
-#include "MRead.h"
-#include "MDirIter.h"
-#include "MSequence.h"
-
-ClassImp(MSequences);
-
-using namespace std;
-
-// --------------------------------------------------------------------------
-//
-// Copy the run numbers from the TString runs into the TArrayI data
-//
-void MSequences::Split(TString &runs, TArrayI &data) const
-{
-    const TRegexp regexp("[0-9]+");
-
-    data.Set(0);
-    runs = runs.Strip(TString::kTrailing);
-
-    while (!runs.IsNull())
-    {
-        TString num = runs(regexp);
-
-        const Int_t n = data.GetSize();
-        data.Set(n+1);
-        data[n] = atoi(num.Data());
-
-        runs.Remove(0, runs.First(num)+num.Length());
-    }
-}
-
-void MSequences::ResolveSequences(TEnv &env, const TArrayI &num, TList &list) const
-{
-    for (int i=0; i<num.GetSize(); i++)
-    {
-        TString name = env.GetValue(Form("Sequence%08d.File", num[i]), "");
-        TString dir  = env.GetValue(Form("Sequence%08d.Dir",  num[i]), "");
-
-        if (name.IsNull())
-        {
-            // Replace with correct default name
-            name = Form("/data2/wuerzburg/sequences/sequence%08d.txt", num[i]);
-        }
-        /*
-        if (dir.IsNull())
-        {
-            // Replace with default dir
-        }
-        */
-
-        if (gSystem->AccessPathName(name, kFileExists))
-            gLog << warn << "WARNING - Sequence file '" << name << "' doesn't exist." << endl;
-
-        if (gSystem->AccessPathName(dir, kFileExists))
-            gLog << warn << "WARNING - Directory '" << dir << "' doesn't exist." << endl;
-
-        list.Add(new TNamed(name, dir));
-    }
-}
-
-// --------------------------------------------------------------------------
-//
-// Read the file fname as setup file for the sequence.
-//
-MSequences::MSequences(const char *fname)
-{
-    fName  = fname;
-
-    const char *expname = gSystem->ExpandPathName(fname);
-
-    fTitle = Form("Sequences contained in file %s", expname);
-
-    TEnv env(expname);
-    delete [] expname;
-
-    TString str;
-
-    fNumAnalysis = env.GetValue("AnalysisNumber",  -1);
-
-    str = env.GetValue("SequencesOn", "");
-    Split(str, fNumSequencesOn);
-    str = env.GetValue("SequencesOff", "");
-    Split(str, fNumSequencesOff);
-
-
-    ResolveSequences(env, fNumSequencesOn,  fSequencesOn);
-    ResolveSequences(env, fNumSequencesOff, fSequencesOff);
-
-
-
-    //Print();
-    /*
-     GetFileNames(env, fSequencesOn);
-     GetFileNames(env, fSequencesOff);
-     */
-}
-
-// --------------------------------------------------------------------------
-//
-// Return '+' if both can be accessed, '-' otherwise.
-//
-void MSequences::PrintFile(const TObject &obj)
-{
-    const Bool_t access = !gSystem->AccessPathName(obj.GetName(), kFileExists) && !gSystem->AccessPathName(obj.GetTitle(), kFileExists) ? '+' : '-';
-    gLog << " " << (access?"+":"-") << " " << obj.GetName() << " <" << obj.GetTitle() << ">" << endl;
-}
-
-// --------------------------------------------------------------------------
-//
-// Print the contents of the sequence
-//
-void MSequences::Print(Option_t *o) const
-{
-    gLog << all;
-    if (!IsValid())
-    {
-        gLog << "Sequence: " << fName << " <invalid>" << endl;
-        return;
-    }
-    gLog << "Analysis Number: " << fNumAnalysis << endl;
-    gLog << "Sequences On:   ";
-    for (int i=0; i<fNumSequencesOn.GetSize(); i++)
-        gLog << " " << fNumSequencesOn[i];
-    gLog << endl;
-    gLog << "Sequences Off:  ";
-    for (int i=0; i<fNumSequencesOff.GetSize(); i++)
-        gLog << " " << fNumSequencesOff[i];
-    gLog << endl;
-
-    if (!TString(o).Contains("files", TString::kIgnoreCase))
-        return;
-
-    TObject *obj=0;
-
-    gLog << endl;
-    gLog << "On-Data Files:" << endl;
-    TIter NextOn(&fSequencesOn);
-    while ((obj=NextOn()))
-        PrintFile(*obj);
-
-    gLog << endl;
-    gLog << "Off-Data Files:" << endl;
-    TIter NextOff(&fSequencesOff);
-    while ((obj=NextOff()))
-        PrintFile(*obj);
-}
-
-Bool_t MSequences::AddSequencesToList(const TList &list, MRead &read, char *id, Bool_t raw)
-{
-    MDirIter files;
-
-    TIter Next(const_cast<TList*>(&list));
-    TObject *o=0;
-    while ((o=Next()))
-    {
-        MSequence seq(o->GetName());
-        if (!seq.IsValid())
-        {
-            gLog << warn << "WARNING - Sequence " << o->GetName() << " invalid!" << endl;
-            return kFALSE;
-        }
-
-        const TString dir(o->GetTitle());
-        seq.SetupDatRuns(files, dir.IsNull() ? 0 : dir.Data(), id, raw);
-    }
-
-    return read.AddFiles(files)>0;
-}
-
-Bool_t MSequences::AddFiles(MRead &read, char *id, Bool_t raw) const
-{
-    const Bool_t rc1 = AddFilesOff(read, id, raw);
-    const Bool_t rc2 = AddFilesOn(read, id, raw);
-    return rc1 && rc2;
-}
-
-Bool_t MSequences::AddFilesOn(MRead &read, char *id, Bool_t raw) const
-{
-    return AddSequencesToList(fSequencesOn, read, id, raw);
-}
-
-Bool_t MSequences::AddFilesOff(MRead &read, char *id, Bool_t raw) const
-{
-    return AddSequencesToList(fSequencesOff, read, id, raw);
-}
Index: unk/MagicSoft/Mars/mjobs/MSequences.h
===================================================================
--- /trunk/MagicSoft/Mars/mjobs/MSequences.h	(revision 6452)
+++ 	(revision )
@@ -1,55 +1,0 @@
-#ifndef MARS_MSequences
-#define MARS_MSequences
-
-#ifndef MARS_MParContainer
-#include "MParContainer.h"
-#endif
-
-#ifndef ROOT_TArrayI
-#include <TArrayI.h>
-#endif
-
-class MRead;
-
-class MSequences : public MParContainer
-{
-private:
-    UInt_t fNumAnalysis;      // Analysis number (artificial)
-
-    TArrayI fNumSequencesOn;  // number of on-sequences
-    TArrayI fNumSequencesOff; // number of off-sequences
-
-    TList fSequencesOn;       // list of names and paths of on-sequences
-    TList fSequencesOff;      // list of names and paths of off-sequences
-
-    void Split(TString &runs, TArrayI &data) const;
-    void ResolveSequences(TEnv &env, const TArrayI &num, TList &list) const;
-    static void PrintFile(const TObject &obj);
-
-public:
-    MSequences() : fNumAnalysis((UInt_t)-1) { }
-    MSequences(const char *fname);
-
-    void Print(Option_t *o="") const;
-
-    Bool_t IsValid() const { return fNumAnalysis!=(UInt_t)-1; }
-
-    static Bool_t AddSequencesToList(const TList &list, MRead &read, char *id="I", Bool_t raw=kFALSE);
-
-    Bool_t AddFiles(MRead &read,    char *id="I", Bool_t raw=kFALSE) const;
-    Bool_t AddFilesOn(MRead &read,  char *id="I", Bool_t raw=kFALSE) const;
-    Bool_t AddFilesOff(MRead &read, char *id="I", Bool_t raw=kFALSE) const;
-
-    UInt_t GetNumSequencesOn() const  { return fNumSequencesOn.GetSize(); }
-    UInt_t GetNumSequencesOff() const { return fNumSequencesOff.GetSize(); }
-
-    Bool_t HasOffSequences() const { return GetNumSequencesOff()>0; }
-
-    // Getter
-    UInt_t GetNumAnalysis() const { return fNumAnalysis; }
-    void   SetNumAnalysis(UInt_t num) { fNumAnalysis=num; }
-
-    ClassDef(MSequences, 0)
-};
-
-#endif
Index: /trunk/MagicSoft/Mars/star.cc
===================================================================
--- /trunk/MagicSoft/Mars/star.cc	(revision 6452)
+++ /trunk/MagicSoft/Mars/star.cc	(revision 6453)
@@ -43,5 +43,6 @@
     gLog << " star [options] sequence.txt" << endl << endl;
     gLog << " Arguments:" << endl;
-    gLog << "   sequence.txt:             An ascii file defining a sequence of runs" << endl;
+    gLog << "   sequence.txt:             Ascii file defining a sequence of runs" << endl;
+    gLog << "                             For more details see MSequence" << endl;
     gLog << " Root Options:" << endl;
     gLog << "   -b                        Batch mode (no graphical output to screen)" << endl<<endl;
