Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 1269)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 1270)
@@ -9,4 +9,10 @@
    * mbase/MEvtLoop.h:
      - added GetTaskList
+
+   * mbase/MTaskList.[h,cc]:
+     - introduced fTasksProcess which contains only the tasks
+       which overloads the process function so that processing
+       tasks doesn't waste time if a tasks doesn't have the process
+       function
 
 
Index: /trunk/MagicSoft/Mars/mbase/MTaskList.cc
===================================================================
--- /trunk/MagicSoft/Mars/mbase/MTaskList.cc	(revision 1269)
+++ /trunk/MagicSoft/Mars/mbase/MTaskList.cc	(revision 1270)
@@ -57,4 +57,5 @@
 #include "MTaskList.h"
 
+#include <TClass.h>
 #include <TOrdCollection.h>
 
@@ -266,4 +267,6 @@
     fParList = pList;
 
+    fTasksProcess.Delete();
+
     //
     //  create the Iterator over the tasklist
@@ -279,4 +282,18 @@
     {
         *fLog << all << task->GetName() << "... " << flush;
+
+        TClass *cls=NULL;
+        TIter NextBase(task->IsA()->GetListOfBases());
+        while ((cls=(TClass*)NextBase()))
+        {
+            if (cls->GetName()=="MTask")
+                break;
+
+            if (!cls->GetMethodAny("Process"))
+                continue;
+
+            fTasksProcess.Add(task);
+            break;
+        }
 
         switch (task->CallPreProcess(fParList))
@@ -322,5 +339,5 @@
     //  create the Iterator for the TaskList
     //
-    TIter Next(fTasks);
+    TIter Next(&fTasksProcess);
     MTask *task=NULL;
 
Index: /trunk/MagicSoft/Mars/mgui/MGeomPix.h
===================================================================
--- /trunk/MagicSoft/Mars/mgui/MGeomPix.h	(revision 1269)
+++ /trunk/MagicSoft/Mars/mgui/MGeomPix.h	(revision 1270)
@@ -9,7 +9,7 @@
 { 
 private:
-    Float_t fX;  // [mm] the x coordinate
-    Float_t fY;  // [mm] the y coordinate
-    Float_t fR;  // [mm] the r coordinate
+    Float_t fX;  // [mm] the x coordinate of the center
+    Float_t fY;  // [mm] the y coordinate of the center
+    Float_t fR;  // [mm] the r coordinate of the pixel (dist between two parallel sides)
 
     Byte_t  fNumNeighbors; // number of valid neighbors
@@ -35,5 +35,5 @@
     Float_t GetR() const  { return fR; }
 
-    Float_t GetA() const  { return fR*fR*3; } // FIXME: Algorithm! A hexagonal shape is assumed!
+    Float_t GetA() const;
 
     Byte_t  GetNumNeighbors() const { return fNumNeighbors; }
