Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 6488)
+++ trunk/MagicSoft/Mars/Changelog	(revision 6489)
@@ -31,4 +31,25 @@
      - replaced mutal exclusive options (Integral, Amplitude) by
        a one-line resource "ExtractionType" (old code still works)
+
+   * manalysis/MCerPhotEvt.[h,cc]:
+     - added new variables to store information about islands
+       and removed pixels - PRELIMINARY
+     - increased class version number
+
+   * mfilter/MFSoftwareTrigger.cc:
+     - optimized output in PostProcess
+
+   * mimage/MHImagePar.[h,cc]:
+     - added new histograms for new variables in MCerPhotEvt
+
+   * mimage/MImagePar.[h,cc]:
+     - added new data members for the new image parameters
+     - increased class version
+
+   * mimage/MImgCleanStd.[h,cc]:
+     - adapted image cleaning to calculate the new image
+       parameters
+     - added a flag to keep single core pixels
+
 
 
Index: trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.cc	(revision 6488)
+++ trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.cc	(revision 6489)
@@ -31,4 +31,11 @@
 //       risk!
 //
+// Class Version 4:
+// ----------------
+//  - added Short_t       fNumSinglePixels;
+//  - added Float_t       fSizeSinglePixels;
+//  - added Float_t       fSizeSubIslands;
+//  - added Float_t       fSizeMainIsland;
+//
 // Class Version 3:
 // ----------------
@@ -102,7 +109,11 @@
 void MCerPhotEvt::Reset()
 {
-    fNumPixels  =  0;
-    fMaxIndex   = -1;
-    fNumIslands = -1;
+    fNumPixels        =  0;
+    fNumSinglePixels  =  0;
+    fSizeSinglePixels =  0;
+    fSizeSubIslands   =  0;
+    fSizeMainIsland   =  0;
+    fMaxIndex         = -1;
+    fNumIslands       = -1;
     fLut.Set(0);
     // fPixels->Delete();
@@ -516,9 +527,10 @@
 
     // Create a list to hold the sizes of the islands (The maximum
-    // number of islands possible is rougly fNumPixels/4)
+    // number of islands possible is roughly fNumPixels/4)
     TArrayD size(fNumPixels/3);
 
     // Calculate Islands
-    Int_t n=0;
+    Int_t   n=0;
+    Float_t totsize = 0;
 
     // We could loop over all indices which looks more straight
@@ -535,6 +547,8 @@
         if (pix->GetIdxIsland()<0)
         {
-            Double_t sz = CalcIsland(geom, pix->GetPixId(), n);
+            // Don't put this in one line! n is used twice...
+            const Double_t sz = CalcIsland(geom, pix->GetPixId(), n);
             size[n++] = sz;
+            totsize += sz;
         }
     }
@@ -563,5 +577,7 @@
 
     // Now assign number of islands found
-    fNumIslands = n;
+    fNumIslands     = n;
+    fSizeSubIslands = n>0 ? totsize-size[idx[0]] : 0;
+    fSizeMainIsland = n>0 ? size[idx[0]] : 0;
 
     // return number of island
Index: trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.h	(revision 6488)
+++ trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.h	(revision 6489)
@@ -25,4 +25,8 @@
     UInt_t        fNumPixels;
     Short_t       fNumIslands;
+    Short_t       fNumSinglePixels;
+    Float_t       fSizeSinglePixels;
+    Float_t       fSizeSubIslands;
+    Float_t       fSizeMainIsland;
      Int_t        fMaxIndex;
     TArrayI       fLut;        // Lookup tabel to lookup pixel by index
@@ -58,4 +62,11 @@
     UInt_t  GetNumPixels() const { return fNumPixels; }
     Short_t GetNumIslands() const { return fNumIslands; };
+    Short_t GetNumSinglePixels() const { return fNumSinglePixels; }
+    Float_t GetSizeSinglePixels() const { return fSizeSinglePixels; }
+    Float_t GetSizeSubIslands() const { return fSizeSubIslands; }
+    Float_t GetSizeMainIsland() const { return fSizeMainIsland; }
+
+    // Setter functions for use in image cleaning classes only
+    void SetSinglePixels(Short_t num, Float_t size) { fNumSinglePixels=num; fSizeSinglePixels=size; }
 
     Bool_t  IsPixelExisting(Int_t id) const;
