Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 4882)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 4883)
@@ -63,4 +63,7 @@
      - implemented intensity recognition
 
+   * mhist/MHCamera.[h,cc]
+     - included functions AddCamContent(MArrayD...) and 
+       SetCamContent(MArrayD... )
 
 
Index: /trunk/MagicSoft/Mars/mhist/MHCamera.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 4882)
+++ /trunk/MagicSoft/Mars/mhist/MHCamera.cc	(revision 4883)
@@ -82,4 +82,6 @@
 #include "MCamEvent.h"
 
+#include "MArrayD.h"
+
 #define kItemsLegend 48 // see SetPalette(1,0)
 
@@ -1201,4 +1203,26 @@
     {
         Fill(idx, const_cast<TArrayD&>(event)[idx]); // FIXME: Slow!
+
+        if (!used || (*const_cast<TArrayC*>(used))[idx])
+            SetUsed(idx);
+    }
+    fEntries++;
+}
+
+// ------------------------------------------------------------------------
+//
+// Call this function to add a MArrayD on top of the present contents.
+//
+void MHCamera::AddCamContent(const MArrayD &event, const TArrayC *used)
+{
+    if (event.GetSize()!=fNcells-2 || IsFreezed())
+        return;
+
+    if (used && used->GetSize()!=fNcells-2)
+        return;
+
+    for (Int_t idx=0; idx<fNcells-2; idx++)
+    {
+        Fill(idx, const_cast<MArrayD&>(event)[idx]); // FIXME: Slow!
 
         if (!used || (*const_cast<TArrayC*>(used))[idx])
Index: /trunk/MagicSoft/Mars/mhist/MHCamera.h
===================================================================
--- /trunk/MagicSoft/Mars/mhist/MHCamera.h	(revision 4882)
+++ /trunk/MagicSoft/Mars/mhist/MHCamera.h	(revision 4883)
@@ -13,4 +13,7 @@
 #ifndef ROOT_TArrayD
 #include <TArrayD.h>
+#endif
+#ifndef ROOT_MArrayD
+#include <MArrayD.h>
 #endif
 #ifndef ROOT_TClonesArray
@@ -146,7 +149,9 @@
     virtual void     AddCamContent(const MHCamera &evt, Int_t type=0);
     virtual void     AddCamContent(const TArrayD &arr, const TArrayC *used=NULL);
+    virtual void     AddCamContent(const MArrayD &arr, const TArrayC *used=NULL);
     virtual void     SetCamContent(const MCamEvent &evt, Int_t type=0) { Reset(); AddCamContent(evt, type); }
+    virtual void     SetCamContent(const MHCamera &d, Int_t type=0) { Reset(); AddCamContent(d, type); fEntries=d.fEntries; }
     virtual void     SetCamContent(const TArrayD &evt, const TArrayC *used=NULL) { Reset(); AddCamContent(evt, used); }
-    virtual void     SetCamContent(const MHCamera &d, Int_t type=0) { Reset(); AddCamContent(d, type); fEntries=d.fEntries; }
+    virtual void     SetCamContent(const MArrayD &evt, const TArrayC *used=NULL) { Reset(); AddCamContent(evt, used); }
 
     virtual void     SetCamError(const MCamEvent &evt, Int_t type=0);
