Index: trunk/MagicSoft/Mars/manalysis/MBlindPixelCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MBlindPixelCalc.cc	(revision 1483)
+++ trunk/MagicSoft/Mars/manalysis/MBlindPixelCalc.cc	(revision 1487)
@@ -53,4 +53,6 @@
 #include "MBlindPixelCalc.h"
 
+#include <fstream.h>
+
 #include "MLog.h"
 #include "MLogManip.h"
@@ -68,4 +70,7 @@
 ClassImp(MBlindPixelCalc);
 
+static const TString gsDefName  = "MBlindPixelCalc";
+static const TString gsDefTitle = "Task to deal with hot spots (star, broken pixels, etc)";
+
 // --------------------------------------------------------------------------
 //
@@ -73,8 +78,8 @@
 //
 MBlindPixelCalc::MBlindPixelCalc(const char *name, const char *title)
-    : fUseInterpolation(kFALSE), fUseCentralPixel(kFALSE)
-{
-    fName  = name  ? name  : "MBlindPixelCalc";
-    fTitle = title ? title : "Task which removes a list of pixel from analysis";
+    : fFlags(0)
+{
+    fName  = name  ? name  : gsDefName.Data();
+    fTitle = title ? title : gsDefTitle.Data();
 }
 
@@ -129,5 +134,5 @@
 //
 //  Replaces each pixel by the average of its surrounding pixels.
-//  If fUseCentralPixel is set the central pixel is also included.
+//  If TESTBIT(fFlags, kUseCentralPixel) is set the central pixel is also included.
 //
 void MBlindPixelCalc::Interpolate() const
@@ -155,6 +160,6 @@
         const Int_t n = gpix.GetNumNeighbors();
 
-        nphot[i] = fUseCentralPixel ? (*fEvt)[id].GetNumPhotons() : 0;
-        perr[i]  = fUseCentralPixel ? (*fEvt)[id].GetErrorPhot()  : 0;
+        nphot[i] = TESTBIT(fFlags, kUseCentralPixel) ? (*fEvt)[id].GetNumPhotons() : 0;
+        perr[i]  = TESTBIT(fFlags, kUseCentralPixel) ? (*fEvt)[id].GetErrorPhot()  : 0;
         for (int j=0; j<n; j++)
         {
@@ -165,9 +170,9 @@
         }
 
-        nphot[i] /= fUseCentralPixel ? n+1 : n;
-        perr[i]  /= fUseCentralPixel ? n+1 : n;
-    }
-
-    if (fUseInterpolation && fGeomCam)
+        nphot[i] /= TESTBIT(fFlags, kUseCentralPixel) ? n+1 : n;
+        perr[i]  /= TESTBIT(fFlags, kUseCentralPixel) ? n+1 : n;
+    }
+
+    if (TESTBIT(fFlags, kUseInterpolation) && fGeomCam)
         for (UShort_t i=0; i<entries; i++)
         {
@@ -211,5 +216,5 @@
 Bool_t MBlindPixelCalc::Process()
 {
-    if (fUseInterpolation && fGeomCam)
+    if (TESTBIT(fFlags, kUseInterpolation) && fGeomCam)
         Interpolate();
     else
@@ -289,3 +294,29 @@
 }
 
-
+void MBlindPixelCalc::StreamPrimitive(ofstream &out) const
+{
+    out << "   MBlindPixelCalc " << GetUniqueName();
+    if (fName!=gsDefName || fTitle!=gsDefTitle)
+    {
+        out << "(\"" << fName << "\"";
+        if (fTitle!=gsDefTitle)
+            out << ", \"" << fTitle << "\"";
+        out <<")";
+    }
+    out << ";" << endl;
+
+    if (TESTBIT(fFlags, kUseInterpolation))
+        out << "   " << GetUniqueName() << ".SetUseInterpolation();" << endl;
+    if (TESTBIT(fFlags, kUseCentralPixel))
+        out << "   " << GetUniqueName() << ".SetUseCentralPixel();" << endl;
+
+    if (fPixelsID.GetSize()==0)
+        return;
+
+    out << "   {" << endl;
+    out << "      TArrayS dummy;" << endl;
+    for (int i=0; i<fPixelsID.GetSize(); i++)
+        out << "      dummy[" << i << "]=" << ((TArrayS)fPixelsID)[i] << ";" << endl;
+    out << "      " << GetUniqueName() << ".SetPixels(dummy);" << endl;
+    out << "   }" << endl;
+}
Index: trunk/MagicSoft/Mars/manalysis/MBlindPixelCalc.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MBlindPixelCalc.h	(revision 1483)
+++ trunk/MagicSoft/Mars/manalysis/MBlindPixelCalc.h	(revision 1487)
@@ -23,15 +23,27 @@
     TArrayS fPixelsID;  // Pixel IDs for blind pixels, which are entered by the user.
 
-    Bool_t fUseInterpolation;
-    Bool_t fUseCentralPixel;
+    Byte_t fFlags;      // flag for the method which is used
+
+    enum
+    {
+        kUseInterpolation = 1,
+        kUseCentralPixel  = 2
+    };
 
     void Interpolate() const;
     void Unmap() const;
+    void StreamPrimitive(ofstream &out) const;
 
 public:
     MBlindPixelCalc(const char *name=NULL, const char *title=NULL);
 
-    void SetUseInterpolation(Bool_t b=kTRUE) { fUseInterpolation=kTRUE; }
-    void SetUseCetralPixel(Bool_t b=kTRUE)   { fUseCentralPixel=kTRUE; }
+    void SetUseInterpolation(Bool_t b=kTRUE)
+    {
+        b ? SETBIT(fFlags, kUseInterpolation) : CLRBIT(fFlags, kUseInterpolation);
+    }
+    void SetUseCetralPixel(Bool_t b=kTRUE)
+    {
+        b ? SETBIT(fFlags, kUseCentralPixel) : CLRBIT(fFlags, kUseCentralPixel);
+    }
 
     Bool_t PreProcess(MParList *pList);
@@ -39,7 +51,8 @@
 
     void SetPixels(Int_t num, Short_t *ids);
+    void SetPixels(const TArrayS pix) { SetPixels(pix.GetSize(), pix.GetArray()); }
     virtual Bool_t ReInit(MParList *pList);
 
-    ClassDef(MBlindPixelCalc, 0) // task to disable given pixels for analysis
+    ClassDef(MBlindPixelCalc, 1) // task to deal with hot spots (star, broken pixels, etc)
 }; 
 