@@ -103,5 +114,5 @@
     operator TIterator*() const;
 
-    ClassDef(MCerPhotEvt, 3)    // class for an event containing cerenkov photons
+    ClassDef(MCerPhotEvt, 4)    // class for an event containing cerenkov photons
 };
 
Index: trunk/MagicSoft/Mars/mfilter/MFSoftwareTrigger.cc
===================================================================
--- trunk/MagicSoft/Mars/mfilter/MFSoftwareTrigger.cc	(revision 6488)
+++ trunk/MagicSoft/Mars/mfilter/MFSoftwareTrigger.cc	(revision 6489)
@@ -435,13 +435,13 @@
     *fLog << inf << endl;
     *fLog << GetDescriptor() << " execution statistics:" << endl;
+    *fLog << " Threshold=" << fThreshold << ", Number=" << (int)fNumNeighbors;
+    if (fTimeWindow>0)
+        *fLog << ", Time Window=" << fTimeWindow;
+    *fLog << endl;
     *fLog << dec << setfill(' ');
 
     *fLog << " " << setw(7) << fCut[0] << " (" << setw(3) ;
     *fLog << (int)(fCut[0]*100/GetNumExecutions());
-    *fLog << "%) Evts fullfilled" << type;
-    *fLog << " (Thresh>=" << fThreshold << ", Num>=" << (int)fNumNeighbors;
-    if (fTimeWindow>0)
-        *fLog << ", Win=" << fTimeWindow;
-    *fLog << ")" << endl;
+    *fLog << "%) Evts fullfilled" << type << endl;
     *fLog << " " << setw(7) << fCut[1] << " (" << setw(3) ;
     *fLog << (int)(fCut[1]*100/GetNumExecutions());
Index: trunk/MagicSoft/Mars/mimage/MHImagePar.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHImagePar.cc	(revision 6488)
+++ trunk/MagicSoft/Mars/mimage/MHImagePar.cc	(revision 6489)
@@ -66,4 +66,5 @@
     fHistSatHi.SetDirectory(NULL);
     fHistSatHi.UseCurrentStyle();
+    fHistSatHi.SetLineColor(kBlue);
     fHistSatHi.SetFillStyle(4000);
 
@@ -72,5 +73,4 @@
     fHistSatLo.SetXTitle("Pixels");
     fHistSatLo.SetYTitle("Counts");
-    fHistSatLo.SetLineColor(kBlue);
     fHistSatLo.SetDirectory(NULL);
     fHistSatLo.UseCurrentStyle();
@@ -83,12 +83,54 @@
     fHistIslands.SetDirectory(NULL);
     fHistIslands.UseCurrentStyle();
-    fHistIslands.SetLineColor(kBlue);
+    //fHistIslands.SetLineColor(kBlue);
     fHistIslands.SetFillStyle(4000);
 
+    fHistSizeSubIslands.SetName("SizeSub");
+    fHistSizeSubIslands.SetTitle("Size of Sub Islands");
+    fHistSizeSubIslands.SetXTitle("S [phe]");
+    fHistSizeSubIslands.SetYTitle("Counts");
+    fHistSizeSubIslands.SetDirectory(NULL);
+    fHistSizeSubIslands.UseCurrentStyle();
+    fHistSizeSubIslands.SetLineColor(kBlue);
+    fHistSizeSubIslands.SetFillStyle(4000);
+
+    fHistSizeMainIsland.SetName("SizeMain");
+    fHistSizeMainIsland.SetTitle("Size of Main Island");
+    fHistSizeMainIsland.SetXTitle("S [phe]");
+    fHistSizeMainIsland.SetYTitle("Counts");
+    fHistSizeMainIsland.SetDirectory(NULL);
+    fHistSizeMainIsland.UseCurrentStyle();
+    fHistSizeMainIsland.SetFillStyle(4000);
+
+    fHistNumSP.SetName("NumSP");
+    fHistNumSP.SetTitle("Number of single core pixels");
+    fHistNumSP.SetXTitle("N");
+    fHistNumSP.SetYTitle("Counts");
+    fHistNumSP.SetDirectory(NULL);
+    fHistNumSP.UseCurrentStyle();
+    //fHistNumSP.SetLineColor(kBlue);
+    fHistNumSP.SetFillStyle(4000);
+
+    fHistSizeSP.SetName("SizeSP");
+    fHistSizeSP.SetTitle("Size of single core pixels");
+    fHistSizeSP.SetXTitle("S [phe]");
+    fHistSizeSP.SetYTitle("Counts");
+    fHistSizeSP.SetDirectory(NULL);
+    fHistSizeSP.UseCurrentStyle();
+    //fHistSizeSP.SetLineColor(kBlue);
+    fHistSizeSP.SetFillStyle(4000);
+
+
     MBinning bins;
 
     bins.SetEdges(60, -0.5, 59.5);
