Index: trunk/MagicSoft/Mars/msimreflector/MMirror.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirror.cc	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirror.cc	(revision 9312)
@@ -78,4 +78,6 @@
 #include <TRandom.h>
 
+#include "MLog.h"
+
 #include "MQuaternion.h"
 
@@ -133,2 +135,13 @@
     return dn;  // Return the vector to be added to the normal vector
 }
+
+void MMirror::Print(Option_t *o) const
+{
+    gLog << fPos.X()  << " " << fPos.Y()  << " " << fPos.Z() << " ";
+    gLog << fNorm.X() << " " << fNorm.Y() << " " << fNorm.Z() << " ";
+    gLog << fFocalLength << " ";
+
+    const TString n = ClassName();
+
+    gLog << n(7, n.Length());
+}
Index: trunk/MagicSoft/Mars/msimreflector/MMirror.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirror.h	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirror.h	(revision 9312)
@@ -70,11 +70,11 @@
     // ----- Mirror specialized functions -----
 
-    // This should fit with Paint()
     virtual Bool_t HasHit(const MQuaternion &p) const=0;
-    // This should fit with HasHit()
-    //void Paint(Option_t *)=0;
     virtual Bool_t CanHit(const MQuaternion &p) const=0;
 
     virtual Int_t ReadM(const TObjArray &tok)=0;
+
+    // TObject
+    void Print(Option_t *o) const;
 
     /*
@@ -86,5 +86,5 @@
     }
     */
-    ClassDef(MMirror, 0) // Base class to describe a mirror
+    ClassDef(MMirror, 1) // Base class to describe a mirror
 };
 
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.cc	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.cc	(revision 9312)
@@ -38,4 +38,6 @@
 #include <TEllipse.h>
 #include <TVirtualPad.h>
+
+#include "MLog.h"
 
 #include "MQuaternion.h"
@@ -99,4 +101,14 @@
 // ------------------------------------------------------------------------
 //
+// Print the contents of the mirror
+//
+void MMirrorDisk::Print(Option_t *o) const
+{
+    MMirror::Print(o);
+    gLog << " " << fR << endl;
+}
+
+// ------------------------------------------------------------------------
+//
 // Paint the mirror in x/y.
 //
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.h	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.h	(revision 9312)
@@ -9,19 +9,22 @@
 {
 private:
-    Double_t fR;
+    Double_t fR; // Radius of the disk
 
 public:
     MMirrorDisk() : fR(24.75) { }
 
+    // MMirror
     Double_t GetMaxR() const { return fR; }
 
-    // This should fit with Paint()
+    Bool_t CanHit(const MQuaternion &p) const;
     Bool_t HasHit(const MQuaternion &p) const;
-    // This should fit with HasHit()
-    void Paint(Option_t *);
-    Bool_t CanHit(const MQuaternion &p) const;
+
     Int_t ReadM(const TObjArray &tok);
 
-    ClassDef(MMirrorDisk, 0)  // A spherical disk type mirror
+    //TObject
+    void Paint(Option_t *);
+    void Print(Option_t *) const;
+
+    ClassDef(MMirrorDisk, 1)  // A spherical disk type mirror
 };
 
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorHex.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorHex.cc	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorHex.cc	(revision 9312)
@@ -39,4 +39,6 @@
 #include <TEllipse.h>
 #include <TVirtualPad.h>
+
+#include "MLog.h"
 
 #include "MHexagon.h"
@@ -142,4 +144,14 @@
 // ------------------------------------------------------------------------
 //
+// Print the contents of the mirror
+//
+void MMirrorHex::Print(Option_t *o) const
+{
+    MMirror::Print(o);
+    gLog << " " << fD*2 << endl;
+}
+
+// ------------------------------------------------------------------------
+//
 // Read the mirror's setup from a file. The first eight tokens should be
 // ignored. (This could be fixed!)
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorHex.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorHex.h	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorHex.h	(revision 9312)
@@ -21,14 +21,17 @@
     MMirrorHex() { SetD(24.75); }
 
+    // MMirror
     Double_t GetMaxR() const { return fMaxR; }
 
-    // This should fit with Paint()
+    Bool_t CanHit(const MQuaternion &p) const;
     Bool_t HasHit(const MQuaternion &p) const;
-    // This should fit with HasHit()
-    void Paint(Option_t *);
-    Bool_t CanHit(const MQuaternion &p) const;
+
     Int_t ReadM(const TObjArray &tok);
 
-    ClassDef(MMirrorHex, 0) // A spherical hexagon type mirror
+    // TObject
+    void Paint(Option_t *);
+    void Print(Option_t *) const;
+
+    ClassDef(MMirrorHex, 1) // A spherical hexagon type mirror
 };
 
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.cc	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.cc	(revision 9312)
@@ -40,4 +40,6 @@
 #include <TEllipse.h>
 #include <TVirtualPad.h>
+
+#include "MLog.h"
 
 #include "MQuaternion.h"
@@ -139,4 +141,14 @@
 // ------------------------------------------------------------------------
 //
+// Print the contents of the mirror
+//
+void MMirrorSquare::Print(Option_t *o) const
+{
+    MMirror::Print(o);
+    gLog << " " << fSideLength << endl;
+}
+
+// ------------------------------------------------------------------------
+//
 // Read the mirror's setup from a file. The first eight tokens should be
 // ignored. (This could be fixed!)
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.h	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.h	(revision 9312)
@@ -10,17 +10,21 @@
 private:
     Double_t fSideLength; // HALF of the side length!
+
 public:
     MMirrorSquare() : fSideLength(24.75) { }
 
+    // MMirror
     Double_t GetMaxR() const;
 
-    // This should fit with Paint()
     Bool_t HasHit(const MQuaternion &p) const;
-    // This should fit with HasHit()
-    void Paint(Option_t *);
     Bool_t CanHit(const MQuaternion &p) const;
+
     Int_t ReadM(const TObjArray &tok);
 
-    ClassDef(MMirrorSquare, 0) // A spherical square type mirror
+    // TObject
+    void Paint(Option_t *);
+    void Print(Option_t *) const;
+
+    ClassDef(MMirrorSquare, 1) // A spherical square type mirror
 };
 
Index: trunk/MagicSoft/Mars/msimreflector/MReflector.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MReflector.h	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MReflector.h	(revision 9312)
@@ -28,4 +28,5 @@
     void InitMaxR();
 
+    // MParContainer
     Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
 
@@ -46,7 +47,9 @@
     Int_t ExecuteReflector(MQuaternion &p, MQuaternion &u) const;
 
+    // TObject
     void Paint(Option_t *o);
+    void Print(Option_t *o) const;
 
-    ClassDef(MReflector, 0) // Parameter container storing a collection of several mirrors (reflector)
+    ClassDef(MReflector, 1) // Parameter container storing a collection of several mirrors (reflector)
 };
     
Index: trunk/MagicSoft/Mars/msimreflector/MSimReflector.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MSimReflector.cc	(revision 9307)
+++ trunk/MagicSoft/Mars/msimreflector/MSimReflector.cc	(revision 9312)
@@ -559,4 +559,11 @@
     fEvt->Sort(kTRUE);
 
+    // FIXME FIXME FIXME: Set maxindex, first and last time.
+    // SetMaxIndex(fReflector->GetNumMirrors()-1)
+    // if (fEvt->GetNumPhotons())
+    // {
+    //    SetTime(fEvt->GetFirst()->GetTime(), fEvt->GetLast()->GetTime());
+    // }
+
     return kTRUE;
 }
