Index: /trunk/MagicSoft/Mars/macros/CT1Hillas.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/CT1Hillas.C	(revision 699)
+++ /trunk/MagicSoft/Mars/macros/CT1Hillas.C	(revision 700)
@@ -18,6 +18,6 @@
     // that you don't choos a wrong geometry by chance
     //
-    MGeomCamMagic camct1;
-    plist->AddToList(&camct1);
+    MGeomCamCT1 geomcam;
+    plist->AddToList(&geomcam);
 
     //
@@ -37,10 +37,10 @@
     //  4) fill the hillas into the histograms
     //
-    MCT1ReadAscii readct1("CT1_99_on1.dat") ;
+    MCT1ReadAscii read("CT1_99_on1.dat") ;
     MImgCleanStd  clean;
     MHillasCalc   hcalc;
     MFillHHillas  hfill;
 
-    tlist.AddToList(&readct1);
+    tlist.AddToList(&read);
     tlist.AddToList(&clean);
     tlist.AddToList(&hcalc);
Index: /trunk/MagicSoft/Mars/macros/MagicHillas.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/MagicHillas.C	(revision 700)
+++ /trunk/MagicSoft/Mars/macros/MagicHillas.C	(revision 700)
@@ -0,0 +1,69 @@
+void MagicHillas()
+{
+    //
+    // This is a demonstration program which calculates the Hillas
+    // parameter out of a Magic root file.
+
+    //
+    // Create a empty Parameter List and an empty Task List
+    // The tasklist is identified in the eventloop by its name
+    //
+    MParList  plist;
+
+    MTaskList tlist;
+    plist->AddToList(&tlist);
+
+    //
+    // The geometry container must be created by yourself to make sure
+    // that you don't choos a wrong geometry by chance
+    //
+    MGeomCamMagic geomcam;
+    plist->AddToList(&geomcam);
+
+    MPedestalCam pedest;
+    plist->AddToList(&pedest);
+
+    //
+    // The Hillas histograms (MHHillas) could be created automatically
+    // but to make sure, that they are not deleted when the macro is
+    // finished you must create them yourself and add it to the list
+    //
+    MHHillas *hists = new MHHillas;
+    plist->AddToList(hists);
+
+    //
+    // Now setup the tasks and tasklist:
+    //
+    //  1) read in the data from a ct1 ascii file
+    //  2) clean the image
+    //  3) calculate hillas
+    //  4) fill the hillas into the histograms
+    //
+    MReadTree    read("oscar_protons.root", "Events") ;
+    MCerPhotCalc ncalc;
+    MImgCleanStd clean;
+    MHillasCalc  hcalc;
+    MFillHHillas hfill;
+
+    tlist.AddToList(&read);
+    tlist.AddToList(&ncalc);
+    tlist.AddToList(&clean);
+    tlist.AddToList(&hcalc);
+    tlist.AddToList(&hfill);
+
+    //
+    // Create and setup the eventloop
+    //
+    MEvtLoop evtloop;
+    evtloop.SetParList(&plist);
+
+    //
+    // Execute your analysis
+    //
+    evtloop.Eventloop();
+
+    //
+    // After the analysis is finished we can display the histograms
+    //
+    hists->Draw();
+}
Index: /trunk/MagicSoft/Mars/macros/readCT1.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/readCT1.C	(revision 699)
+++ /trunk/MagicSoft/Mars/macros/readCT1.C	(revision 700)
@@ -3,17 +3,17 @@
     MParList plist;
 
-    MGeomCamCT1 camct1;
+    MGeomCamCT1 geomcam;
     MHillas     hillas;
     MTaskList   tlist;
 
-    plist->AddToList(&camct1);
+    plist->AddToList(&geomcam);
     plist->AddToList(&hillas);
     plist->AddToList(&tlist);
 
-    MCT1ReadAscii readct1("CT1_99_on1.dat") ;
+    MCT1ReadAscii read("CT1_99_on1.dat") ;
     MImgCleanStd  clean;
     MHillasCalc   hcalc;
 
-    tlist.AddToList(&readct1);
+    tlist.AddToList(&read);
     tlist.AddToList(&clean);
     tlist.AddToList(&hcalc);
@@ -28,7 +28,7 @@
 
     Int_t icount = 0 ;
-    MCamDisplay display(&camct1) ;
+    MCamDisplay display(&geomcam) ;
 
-    while (readct1.Process())
+    while (read.Process())
     {
         cout << "Event: " << icount++  << endl  ;
Index: /trunk/MagicSoft/Mars/macros/readMagic.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/readMagic.C	(revision 700)
+++ /trunk/MagicSoft/Mars/macros/readMagic.C	(revision 700)
@@ -0,0 +1,66 @@
+void readMagic()
+{
+    MParList plist;
+
+    MGeomCamMagic geomcam;
+    MPedestalCam  pedest;
+    MHillas       hillas;
+    MTaskList     tlist;
+
+    plist->AddToList(&geomcam);
+    plist->AddToList(&pedest);
+    plist->AddToList(&hillas);
+    plist->AddToList(&tlist);
+
+    MReadTree    read("oscar_protons.root", "Events") ;
+    MCerPhotCalc ncalc;
+    MImgCleanStd clean;
+    MHillasCalc  hcalc;
+
+    tlist.AddToList(&read);
+    tlist.AddToList(&ncalc);
+    tlist.AddToList(&clean);
+    tlist.AddToList(&hcalc);
+
+    MEvtLoop evtloop;
+    evtloop.SetParList(&plist);
+
+    if (!evtloop.PreProcess())
+        return;
+
+    MCerPhotEvt &phevt = *(MCerPhotEvt*)plist->FindObject("MCerPhotEvt");
+
+    Int_t icount = 0 ;
+    MCamDisplay display(&geomcam) ;
+
+    while (read.Process())
+    {
+        cout << "Event: " << icount++  << endl  ;
+
+        if (icount < 45 )
+            continue;
+
+        ncalc.Process();
+
+        display.DrawPhotNum(&phevt);
+        gClient->HandleInput();
+        if(getchar()=='q')
+            break;
+
+        clean.Process();
+        hcalc.Process();
+
+        hillas.Print();
+        hillas.Draw();
+
+        display.DrawPhotNum(&phevt);
+
+        gClient->HandleInput();
+        if(getchar()=='q')
+            break;
+
+        hillas.Clear();
+    } 
+
+    evtloop.PostProcess();
+}
Index: /trunk/MagicSoft/Mars/mgui/MGeomCamCT1.cc
===================================================================
--- /trunk/MagicSoft/Mars/mgui/MGeomCamCT1.cc	(revision 699)
+++ /trunk/MagicSoft/Mars/mgui/MGeomCamCT1.cc	(revision 700)
@@ -75,6 +75,4 @@
                                   diameter);
 
-        cout << pixnum << " " << ring << endl;
-
         for (int i=0; i<ring; i++)
             (*this)[pixnum++].Set((-ring-i)*0.5*diameter,