+    bins.Apply(fHistSatLo);
     bins.Apply(fHistSatHi);
-    bins.Apply(fHistSatHi);
+    bins.Apply(fHistNumSP);
+
+    bins.SetEdgesLog(50, 1, 1e7);
+    bins.Apply(fHistSizeSubIslands);
+    bins.Apply(fHistSizeMainIsland);
+    bins.Apply(fHistSizeSP);
 
     bins.SetEdges(15, 0.5, 15.5);
@@ -103,8 +145,13 @@
 Bool_t MHImagePar::SetupFill(const MParList *plist)
 {
+    ApplyBinning(*plist, "Pixels",  &fHistSatLo);
     ApplyBinning(*plist, "Pixels",  &fHistSatHi);
-    ApplyBinning(*plist, "Pixels",  &fHistSatHi);
+    ApplyBinning(*plist, "Pixels",  &fHistNumSP);
 
     ApplyBinning(*plist, "Islands", &fHistIslands);
+
+    ApplyBinning(*plist, "Size",    &fHistSizeSubIslands);
+    ApplyBinning(*plist, "Size",    &fHistSizeMainIsland);
+    ApplyBinning(*plist, "Size",    &fHistSizeSP);
 
     return kTRUE;
@@ -126,8 +173,11 @@
     const MImagePar &h = *(MImagePar*)par;
 
-    fHistSatHi.Fill(h.GetNumSatPixelsHG(), w);
-    fHistSatLo.Fill(h.GetNumSatPixelsLG(), w);
-
-    fHistIslands.Fill(h.GetNumIslands(),   w);
+    fHistSatHi.Fill(h.GetNumSatPixelsHG(),    w);
+    fHistSatLo.Fill(h.GetNumSatPixelsLG(),    w);
+    fHistNumSP.Fill(h.GetNumSinglePixels(),   w);
+    fHistSizeSP.Fill(h.GetSizeSinglePixels(), w);
+    fHistSizeSubIslands.Fill(h.GetSizeSubIslands(), w);
+    fHistSizeMainIsland.Fill(h.GetSizeMainIsland(), w);
+    fHistIslands.Fill(h.GetNumIslands(),      w);
 
     return kTRUE;
@@ -136,14 +186,25 @@
 void MHImagePar::Paint(Option_t *o)
 {
-    /*
-     if (TString(o)==(TString)"log1" && fHistSatHi.GetMaximum()>0)
-     gPad->SetLogy();
-     if (TString(o)==(TString)"log2" && fHistIslands.GetMaximum()>0)
-     gPad->SetLogy();
-     */
      if (fHistSatHi.GetMaximum()>0 && gPad->GetPad(1))
          gPad->GetPad(1)->SetLogy();
-     if (fHistIslands.GetMaximum()>0 && gPad->GetPad(2))
-         gPad->GetPad(2)->SetLogy();
+     if (fHistIslands.GetMaximum()>0 && gPad->GetPad(3))
+         gPad->GetPad(3)->SetLogy();
+
+     TVirtualPad *pad = gPad->GetPad(2);
+     if (pad)
+     {
+         if (fHistNumSP.GetMaximum()>0 && pad->GetPad(1))
+             pad->GetPad(1)->SetLogy();
+         if (fHistSizeSP.GetMaximum()>0 && pad->GetPad(2))
+         {
+             pad->GetPad(2)->SetLogx();
+             pad->GetPad(2)->SetLogy();
+         }
+     }
+     if (fHistSizeMainIsland.GetMaximum()>0 && gPad->GetPad(4))
+     {
+         gPad->GetPad(4)->SetLogx();
+         gPad->GetPad(4)->SetLogy();
+     }
 }
 
@@ -168,5 +229,5 @@
 
     if (!same)
-        pad->Divide(1,2);
+        pad->Divide(2,2);
     else
         fHistIslands.SetLineColor(kGreen);
@@ -177,14 +238,29 @@
         gPad->SetBorderMode(0);
         MH::DrawSame(fHistSatHi, fHistSatLo, "Saturating Pixels");
-        fHistSatHi.SetMinimum(); // switch off to allow log-scale
-        fHistSatLo.SetMinimum(); // switch off to allow log-scale
-        fHistSatLo.SetMaximum(0.1);   // dummy value to allow log-scale
-        //AppendPad("log1");
+        fHistSatHi.SetMinimum();    // switch off to allow log-scale
+        fHistSatLo.SetMinimum();    // switch off to allow log-scale
+        fHistSatLo.SetMaximum(0.1); // dummy value to allow log-scale
+
+        pad->cd(4);
+        gPad->SetBorderMode(0);
+        MH::DrawSame(fHistSizeMainIsland, fHistSizeSubIslands, "Sizes...");
+        fHistSizeMainIsland.SetMinimum();    // switch off to allow log-scale
+        fHistSizeSubIslands.SetMinimum();    // switch off to allow log-scale
+        fHistSizeSubIslands.SetMaximum(0.1); // dummy value to allow log-scale
     }
 
     pad->cd(2);
     gPad->SetBorderMode(0);
