Index: trunk/MagicSoft/Mars/msimreflector/MMirror.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirror.cc	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirror.cc	(revision 9371)
@@ -57,4 +57,17 @@
 //
 //    The action should coincide with what is painted in Paint()
+//
+// ------------------------------------------------------------------------
+//
+// Double_t GetA() const
+//
+//     Return the reflective area of the mirror
+//
+// ------------------------------------------------------------------------
+//
+// Double_t GetMaxR() const
+//
+//     Return the maximum distance of a reflective point from the
+//     mirror center
 //
 // ------------------------------------------------------------------------
Index: trunk/MagicSoft/Mars/msimreflector/MMirror.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirror.h	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirror.h	(revision 9371)
@@ -62,4 +62,5 @@
 
     virtual Double_t GetMaxR() const=0;// { return TMath::Max(fMaxRX, fMaxRY); }
+    virtual Double_t GetA() const=0;// { return TMath::Max(fMaxRX, fMaxRY); }
 
     TVector3 SimPSF(const TVector3 &n, Double_t F, Double_t psf) const;
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.cc	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.cc	(revision 9371)
@@ -34,4 +34,5 @@
 #include <stdlib.h> // atof (Ubuntu 8.10)
 
+#include <TMath.h>
 #include <TObjArray.h>
 
@@ -46,4 +47,13 @@
 
 using namespace std;
+
+// --------------------------------------------------------------------------
+//
+// Return the aread of the disk: Pi*r^2
+//
+Double_t MMirrorDisk::GetA() const
+{
+    return TMath::Pi()*fR*fR;
+}
 
 // ------------------------------------------------------------------------
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.h	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorDisk.h	(revision 9371)
@@ -16,4 +16,5 @@
     // MMirror
     Double_t GetMaxR() const { return fR; }
+    Double_t GetA() const;
 
     Bool_t CanHit(const MQuaternion &p) const;
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorHex.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorHex.cc	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorHex.cc	(revision 9371)
@@ -52,4 +52,13 @@
 const Double_t MMirrorHex::fgCos60 = TMath::Cos(60*TMath::DegToRad());
 const Double_t MMirrorHex::fgSin60 = TMath::Sin(60*TMath::DegToRad());
+
+// --------------------------------------------------------------------------
+//
+// Return the aread of the hexagon: d^2*sin(60)
+//
+Double_t MMirrorHex::GetA() const
+{
+    return fD*fD*fgSin60*4;
+}
 
 // ------------------------------------------------------------------------
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorHex.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorHex.h	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorHex.h	(revision 9371)
@@ -23,4 +23,5 @@
     // MMirror
     Double_t GetMaxR() const { return fMaxR; }
+    Double_t GetA() const;
 
     Bool_t CanHit(const MQuaternion &p) const;
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.cc	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.cc	(revision 9371)
@@ -49,7 +49,20 @@
 using namespace std;
 
+// --------------------------------------------------------------------------
+//
+// Return the max radius, i.e. the distance of the edges to zje center
+//
 Double_t MMirrorSquare::GetMaxR() const
 {
     return TMath::Sqrt(2.)*fSideLength;
+}
+
+// --------------------------------------------------------------------------
+//
+// Return the aread of the square: l^2
+//
+Double_t MMirrorSquare::GetA() const
+{
+    return fSideLength*fSideLength*4;
 }
 
Index: trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.h	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MMirrorSquare.h	(revision 9371)
@@ -16,4 +16,5 @@
     // MMirror
     Double_t GetMaxR() const;
+    Double_t GetA() const;
 
     Bool_t HasHit(const MQuaternion &p) const;
Index: trunk/MagicSoft/Mars/msimreflector/MReflector.cc
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MReflector.cc	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MReflector.cc	(revision 9371)
@@ -95,4 +95,21 @@
 // --------------------------------------------------------------------------
 //
+// Return the total Area of all mirrors. Note, that it is recalculated
+// with any call.
+//
+Double_t MReflector::GetA() const
+{
+    Double_t A = 0;
+
+    TIter Next(&fMirrors);
+    MMirror *m = 0;
+    while ((m=static_cast<MMirror*>(Next())))
+        A += m->GetA();
+
+    return A;
+}
+
+// --------------------------------------------------------------------------
+//
 // Get the pointer to the first mirror. This is a very dangerous way of
 // access, but the fastest possible. because it is the most often called
Index: trunk/MagicSoft/Mars/msimreflector/MReflector.h
===================================================================
--- trunk/MagicSoft/Mars/msimreflector/MReflector.h	(revision 9356)
+++ trunk/MagicSoft/Mars/msimreflector/MReflector.h	(revision 9371)
@@ -45,4 +45,5 @@
 
     Double_t GetMaxR() const { return fMaxR; }
+    Double_t GetA() const;
 
     virtual Bool_t CanHit(const MQuaternion &p) const;