Index: trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc	(revision 1483)
+++ trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.cc	(revision 1487)
@@ -45,4 +45,7 @@
 ClassImp(MHillasSrcCalc);
 
+static const TString gsDefName  = "MHillasSrcCalc";
+static const TString gsDefTitle = "Calculate position dependant image parameters";
+
 // -------------------------------------------------------------------------
 //
@@ -55,7 +58,8 @@
 MHillasSrcCalc::MHillasSrcCalc(const char *src, const char *hil,
                                const char *name, const char *title)
+    : fHillas(NULL), fSrcPos(NULL), fHillasSrc(NULL)
 {
-    fName  = name  ? name  : "MHillasSrcCalc";
-    fTitle = title ? title : "add parameters dependent on source position (MHillasSrc)";
+    fName  = name  ? name  : gsDefName.Data();
+    fTitle = title ? title : gsDefTitle.Data();
 
     fSrcName    = src;
@@ -122,4 +126,6 @@
         out << "\"" << fSrcName << "\"";
 
+    out << ", ";
+
     if (fHillasSrc)
         out << "&" << fHillasSrc->GetUniqueName();
@@ -127,4 +133,10 @@
         out << "\"" << fHillasName << "\"";
 
-    out << ", \"" << fName << "\", \"" << fTitle << "\");" << endl;
+    if (fName!=gsDefName || fTitle!=gsDefTitle)
+    {
+        out << ", \"" << fName << "\"";
+        if (fTitle!=gsDefTitle)
+            out << ", \"" << fTitle << "\"";
+    }
+    out << ");" << endl;
 }