+    pad->GetPad(2)->Divide(1,2,0,0);
+    pad->GetPad(2)->cd(1);
+    gPad->SetBorderMode(0);
+    fHistNumSP.Draw(same?"same":"");
+    pad->GetPad(2)->cd(2);
+    gPad->SetBorderMode(0);
+    fHistSizeSP.Draw(same?"same":"");
+
+    pad->cd(3);
+    gPad->SetBorderMode(0);
     fHistIslands.Draw(same?"same":"");
-    //AppendPad("log2");
 }
 
Index: trunk/MagicSoft/Mars/mimage/MHImagePar.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MHImagePar.h	(revision 6488)
+++ trunk/MagicSoft/Mars/mimage/MHImagePar.h	(revision 6489)
@@ -14,8 +14,16 @@
 {
 private:
-    TH1F fHistSatHi;   // Number of pixels with sat hi-gain
-    TH1F fHistSatLo;   // Number of pixels with sat lo-gain
+    TH1F fHistSatHi;          // Number of pixels with sat hi-gain
+    TH1F fHistSatLo;          // Number of pixels with sat lo-gain
 
-    TH1F fHistIslands; // Number of islands per event
+    TH1F fHistIslands;        // Number of islands per event
+    TH1F fHistSizeSubIslands; // Size of sub islands
+    TH1F fHistSizeMainIsland; // Size of main island
+
+    TH1F fHistNumSP;          // Number of single core pixels
+    TH1F fHistSizeSP;         // size of single core pixels
+
+    Short_t fNumSatPixelsHG; // number of pixels with saturating hi-gains
+    Short_t fNumSatPixelsLG; // number of pixels with saturating lo-gains
 
 public:
@@ -39,4 +47,2 @@
 
 #endif
-
-
Index: trunk/MagicSoft/Mars/mimage/MImagePar.cc
===================================================================
--- trunk/MagicSoft/Mars/mimage/MImagePar.cc	(revision 6488)
+++ trunk/MagicSoft/Mars/mimage/MImagePar.cc	(revision 6489)
@@ -29,4 +29,12 @@
 // Storage Container for new image parameters
 //
+//  Class Version 2:
+//  ----------------
+//    - added Short_t fNumSinglePixels;
+//    - added Float_t fSizeSinglePixels;
+//    - added Float_t fSizeSubIslands;
+//
+//  Class Version 1:
+//  ----------------
 //    Short_t fNumIslands;           // number of islands found
 //
@@ -63,8 +71,13 @@
 void MImagePar::Reset()
 {
-    fNumIslands = -1;
+    fNumIslands       = -1;
+    fNumSinglePixels  = -1;
 
-    fNumSatPixelsHG = -1;
-    fNumSatPixelsLG = -1;
+    fNumSatPixelsHG   = -1;
+    fNumSatPixelsLG   = -1;
+
+    fSizeSinglePixels = -1;
+    fSizeSubIslands   = -1;
+    fSizeMainIsland   = -1;
 }
 
@@ -91,5 +104,9 @@
 
     // Get number of islands
-    fNumIslands = evt.GetNumIslands();
+    fNumIslands       = evt.GetNumIslands();
+    fNumSinglePixels  = evt.GetNumSinglePixels();
+    fSizeSinglePixels = evt.GetSizeSinglePixels();
+    fSizeSubIslands   = evt.GetSizeSubIslands();
+    fSizeMainIsland   = evt.GetSizeMainIsland();
 
     SetReadyToSave();
@@ -102,6 +119,10 @@
     *fLog << all;
     *fLog << "Image Parameters (" << GetName() << ")" << endl;
-    *fLog << " - Num Islands    [#]   = " << fNumIslands << " Islands" << endl;
-    *fLog << " - Sat.Pixels/HG  [#]   = " << fNumSatPixelsHG << " Pixels" << endl;
-    *fLog << " - Sat.Pixels/LG  [#]   = " << fNumSatPixelsLG << " Pixels" << endl;
+    *fLog << " - Num Islands      [#] = " << fNumIslands       << " Islands" << endl;
+    *fLog << " - Sat.Pixels (HG)  [#] = " << fNumSatPixelsHG   << " Pixels" << endl;
+    *fLog << " - Sat.Pixels (LG)  [#] = " << fNumSatPixelsLG   << " Pixels" << endl;
+    *fLog << " - Num rmvd CorePix [#] = " << fNumSinglePixels  << " Pixels" << endl;
+    *fLog << " - Sz  rmvd CorePix [#] = " << fSizeSinglePixels << " CerPhot" << endl;
+    *fLog << " - Size Sub Islands [#] = " << fSizeSubIslands   << " CerPhot" << endl;
+    *fLog << " - Size Main Island [#] = " << fSizeMainIsland   << " CerPhot" << endl;
 }
