Index: trunk/MagicSoft/Mars/mreflector/MRflEvtData.cc
===================================================================
--- trunk/MagicSoft/Mars/mreflector/MRflEvtData.cc	(revision 8265)
+++ trunk/MagicSoft/Mars/mreflector/MRflEvtData.cc	(revision 8266)
@@ -64,4 +64,33 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// Copy constructor which copies the contents of dat into the new object
+//
+MRflEvtData::MRflEvtData(const MRflEvtData &dat)
+   : fList("MRflSinglePhoton", 0), fPos(0)
+{
+    MRflSinglePhoton *ph=NULL;
+
+    TIter Next(&dat.fList);
+    while ((ph=(MRflSinglePhoton*)Next()))
+        new (fList[fPos++]) MRflSinglePhoton(*ph);
+}
+
+// --------------------------------------------------------------------------
+//
+// Clone function producing a clone of this. A pointer to the clone is
+// returned.
+//
+TObject *MRflEvtData::Clone(Option_t *) const
+{
+    return new MRflEvtData(*this);
+}
+
+// --------------------------------------------------------------------------
+//
+// Return the i-th MRflSinglePhoton. Be carefull the result is not
+// range checked!
+//
 const MRflSinglePhoton &MRflEvtData::GetPhoton(Int_t i) const
 {
Index: trunk/MagicSoft/Mars/mreflector/MRflEvtData.h
===================================================================
--- trunk/MagicSoft/Mars/mreflector/MRflEvtData.h	(revision 8265)
+++ trunk/MagicSoft/Mars/mreflector/MRflEvtData.h	(revision 8266)
@@ -23,4 +23,7 @@
 public:
     MRflEvtData(const char *name=NULL, const char *title=NULL);
+    MRflEvtData(const MRflEvtData &dat);
+
+    TObject *Clone(Option_t *) const;
 
     void Reset() { fPos = 0; }
Index: trunk/MagicSoft/Mars/mreflector/MRflSinglePhoton.h
===================================================================
--- trunk/MagicSoft/Mars/mreflector/MRflSinglePhoton.h	(revision 8265)
+++ trunk/MagicSoft/Mars/mreflector/MRflSinglePhoton.h	(revision 8266)
@@ -17,4 +17,11 @@
     Float_t fPhi;    // [rad] camera inc. angle (rad)
 public:
+    MRflSinglePhoton() { }
+    MRflSinglePhoton(const MRflSinglePhoton &ph)
+        : fX(ph.fX), fY(ph.fY), fCosU(ph.fCosU), fCosV(ph.fCosV),
+        fTime(ph.fTime), fHeight(ph.fHeight), fPhi(ph.fPhi)
+    {
+    }
+
     void SetXY(Float_t x, Float_t y) { fX = x; fY=y; }
     void SetCosUV(Float_t u, Float_t v) { fCosU = u; fCosV=v; }