Index: trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.h	(revision 1483)
+++ trunk/MagicSoft/Mars/manalysis/MHillasSrcCalc.h	(revision 1487)
@@ -13,7 +13,7 @@
 {
 private:
-    MHillas    *fHillas;     // Pointer to the source independant hillas parameters
-    MSrcPosCam *fSrcPos;     // Pointer to the source position
-    MHillasSrc *fHillasSrc;  // Pointer to the output container for the source dependant parameters
+    MHillas    *fHillas;     //! Pointer to the source independant hillas parameters
+    MSrcPosCam *fSrcPos;     //! Pointer to the source position
+    MHillasSrc *fHillasSrc;  //! Pointer to the output container for the source dependant parameters
 
     TString     fSrcName;
Index: trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1483)
+++ trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc	(revision 1487)
@@ -68,4 +68,7 @@
 };
 
+static const TString gsDefName  = "MImgCleanStd";
+static const TString gsDefTitle = "Task to perform a standard image cleaning";
+
 // --------------------------------------------------------------------------
 //
@@ -78,6 +81,6 @@
     : fCleanLvl1(lvl1), fCleanLvl2(lvl2)
 {
-    fName  = name  ? name  : "MImgCleanStd";
-    fTitle = title ? title : "Task which does a standard image cleaning";
+    fName  = name  ? name  : gsDefName.Data();
+    fTitle = title ? title : gsDefTitle.Data();
 
     Print();
@@ -417,5 +420,12 @@
 {
     out << "   MImgCleanStd " << GetUniqueName() << "(";
-    out << fCleanLvl1 << ", " << fCleanLvl2 << ", \"";
-    out << fName << "\", \"" << fTitle << "\");" << endl;
-}
+    out << fCleanLvl1 << ", " << fCleanLvl2;
+
+    if (fName!=gsDefName || fTitle!=gsDefTitle)
+    {
+        out << ", \"" << fName << "\"";
+        if (fTitle!=gsDefTitle)
+            out << ", \"" << fTitle << "\"";
+    }
+    out << ");" << endl;
+}
Index: trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc	(revision 1483)
+++ trunk/MagicSoft/Mars/manalysis/MSrcPosCam.cc	(revision 1487)
@@ -41,4 +41,7 @@
 ClassImp(MSrcPosCam);
 
+static const TString gsDefName  = "MSrcPosCam";
+static const TString gsDefTitle = "Virtual source position in the camera";
+
 // --------------------------------------------------------------------------
 //
@@ -47,6 +50,6 @@
 MSrcPosCam::MSrcPosCam(const char *name, const char *title) : fX(0), fY(0)
 {
-    fName  = name  ? name  : "MSrcPosCam";
-    fTitle = title ? title : "Source position in the camera";
+    fName  = name  ? name  : gsDefName.Data();
+    fTitle = title ? title : gsDefTitle.Data();
 }
 
@@ -90,6 +93,13 @@
 void MSrcPosCam::StreamPrimitive(ofstream &out) const
 {
-    out << "   MSrcPosCam " << GetUniqueName() << "(\"";
-    out << fName << "\", \"" << fTitle << "\");" << endl;
+    out << "   MSrcPosCam " << GetUniqueName();
+    if (fName!=gsDefName)
+    {
+        out << "(\"" << fName << "\"";
+        if (fTitle!=gsDefTitle)
+            out << ", \"" << fTitle << "\"";
+        out <<")";
+    }
+    out << ";" << endl;
 
     out << "   " << GetUniqueName() << ".SetXY(" << fX << ", " << fY << ");" << endl;}