Index: trunk/MagicSoft/Mars/mimage/MImagePar.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MImagePar.h	(revision 6488)
+++ trunk/MagicSoft/Mars/mimage/MImagePar.h	(revision 6489)
@@ -14,4 +14,9 @@
 private:
     Short_t fNumIslands;     // Number of islands found
+    Short_t fNumSinglePixels;
+
+    Float_t fSizeSinglePixels;
+    Float_t fSizeSubIslands;
+    Float_t fSizeMainIsland;
 
     Short_t fNumSatPixelsHG; // number of pixels with saturating hi-gains
@@ -27,4 +32,8 @@
     Short_t GetNumSatPixelsHG() const { return fNumSatPixelsHG; }
     Short_t GetNumSatPixelsLG() const { return fNumSatPixelsLG; }
+    Short_t GetNumSinglePixels() const { return fNumSinglePixels; }
+    Float_t GetSizeSinglePixels() const { return fSizeSinglePixels; }
+    Float_t GetSizeSubIslands() const { return fSizeSubIslands; }
+    Float_t GetSizeMainIsland() const { return fSizeMainIsland; }
 
     void Print(Option_t *opt=NULL) const;
@@ -32,5 +41,5 @@
     void Calc(const MCerPhotEvt &evt);
 
-    ClassDef(MImagePar, 1) // Container to hold (geometry and island independant) image parameters
+    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 6488)
+++ trunk/MagicSoft/Mars/mimage/MImgCleanStd.cc	(revision 6489)
@@ -339,7 +339,7 @@
                            const char *name, const char *title)
     : fCleaningMethod(kStandard), fCleanLvl1(lvl1),
-    fCleanLvl2(lvl2), fCleanRings(1), fNamePedPhotCam(gsNamePedPhotCam),
-    fNameGeomCam(gsNameGeomCam), fNameCerPhotEvt(gsNameCerPhotEvt)
-
+    fCleanLvl2(lvl2), fCleanRings(1), fKeepSinglePixels(kFALSE),
+    fNamePedPhotCam(gsNamePedPhotCam), fNameGeomCam(gsNameGeomCam),
+    fNameCerPhotEvt(gsNameCerPhotEvt)
 {
     fName  = name  ? name  : gsDefName.Data();
@@ -386,9 +386,13 @@
 //
 //  Check if the survived pixel have a neighbor, that also
-//  survived, otherwise set pixel to unused (removes pixels without
-//  neighbors).
-//
-void MImgCleanStd::CleanStep2()
-{
+//  survived. Set all single pixels Unused if !fKeepSinglePixels. Now we
+//  declare all pixels that survived previous CleanSteps as CorePixels.
+//  Return number of single pixels, and there cumulative size in size.
+//
+Short_t MImgCleanStd::CleanStep2(Float_t &size)
+{
+    Short_t n=0;
+    size = 0;
+
     MCerPhotPix *pix;
 
@@ -420,11 +424,12 @@
         }
 
-	if (hasNeighbor == kFALSE)
-            pix->SetPixelUnused();
-    }
-
-    //
-    // now we declare all pixels that survive as CorePixels
-    //
+        if (hasNeighbor == kFALSE)
+        {
+            if (!fKeepSinglePixels)
+                pix->SetPixelUnused();
+            size += pix->GetNumPhotons();
+            n++;
+        }
+    }
 
     Next.Reset();
