Index: trunk/MagicSoft/Mars/mimage/ImageLinkDef.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/ImageLinkDef.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/ImageLinkDef.h	(revision 6855)
@@ -10,5 +10,4 @@
 #pragma link C++ class MHillas+;
 #pragma link C++ class MHillasSrc+;
-#pragma link C++ class MHillasSrcCalc+;
 #pragma link C++ class MHillasExt+;
 #pragma link C++ class MHillasCalc+;
Index: trunk/MagicSoft/Mars/mimage/MCameraSmooth.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MCameraSmooth.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MCameraSmooth.cc	(revision 6855)
@@ -41,6 +41,6 @@
 #include "MGeomPix.h"
 #include "MGeomCam.h"
-#include "MCerPhotPix.h"
-#include "MCerPhotEvt.h"
+#include "MSignalPix.h"
+#include "MSignalCam.h"
 
 ClassImp(MCameraSmooth);
@@ -62,13 +62,13 @@
 // --------------------------------------------------------------------------
 //
-//  - get the MCerPhotEvt from the parlist (abort if missing)
+//  - get the MSignalCam from the parlist (abort if missing)
 //  - get MGeomCam from the parameter list
 //
 Int_t MCameraSmooth::PreProcess (MParList *pList)
 {
-    fEvt = (MCerPhotEvt*)pList->FindObject("MCerPhotEvt");
+    fEvt = (MSignalCam*)pList->FindObject("MSignalCam");
     if (!fEvt)
     {
-        *fLog << err << dbginf << "MCerPhotEvt not found... aborting." << endl;
+        *fLog << err << dbginf << "MSignalCam not found... aborting." << endl;
         return kFALSE;
     }
@@ -104,9 +104,9 @@
         for (UShort_t i=0; i<entries; i++)
         {
-            MCerPhotPix &pix = (*fEvt)[i];
+            MSignalPix &pix = (*fEvt)[i];
 
-            const Int_t id = pix.GetPixId();
+            //const Int_t id = pix.GetPixId();
 
-            const MGeomPix &gpix = (*fGeomCam)[id];
+            const MGeomPix &gpix = (*fGeomCam)[i];
 
             const Int_t n = gpix.GetNumNeighbors();
@@ -120,5 +120,5 @@
                 const UShort_t nid = gpix.GetNeighbor(j);
 
-                const MCerPhotPix *evtpix = fEvt->GetPixById(nid);
+                const MSignalPix *evtpix = fEvt->GetPixById(nid);
                 if (evtpix)
                 {
Index: trunk/MagicSoft/Mars/mimage/MCameraSmooth.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MCameraSmooth.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MCameraSmooth.h	(revision 6855)
@@ -11,11 +11,11 @@
 
 class MGeomCam;
-class MCerPhotEvt;
+class MSignalCam;
 
 class MCameraSmooth : public MTask
 {
 private:
-    MCerPhotEvt *fEvt;     //! Pointer to data to smooth
-    MGeomCam    *fGeomCam; //! Camera geometry
+    MSignalCam *fEvt;     //! Pointer to data to smooth
+    MGeomCam   *fGeomCam; //! Camera geometry
 
     Byte_t fCounts;           // number of smoothing loops
Index: trunk/MagicSoft/Mars/mimage/MConcentration.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MConcentration.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MConcentration.cc	(revision 6855)
@@ -50,6 +50,6 @@
 #include "MGeomCam.h"
 
-#include "MCerPhotPix.h"
-#include "MCerPhotEvt.h"
+#include "MSignalPix.h"
+#include "MSignalCam.h"
 
 #include "MLog.h"
@@ -106,14 +106,16 @@
 //    Nothing.
 //
-Int_t MConcentration::Calc(const MGeomCam &geom, const MCerPhotEvt &evt, const MHillas &hillas)
+Int_t MConcentration::Calc(const MGeomCam &geom, const MSignalCam &evt, const MHillas &hillas)
 {
     Float_t maxpix[9] = {0,0,0,0,0,0,0,0,0};             // [#phot]
 
-    TIter Next(evt);
-    MCerPhotPix *pix = 0;
-    while ((pix=(MCerPhotPix*)Next()))
-    {
-        const Int_t    pixid = pix->GetPixId();
-        const Double_t nphot = pix->GetNumPhotons()* geom.GetPixRatio(pixid);
+   const UInt_t npix = evt.GetNumPixels();
+   for (UInt_t i=0; i<npix; i++)
+   {
+       const MSignalPix &pix = evt[i];
+       if (!pix.IsPixelUsed())
+           continue;
+
+        const Double_t nphot = pix.GetNumPhotons()* geom.GetPixRatio(i);
 
 	// Get number of photons in the 8 most populated pixels	
Index: trunk/MagicSoft/Mars/mimage/MConcentration.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MConcentration.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MConcentration.h	(revision 6855)
@@ -8,5 +8,5 @@
 class MHillas;
 class MGeomCam;
-class MCerPhotEvt;
+class MSignalCam;
 
 class MConcentration : public MParContainer
@@ -20,5 +20,5 @@
     void Reset();
 
-    Int_t Calc(const MGeomCam &geom, const MCerPhotEvt &pix, const MHillas &hil);
+    Int_t Calc(const MGeomCam &geom, const MSignalCam &pix, const MHillas &hil);
 
     void Print(Option_t *opt=NULL) const;
Index: trunk/MagicSoft/Mars/mimage/MHillas.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillas.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MHillas.cc	(revision 6855)
@@ -69,6 +69,6 @@
 #include "MGeomCam.h"
 
-#include "MCerPhotPix.h"
-#include "MCerPhotEvt.h"
+#include "MSignalPix.h"
+#include "MSignalCam.h"
 
 #include "MLog.h"
@@ -203,15 +203,17 @@
 // Returns:
 //   0  no error
-//   1  number of pixels < 3
+//   1  number of pixels in event == 0 (special MC events)
 //   2  size==0
 //   3  number of used pixel < 3
 //   4  CorrXY == 0
 //
-Int_t MHillas::Calc(const MGeomCam &geom, const MCerPhotEvt &evt, Int_t island)
-{
-    //
-    // sanity check 1
-    //
-    if (evt.GetNumPixels()<3)
+Int_t MHillas::Calc(const MGeomCam &geom, const MSignalCam &evt, Int_t island)
+{
+    const UInt_t numpix  = evt.GetNumPixels();
+
+    //
+    // sanity check 1 (special MC events)
+    //
+    if (numpix==0)
         return 1;
 
@@ -229,16 +231,22 @@
     fSize  = 0;
 
-    MCerPhotPix *pix = 0;
+    UInt_t numused = 0;
+/*
+    MSignalPix *pix = 0;
 
     TIter Next(evt);
-    UInt_t numused = 0;
-    while ((pix=(MCerPhotPix*)Next()))
+    while ((pix=(MSignalPix*)Next()))*/
+    for (UInt_t i=0; i<numpix; i++)
     {
-        if (island>=0 && pix->GetIdxIsland()!=island)
+        MSignalPix &pix = evt[i];
+        if (!pix.IsPixelUsed())
             continue;
 
-        const MGeomPix &gpix = geom[pix->GetPixId()];
-
-        const Float_t nphot = pix->GetNumPhotons();
+        if (island>=0 && pix.GetIdxIsland()!=island)
+            continue;
+
+        const MGeomPix &gpix = geom[i/*pix->GetPixId()*/];
+
+        const Float_t nphot = pix.GetNumPhotons();
 
         fSize  += nphot;		             // [counter]
@@ -277,16 +285,22 @@
     Double_t corryy=0;                               // [m^2]
 
-    Next.Reset();
-    while ((pix=(MCerPhotPix*)Next()))
+    //Next.Reset();
+    //while ((pix=(MSignalPix*)Next()))
+    //{
+    for (UInt_t i=0; i<numpix; i++)
     {
-        if (island>=0 && pix->GetIdxIsland()!=island)
+        MSignalPix &pix = evt[i];
+        if (!pix.IsPixelUsed())
             continue;
 
-        const MGeomPix &gpix = geom[pix->GetPixId()];
+        if (island>=0 && pix.GetIdxIsland()!=island)
+            continue;
+
+        const MGeomPix &gpix = geom[i/*pix->GetPixId()*/];
 
         const Float_t dx = gpix.GetX() - fMeanX;     // [mm]
         const Float_t dy = gpix.GetY() - fMeanY;     // [mm]
 
-        const Float_t nphot = pix->GetNumPhotons();  // [#phot]
+        const Float_t nphot = pix.GetNumPhotons();   // [#phot]
 
         corrxx += nphot * dx*dx;                     // [mm^2]
Index: trunk/MagicSoft/Mars/mimage/MHillas.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillas.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MHillas.h	(revision 6855)
@@ -10,5 +10,5 @@
 
 class MGeomCam;
-class MCerPhotEvt;
+class MSignalCam;
 
 class MHillas : public MParContainer
@@ -31,5 +31,5 @@
     void Reset();
 
-    Int_t Calc(const MGeomCam &geom, const MCerPhotEvt &pix, Int_t island=-1);
+    Int_t Calc(const MGeomCam &geom, const MSignalCam &pix, Int_t island=-1);
 
     void Print(const MGeomCam &geom) const;
Index: trunk/MagicSoft/Mars/mimage/MHillasCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillasCalc.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MHillasCalc.cc	(revision 6855)
@@ -117,5 +117,5 @@
 //
 //    1) MGeomCam          5) MHillas         8) MImagePar
-//    2) MCerPhotEvt       6) MHillasSrc      9) MNewImagePar
+//    2) MSignalCam       6) MHillasSrc      9) MNewImagePar
 //    3) MSrcPosCam        7) MHillasExt     10) MConcentration
 //    4) fIdxIslands
@@ -138,5 +138,5 @@
 #include "MParList.h"
 
-#include "MCerPhotEvt.h"
+#include "MSignalCam.h"
 
 #include "MHillas.h"
@@ -189,8 +189,8 @@
     if (TestFlags(~kCalcHillasSrc))
     {
-        fCerPhotEvt = (MCerPhotEvt*)pList->FindObject(AddSerialNumber("MCerPhotEvt"));
+        fCerPhotEvt = (MSignalCam*)pList->FindObject(AddSerialNumber("MSignalCam"));
         if (!fCerPhotEvt)
         {
-            *fLog << err << "MCerPhotEvt not found... aborting." << endl;
+            *fLog << err << "MSignalCam not found... aborting." << endl;
             return kFALSE;
         }
@@ -355,5 +355,5 @@
     if (TestFlag(kCalcHillas))
     {
-        PrintSkipped(fErrors[1], "Less than 3 pixels (before cleaning)");
+        PrintSkipped(fErrors[1], "0-Pixel Event (before cleaning, MC event?)");
         PrintSkipped(fErrors[2], "Calculated Size == 0 (after cleaning)");
         PrintSkipped(fErrors[3], "Number of used pixels < 3");
@@ -379,15 +379,15 @@
     *fLog << inf << GetDescriptor() << " calculating:" << endl;
     if (TestFlag(kCalcHillas))
-        *fLog << " - " << fNameHillas << " from MGeomCam, MCerPhotEvt and fIdxIsland=" << fIdxIsland << endl;
+        *fLog << " - " << fNameHillas << " from MGeomCam, MSignalCam and fIdxIsland=" << fIdxIsland << endl;
     if (TestFlag(kCalcHillasSrc))
         *fLog << " - " << fNameHillasSrc << " from " << fNameSrcPosCam << ", " << fNameHillas << " and fIdxIsland=" << fIdxIsland << endl;
     if (TestFlag(kCalcHillasExt))
-        *fLog << " - " << fNameHillasExt << " from MGeomCam, MCerPhotEvt, " << fNameHillas << " and fIdxIsland=" << fIdxIsland << endl;
+        *fLog << " - " << fNameHillasExt << " from MGeomCam, MSignalCam, " << fNameHillas << " and fIdxIsland=" << fIdxIsland << endl;
     if (TestFlag(kCalcImagePar))
-        *fLog << " - " << fNameImagePar << " from MCerPhotEvt" << endl;
+        *fLog << " - " << fNameImagePar << " from MSignalCam" << endl;
     if (TestFlag(kCalcNewImagePar))
-        *fLog << " - " << fNameNewImagePar << " from MGeomCam, MCerPhotEvt, " << fNameHillas << " and fIdxIsland=" << fIdxIsland << endl;
+        *fLog << " - " << fNameNewImagePar << " from MGeomCam, MSignalCam, " << fNameHillas << " and fIdxIsland=" << fIdxIsland << endl;
     if (TestFlag(kCalcConc))
-        *fLog << " - " << fNameConc << " from MGeomCam, MCerPhotEvt and " << fNameHillas << endl;
+        *fLog << " - " << fNameConc << " from MGeomCam, MSignalCam and " << fNameHillas << endl;
 }
 
Index: trunk/MagicSoft/Mars/mimage/MHillasCalc.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillasCalc.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MHillasCalc.h	(revision 6855)
@@ -18,5 +18,5 @@
 
 class MGeomCam;
-class MCerPhotEvt;
+class MSignalCam;
 class MHillas;
 class MHillasExt;
@@ -41,5 +41,5 @@
 
     const MGeomCam      *fGeomCam;          //! Camera Geometry used to calculate Hillas
-    const MCerPhotEvt   *fCerPhotEvt;       //! Cerenkov Photon Event used for calculation
+    const MSignalCam    *fCerPhotEvt;       //! Cerenkov Photon Event used for calculation
 
     MHillas             *fHillas;           //! output container to store result
Index: trunk/MagicSoft/Mars/mimage/MHillasExt.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillasExt.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MHillasExt.cc	(revision 6855)
@@ -68,6 +68,6 @@
 #include "MGeomCam.h"
 
-#include "MCerPhotPix.h"
-#include "MCerPhotEvt.h"
+#include "MSignalPix.h"
+#include "MSignalCam.h"
 
 #include "MLog.h"
@@ -137,5 +137,5 @@
 // and the cerenkov photon event
 //
-Int_t MHillasExt::Calc(const MGeomCam &geom, const MCerPhotEvt &evt, const MHillas &hil, Int_t island)
+Int_t MHillasExt::Calc(const MGeomCam &geom, const MSignalCam &evt, const MHillas &hil, Int_t island)
 {
     //
@@ -155,19 +155,25 @@
     Float_t maxdist = 0;
 
-    MCerPhotPix *pix = 0;
-
-    TIter Next(evt);
-    while ((pix=(MCerPhotPix*)Next()))
+    //    MSignalPix *pix = 0;
+    //    TIter Next(evt);
+    //    while ((pix=(MSignalPix*)Next()))
+
+    const UInt_t npix = evt.GetNumPixels();
+    for (UInt_t i=0; i<npix; i++)
     {
-        if (island>=0 && pix->GetIdxIsland()!=island)
+        const MSignalPix &pix = evt[i];
+        if (!pix.IsPixelUsed())
             continue;
 
-        const Int_t pixid = pix->GetPixId();
-
-        const MGeomPix &gpix = geom[pixid];
+        if (island>=0 && pix.GetIdxIsland()!=island)
+            continue;
+
+        //const Int_t pixid = pix->GetPixId();
+
+        const MGeomPix &gpix = geom[i/*pixid*/];
         const Double_t dx = gpix.GetX() - hil.GetMeanX();      // [mm]
         const Double_t dy = gpix.GetY() - hil.GetMeanY();      // [mm]
 
-        Double_t nphot = pix->GetNumPhotons();                  // [1]
+        Double_t nphot = pix.GetNumPhotons();                  // [1]
 
         const Double_t dzx =  hil.GetCosDelta()*dx + hil.GetSinDelta()*dy; // [mm]
@@ -185,10 +191,10 @@
         // must take pixel size into account
         //
-        nphot *= geom.GetPixRatio(pixid);
+        nphot *= geom.GetPixRatio(i/*pixid*/);
 
         if (nphot>maxpix)
         {
             maxpix   = nphot;                                  // [1]
-            maxpixid = pixid;
+            maxpixid = i;//pixid;
             continue;                                          // [1]
         }
Index: trunk/MagicSoft/Mars/mimage/MHillasExt.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHillasExt.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MHillasExt.h	(revision 6855)
@@ -10,5 +10,5 @@
 class MHillas;
 class MGeomCam;
-class MCerPhotEvt;
+class MSignalCam;
 
 class MHillasExt : public MParContainer
@@ -33,5 +33,5 @@
     Float_t GetMaxDist() const { return fMaxDist; }
 
-    Int_t Calc(const MGeomCam &geom, const MCerPhotEvt &pix,
+    Int_t Calc(const MGeomCam &geom, const MSignalCam &pix,
                const MHillas &hil, Int_t island=-1);
 
Index: trunk/MagicSoft/Mars/mimage/MImagePar.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MImagePar.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MImagePar.cc	(revision 6855)
@@ -48,6 +48,5 @@
 #include "MLogManip.h"
 
-#include "MCerPhotEvt.h"
-#include "MCerPhotPix.h"
+#include "MSignalCam.h"
 
 ClassImp(MImagePar);
@@ -86,20 +85,9 @@
 //  Calculation of new image parameters
 //
-void MImagePar::Calc(const MCerPhotEvt &evt)
+void MImagePar::Calc(const MSignalCam &evt)
 {
     // Get number of saturating pixels
-    fNumSatPixelsHG = 0;
-    fNumSatPixelsLG = 0;
-
-    const UInt_t npixevt = evt.GetNumPixels();
-    for (UInt_t i=0; i<npixevt; i++)
-    {
-        const MCerPhotPix &pix = evt[i];
-
-	if (pix.IsPixelHGSaturated())
-            fNumSatPixelsHG++;
-	if (pix.IsPixelSaturated())
-            fNumSatPixelsLG++;
-    }
+    fNumSatPixelsHG   = evt.GetNumPixelsSaturatedHiGain();
+    fNumSatPixelsLG   = evt.GetNumPixelsSaturatedLoGain();
 
     // Get number of islands
Index: trunk/MagicSoft/Mars/mimage/MImagePar.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MImagePar.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MImagePar.h	(revision 6855)
@@ -8,5 +8,5 @@
 class MHillas;
 class MGeomCam;
-class MCerPhotEvt;
+class MSignalCam;
 
 class MImagePar : public MParContainer
@@ -39,5 +39,5 @@
     void Print(Option_t *opt=NULL) const;
 
-    void Calc(const MCerPhotEvt &evt);
+    void Calc(const MSignalCam &evt);
 
     ClassDef(MImagePar, 2) // Container to hold (geometry and island independant) image parameters
Index: trunk/MagicSoft/Mars/mimage/MImgCleanStd.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MImgCleanStd.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MImgCleanStd.cc	(revision 6855)
@@ -61,7 +61,7 @@
 //
 // When an event is read, before the image cleaning, all the pixels that
-// are in MCerPhotEvt are set as USED and NOT CORE. All the pixels belong
+// are in MSignalCam are set as USED and NOT CORE. All the pixels belong
 // to RING number 1 (like USED pixels).
-// Look at MCerPhotPix.h to see how these informations of the pixel are
+// Look at MSignalPix.h to see how these informations of the pixel are
 // stored.
 // The default  cleaning METHOD is the STANDARD one and the number of the
@@ -84,5 +84,5 @@
 // This avoids problems of deformations of the shower images.
 // The signal S_i and the pedestal RMS Prms_i of the pixel are called from
-// the object MCerPhotPix.
+// the object MSignalPix.
 // If (default method = kStandard)
 //Begin_Html
@@ -281,8 +281,8 @@
 //   MGeomCam
 //   MPedPhotCam
-//   MCerPhotEvt
+//   MSignalCam
 //
 //  Output Containers:
-//   MCerPhotEvt
+//   MSignalCam
 //
 /////////////////////////////////////////////////////////////////////////////
@@ -307,6 +307,6 @@
 #include "MGeomCam.h"
 
-#include "MCerPhotPix.h"
-#include "MCerPhotEvt.h"
+#include "MSignalPix.h"
+#include "MSignalCam.h"
 
 #include "MGGroupFrame.h" // MGGroupFrame
@@ -325,5 +325,5 @@
 
 const TString MImgCleanStd::gsNamePedPhotCam="MPedPhotCam"; // default name of the 'MPedPhotCam' container
-const TString MImgCleanStd::gsNameCerPhotEvt="MCerPhotEvt"; // default name of the 'MCerPhotEvt' container
+const TString MImgCleanStd::gsNameSignalCam ="MSignalCam"; // default name of the 'MSignalCam' container
 const TString MImgCleanStd::gsNameGeomCam   ="MGeomCam";    // default name of the 'MGeomCam' container
 
@@ -341,5 +341,5 @@
     fCleanLvl2(lvl2), fCleanRings(1), fKeepSinglePixels(kFALSE),
     fNamePedPhotCam(gsNamePedPhotCam), fNameGeomCam(gsNameGeomCam),
-    fNameCerPhotEvt(gsNameCerPhotEvt)
+    fNameSignalCam(gsNameSignalCam)
 {
     fName  = name  ? name  : gsDefName.Data();
@@ -374,11 +374,14 @@
     // set them to 'unused' state if necessary
     //
-    MCerPhotPix *pix;
-
-    // Loop over all pixels
-    MCerPhotEvtIter Next(fEvt, kFALSE);
-    while ((pix=static_cast<MCerPhotPix*>(Next())))
-        if (!pix->IsPixelUnmapped() && data[pix->GetPixId()] <= fCleanLvl1)
-            pix->SetPixelUnused();
+    const UInt_t npixevt = fEvt->GetNumPixels();
+    for (UInt_t idx=0; idx<npixevt; idx++)
+    {
+        if (data[idx]>fCleanLvl1)
+            continue;
+
+        MSignalPix &pix = (*fEvt)[idx];
+        if (!pix.IsPixelUnmapped())
+            pix.SetPixelUnused();
+    }
 }
 
@@ -395,13 +398,10 @@
     size = 0;
 
-    MCerPhotPix *pix;
-
-    // Loop over used pixels only
-    TIter Next(*fEvt);
-
-    while ((pix=static_cast<MCerPhotPix*>(Next())))
-    {
-        // get pixel id of this entry
-        const Int_t idx = pix->GetPixId();
+    const UInt_t npixevt = fEvt->GetNumPixels();
+    for (UInt_t idx=0; idx<npixevt; idx++)
+    {
+        MSignalPix &pix = (*fEvt)[idx];
+        if (!pix.IsPixelUsed())
+            continue;
  
         // check for 'used' neighbors of this pixel
@@ -427,15 +427,15 @@
         {
             if (!fKeepSinglePixels)
-                pix->SetPixelUnused();
-            size += pix->GetNumPhotons();
+                pix.SetPixelUnused();
+            size += pix.GetNumPhotons();
             n++;
         }
     }
 
-    Next.Reset();
-    while ((pix=static_cast<MCerPhotPix*>(Next())))
-    {
-	if (pix->IsPixelUsed())
-            pix->SetPixelCore();
+    for (UInt_t idx=0; idx<npixevt; idx++)
+    {
+        MSignalPix &pix = (*fEvt)[idx];
+	if (pix.IsPixelUsed())
+            pix.SetPixelCore();
     }
 
@@ -443,7 +443,7 @@
 } 
 
-void MImgCleanStd::CleanStep3b(MCerPhotPix &pix)
-{
-    const Int_t idx = pix.GetPixId();
+void MImgCleanStd::CleanStep3b(Int_t idx)
+{
+    MSignalPix &pix = (*fEvt)[idx];
 
     //
@@ -475,6 +475,8 @@
 //   If a value<2 for fCleanRings is used, no CleanStep4 is done.
 //
-void MImgCleanStd::CleanStep4(UShort_t r, MCerPhotPix &pix)
-{
+void MImgCleanStd::CleanStep4(UShort_t r, Int_t idx/*MSignalPix &pix*/)
+{
+    MSignalPix &pix = (*fEvt)[idx];
+
     //
     // Skip events that have already a defined status;
@@ -488,6 +490,4 @@
     // and tell to which ring it belongs to.
     //
-    const Int_t idx = pix.GetPixId();
-
     MGeomPix  &gpix  = (*fCam)[idx];
 
@@ -498,5 +498,5 @@
         const Int_t idx2 = gpix.GetNeighbor(j);
 
-        MCerPhotPix *npix = fEvt->GetPixById(idx2);
+        MSignalPix *npix = fEvt->GetPixById(idx2);
         if (!npix || !npix->IsPixelUsed() || npix->GetRing()>r-1 ) 
             continue;
@@ -519,24 +519,23 @@
     for (UShort_t r=1; r<fCleanRings+1; r++)
     {
-        MCerPhotPix *pix;
-
         // Loop over all pixels
-
-        MCerPhotEvtIter NextAll(fEvt, kFALSE);
-        while ((pix=static_cast<MCerPhotPix*>(NextAll())))
+        const UInt_t npixevt = fEvt->GetNumPixels();
+        for (UInt_t idx=0; idx<npixevt; idx++)
         {
+            MSignalPix &pix = (*fEvt)[idx];
+
             //
 	    // if pixel is a core pixel or unmapped, go to the next pixel
             //
-            if (pix->IsPixelCore() || pix->IsPixelUnmapped())
+            if (pix.IsPixelCore() || pix.IsPixelUnmapped())
                 continue;
 
-            if (data[pix->GetPixId()] <= fCleanLvl2)
+            if (data[idx] <= fCleanLvl2)
                 continue;
 
             if (r==1)
-                CleanStep3b(*pix);
+                CleanStep3b(idx);
             else
-                CleanStep4(r, *pix);
+                CleanStep4(r, idx);
         }
     }
@@ -557,8 +556,8 @@
     }
 
-    fEvt = (MCerPhotEvt*)pList->FindObject(AddSerialNumber(fNameCerPhotEvt), "MCerPhotEvt");
+    fEvt = (MSignalCam*)pList->FindObject(AddSerialNumber(fNameSignalCam), "MSignalCam");
     if (!fEvt)
     {
-        *fLog << err << fNameCerPhotEvt << " [MCerPhotEvt] not found... aborting." << endl;
+        *fLog << err << fNameSignalCam << " [MSignalCam] not found... aborting." << endl;
         return kFALSE;
     }
@@ -570,8 +569,4 @@
         return kFALSE;
     }
-
-    fTime = (MArrivalTime*)pList->FindObject(AddSerialNumber("MArrivalTime"));
-    if (!fTime && fCleaningMethod==kProbability)
-        *fLog << warn << "MArrivalTime not found... probability cleaning done with signal only!" << endl;
 
     fData = (MCameraData*)pList->FindCreateObj(AddSerialNumber("MCameraData"));
@@ -602,5 +597,5 @@
         break;
     case kProbability:
-        fData->CalcCleaningProbability(*fEvt, *fPed, *fCam, fTime);
+        fData->CalcCleaningProbability(*fEvt, *fPed, *fCam);
         break;
     case kAbsolute:
@@ -819,6 +814,6 @@
     if (gsNameGeomCam!=fNameGeomCam)
         out << "   " << GetUniqueName() << ".SetNameGeomCam(\"" << fNameGeomCam << "\");" << endl;
-    if (gsNameCerPhotEvt!=fNameCerPhotEvt)
-        out << "   " << GetUniqueName() << ".SetNameCerPhotEvt(\"" << fNameCerPhotEvt << "\");" << endl;
+    if (gsNameSignalCam!=fNameSignalCam)
+        out << "   " << GetUniqueName() << ".SetNameSignalCam(\"" << fNameSignalCam << "\");" << endl;
     if (fKeepSinglePixels)
         out << "   " << GetUniqueName() << ".SetKeepSinglePixels();" << endl;
Index: trunk/MagicSoft/Mars/mimage/MImgCleanStd.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MImgCleanStd.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MImgCleanStd.h	(revision 6855)
@@ -8,6 +8,5 @@
 class MGeomCam;
 class MSigmabar;
-class MCerPhotPix;
-class MCerPhotEvt;
+class MSignalCam;
 class MPedPhotCam;
 class MArrivalTime;
@@ -30,10 +29,9 @@
     static const TString gsNamePedPhotCam; // default name of the 'MPedPhotCam' container
     static const TString gsNameGeomCam;    // default name of the 'MGeomCam' container
-    static const TString gsNameCerPhotEvt; // default name of the 'MCerPhotEvt' container
+    static const TString gsNameSignalCam;  // default name of the 'MSignalCam' container
 
     const MGeomCam     *fCam;  //!
-          MCerPhotEvt  *fEvt;  //!
+          MSignalCam  *fEvt;  //!
           MPedPhotCam  *fPed;  //!
-          MArrivalTime *fTime; //!
           MCameraData  *fData; //!
 
@@ -48,5 +46,5 @@
     TString  fNamePedPhotCam; // name of the 'MPedPhotCam' container
     TString  fNameGeomCam;    // name of the 'MGeomCam' container
-    TString  fNameCerPhotEvt; // name of the 'MCerPhotEvt' container
+    TString  fNameSignalCam;  // name of the 'MSignalCam' container
 
     // MImgCleanStd
@@ -54,6 +52,6 @@
     Short_t CleanStep2(Float_t &size);
     void    CleanStep3();
-    void    CleanStep3b(MCerPhotPix &pix);
-    void    CleanStep4(UShort_t r, MCerPhotPix &pix);
+    void    CleanStep3b(Int_t idx);
+    void    CleanStep4(UShort_t r, Int_t idx);
 
     // MGTask, MTask, MParContainer
@@ -81,5 +79,5 @@
 
     void SetNamePedPhotCam(const char *name)  { fNamePedPhotCam = name; }
-    void SetNameCerPhotEvt(const char *name)  { fNameCerPhotEvt = name; }
+    void SetNameSignalCam(const char *name)   { fNameSignalCam = name; }
     void SetNameGeomCam(const char *name)     { fNameGeomCam = name; }
 
Index: trunk/MagicSoft/Mars/mimage/MNewImagePar.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MNewImagePar.cc	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MNewImagePar.cc	(revision 6855)
@@ -77,6 +77,6 @@
 #include "MGeomPix.h"
 
-#include "MCerPhotEvt.h"
-#include "MCerPhotPix.h"
+#include "MSignalCam.h"
+#include "MSignalPix.h"
 
 ClassImp(MNewImagePar);
@@ -121,5 +121,5 @@
 //  Calculation of new image parameters
 //
-void MNewImagePar::Calc(const MGeomCam &geom, const MCerPhotEvt &evt,
+void MNewImagePar::Calc(const MGeomCam &geom, const MSignalCam &evt,
                         const MHillas &hillas, Int_t island)
 {
@@ -141,19 +141,26 @@
     Float_t maxpix2 = 0;                                 // [#phot]
 
-    MCerPhotPix *pix = 0;
-
+    /*
+    MSignalPix *pix = 0;
     TIter Next(evt);
-    while ((pix=(MCerPhotPix*)Next()))
+    while ((pix=(MSignalPix*)Next()))
+    */
+    UInt_t npix = evt.GetNumPixels();
+    for (UInt_t i=0; i<npix; i++)
     {
+        const MSignalPix &pix = evt[i];
+        if (!pix.IsPixelUsed())
+            continue;
+
         // Check for requested islands
-        if (island>=0 && pix->GetIdxIsland()!=island)
+        if (island>=0 && pix.GetIdxIsland()!=island)
             continue;
 
         // Get geometry of pixel
-        const Int_t pixid = pix->GetPixId();
-        const MGeomPix &gpix = geom[pixid];
+        //const Int_t pixid = pix->GetPixId();
+        const MGeomPix &gpix = geom[i/*pixid*/];
 
         // count used and core pixels
-        if (pix->IsPixelCore())
+        if (pix.IsPixelCore())
         {
             fNumCorePixels++;
@@ -165,5 +172,5 @@
         fUsedArea += gpix.GetA();
 
-        Double_t nphot = pix->GetNumPhotons();
+        Double_t nphot = pix.GetNumPhotons();
 
         //
@@ -179,13 +186,13 @@
         // must take pixel size into account
         //
-        nphot *= geom.GetPixRatio(pixid);
+        nphot *= geom.GetPixRatio(i/*pixid*/);
 
 	// count inner pixels: To dependent on MAGIC Camera --> FIXME
 
-        if (pixid<397){
+        if (i<397){
             fInnerSize += nphot;
-            if(pixid>270){
+            if(i>270){
                 edgepixin2 += nphot;
-                if(pixid>330)
+                if(i>330)
                     edgepixin1 += nphot;
             }
Index: trunk/MagicSoft/Mars/mimage/MNewImagePar.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MNewImagePar.h	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/MNewImagePar.h	(revision 6855)
@@ -8,5 +8,5 @@
 class MHillas;
 class MGeomCam;
-class MCerPhotEvt;
+class MSignalCam;
 
 class MNewImagePar : public MParContainer
@@ -53,5 +53,5 @@
     void Print(const MGeomCam &geom) const;
 
-    void Calc(const MGeomCam &geom, const MCerPhotEvt &evt,
+    void Calc(const MGeomCam &geom, const MSignalCam &evt,
               const MHillas &hillas, Int_t island=-1);
 
Index: trunk/MagicSoft/Mars/mimage/Makefile
===================================================================
--- trunk/MagicSoft/Mars/mimage/Makefile	(revision 6848)
+++ trunk/MagicSoft/Mars/mimage/Makefile	(revision 6855)
@@ -19,7 +19,7 @@
 #  connect the include files defined in the config.mk file
 #
-INCLUDES = -I. -I../mbase -I../mhbase -I../mgeom -I../manalysis \
+INCLUDES = -I. -I../mbase -I../mhbase -I../mgeom -I../msignal \
 	   -I../mgui -I../mmc -I../mpointing -I../mpedestal \
-           -I../mhist
+           -I../mhist -I../manalysis
 
 # mhist: MHHillas (MHCamera)
@@ -32,5 +32,4 @@
            MHillasExt.cc \
            MHillasCalc.cc \
-           MHillasSrcCalc.cc \
            MImagePar.cc \
 	   MNewImagePar.cc \
