Index: trunk/MagicSoft/Mars/mdata/MDataArray.cc
===================================================================
--- trunk/MagicSoft/Mars/mdata/MDataArray.cc	(revision 6949)
+++ trunk/MagicSoft/Mars/mdata/MDataArray.cc	(revision 7130)
@@ -51,5 +51,5 @@
 // --------------------------------------------------------------------------
 //
-// Constructor
+// Default Constructor
 //
 MDataArray::MDataArray(const char *name, const char *title)
@@ -60,4 +60,22 @@
     gROOT->GetListOfCleanups()->Add(&fList);
     fList.SetBit(kMustCleanup);
+}
+
+// --------------------------------------------------------------------------
+//
+// Copy Constructor
+//
+MDataArray::MDataArray(MDataArray &a, const char *name, const char *title)
+{
+    fName  = name  ? name  : gsDefName.Data();
+    fTitle = title ? title : gsDefTitle.Data();
+
+    gROOT->GetListOfCleanups()->Add(&fList);
+    fList.SetBit(kMustCleanup);
+
+    TIter Next(&a.fList);
+    MData *data = NULL;
+    while ((data=(MData*)Next()))
+        AddEntry(data->GetRule());
 }
 
Index: trunk/MagicSoft/Mars/mdata/MDataArray.h
===================================================================
--- trunk/MagicSoft/Mars/mdata/MDataArray.h	(revision 6949)
+++ trunk/MagicSoft/Mars/mdata/MDataArray.h	(revision 7130)
@@ -28,4 +28,5 @@
 public:
     MDataArray(const char *name=NULL, const char *title=NULL);
+    MDataArray(MDataArray &a, const char *name=NULL, const char *title=NULL);
 
     void AddEntry(const TString rule);