@@ -434,4 +439,6 @@
             pix->SetPixelCore();
     }
+
+    return n;
 } 
 
@@ -613,5 +620,7 @@
     *fLog << all << "CleanStep 2" << endl;
 #endif
-    CleanStep2();
+    Float_t size;
+    const Short_t n = CleanStep2(size);
+    fEvt->SetSinglePixels(n, size);
 
     // For speed reasons skip the rest of the cleaning if no
@@ -812,4 +821,7 @@
     if (gsNameCerPhotEvt!=fNameCerPhotEvt)
         out << "   " << GetUniqueName() << ".SetNameCerPhotEvt(\"" << fNameCerPhotEvt << "\");" << endl;
+    if (fKeepSinglePixels)
+        out << "   " << GetUniqueName() << ".SetKeepSinglePixels();" << endl;
+
 }
 
@@ -821,4 +833,5 @@
 //   MImgCleanStd.CleanMethod: Standard, Scaled, Democratic, Probability, Absolute
 //   MImgCleanStd.CleanRings:  1
+//   MImgCleanStd.KeepSinglePixels: yes, no
 //
 Int_t MImgCleanStd::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
@@ -839,4 +852,9 @@
         rc = kTRUE;
         fCleanLvl2 = GetEnvValue(env, prefix, "CleanLevel2", fCleanLvl2);
+    }
+    if (IsEnvDefined(env, prefix, "KeepSinglePixels", print))
+    {
+        rc = kTRUE;
+        fKeepSinglePixels = GetEnvValue(env, prefix, "KeepSinglePixels", fKeepSinglePixels);
     }
 
Index: trunk/MagicSoft/Mars/mimage/MImgCleanStd.h
===================================================================
--- trunk/MagicSoft/Mars/mimage/MImgCleanStd.h	(revision 6488)
+++ trunk/MagicSoft/Mars/mimage/MImgCleanStd.h	(revision 6489)
@@ -44,4 +44,5 @@
 
     UShort_t fCleanRings;
+    Bool_t   fKeepSinglePixels;
 
     TString  fNamePedPhotCam; // name of the 'MPedPhotCam' container
@@ -49,15 +50,15 @@
     TString  fNameCerPhotEvt; // name of the 'MCerPhotEvt' container
 
+    // MImgCleanStd
+    void    CleanStep1();
+    Short_t CleanStep2(Float_t &size);
+    void    CleanStep3();
+    void    CleanStep3b(MCerPhotPix &pix);
+    void    CleanStep4(UShort_t r, MCerPhotPix &pix);
 
-    void  CreateGuiElements(MGGroupFrame *f);
-    void  StreamPrimitive(ofstream &out) const;
-    Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
-
-    void  CleanStep3b(MCerPhotPix &pix);
-    void  CleanStep4(UShort_t r, MCerPhotPix &pix);
-
-    void  CleanStep1();
-    void  CleanStep2();
-    void  CleanStep3();
+    // MGTask, MTask, MParContainer
+    void    CreateGuiElements(MGGroupFrame *f);
+    void    StreamPrimitive(ofstream &out) const;
+    Int_t   ReadEnv(const TEnv &env, TString prefix, Bool_t print);
 
     Int_t PreProcess(MParList *pList);
@@ -75,4 +76,5 @@
     void SetCleanRings(UShort_t r) { if(r==0) r=1; fCleanRings=r; }
     void SetMethod(CleaningMethod_t m) { fCleaningMethod = m; }
+    void SetKeepSinglePixels(Bool_t b=kTRUE) { fKeepSinglePixels=b; }
 
     Bool_t ProcessMessage(Int_t msg, Int_t submsg, Long_t param1, Long_t param2);
