Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 5018)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 5019)
@@ -34,4 +34,5 @@
 
    * mhcalib/MHCalibration*Cam.[h,cc]
+   * mcalib/MCalibColorSteer.[h,cc]
      - added MBadpixelsIntenstiyCam
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibColorSteer.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibColorSteer.cc	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibColorSteer.cc	(revision 5019)
@@ -34,8 +34,10 @@
 //   MCalibrationIntensityChargeCam
 //   MCalibrationIntensityRelTimeCam
+//   MBadPixelsIntensityCam 
 //
 //  Output Containers:
 //   MCalibrationIntensityChargeCam
 //   MCalibrationIntensityRelTimeCam
+//   MBadPixelsIntensityCam 
 //
 //////////////////////////////////////////////////////////////////////////////
@@ -53,4 +55,6 @@
 #include "MCalibrationIntensityRelTimeCam.h"
 
+#include "MBadPixelsIntensityCam.h"
+
 #include "MCalibrationChargeCalc.h"
 #include "MCalibrationRelTimeCalc.h"
@@ -70,5 +74,5 @@
 MCalibColorSteer::MCalibColorSteer(const char *name, const char *title)
     : fHeader(NULL), fGeom(NULL), fParList(NULL), 
-      fIntensCharge(NULL), fIntensRelTime(NULL), 
+      fIntensCharge(NULL), fIntensRelTime(NULL), fIntensBad(NULL),
       fChargeCalc(NULL), fRelTimeCalc(NULL),
       fPattern(0)
@@ -111,4 +115,9 @@
 
   // 
+  // Look for the MBadPixels Intensity Cam
+  //
+  fIntensBad = (MBadPixelsIntensityCam*)pList->FindCreateObj("MBadPixelsIntensityCam");
+
+  // 
   // Look for the MFillH name "FillChargeCam". In case yes, initialize the 
   // corresponding IntensityCam
@@ -116,4 +125,5 @@
   if (pList->FindObject(AddSerialNumber("FillChargeCam")))
   {
+
     fIntensCharge = (MCalibrationIntensityChargeCam*)pList->FindCreateObj("MCalibrationIntensityChargeCam");
     fIntensQE     = (MCalibrationIntensityQECam*)    pList->FindCreateObj("MCalibrationIntensityQECam");
@@ -167,5 +177,6 @@
 // --------------------------------------------------------------------------
 //
-// Sets the pattern to MRawEvtHeader from outside, if fIsValid is set.
+// Reads the pattern from MRawEvtHeader and initializes new containers in the 
+// Intensity Cams, if the pattern has changed
 //
 Int_t MCalibColorSteer::Process()
@@ -208,4 +219,10 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// Searches for name in the MParList and calls, if existing: 
+// - MHCalibrationCam::Finalize()
+// - MHCalibrationCam::ResetHists()
+//
 Bool_t MCalibColorSteer::Finalize(const char* name)
 {
@@ -223,34 +240,33 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// Re-Intitializes new containers inside the Intensity Cams. 
+// From now on, a call to the IntensityCam functions returns pointers 
+// to the newly created Containers.
+//
 Bool_t MCalibColorSteer::ReInitialize()
 {
 
+  if (fIntensBad)
+    {
+      fIntensBad->AddToList(Form("MBadPixelsCam%s",GetNamePattern()),*fGeom);
+      *fLog << inf << "New MBadPixelsCam with " << GetNamePattern() << endl;
+    }
   if (fIntensCharge)
     {
       fIntensCharge->AddToList(Form("MCalibrationChargeCam%s",GetNamePattern()),*fGeom);
-      *fLog << inf << "New MHCalibrationChargeCam with " << GetNamePattern() << endl;
-    }
-  else
-    *fLog << warn << GetDescriptor() 
-          << ": No MCalibrationIntensityChargeCam loaded, but MHCalibrationChargeCam found " 
-          << endl;
+      *fLog << inf << "New MCalibrationChargeCam with " << GetNamePattern() << endl;
+    }
   if (fIntensQE)
     {
       fIntensQE->AddToList(Form("MCalibrationQECam%s",GetNamePattern()),*fGeom);
-      *fLog << inf << "New MHCalibrationQECam with " << GetNamePattern() << endl;
-    }
-  else
-    *fLog << warn << GetDescriptor() 
-          << ": No MCalibrationIntensityQECam loaded, but MHCalibrationChargeCam found " 
-          << endl;
+      *fLog << inf << "New MCalibrationQECam with " << GetNamePattern() << endl;
+    }
   if (fIntensRelTime)
     {
       fIntensRelTime->AddToList(Form("MCalibrationRelTimeCam%s",GetNamePattern()),*fGeom);
-      *fLog << inf << "New MHCalibrationRelTimeCam with " << GetNamePattern() << endl;
-    }
-  else
-    *fLog << warn << GetDescriptor() 
-          << ": No MCalibrationIntensityRelTimeCam loaded, but MHCalibrationRelTimeCam found " 
-          << endl;
+      *fLog << inf << "New MCalibrationRelTimeCam with " << GetNamePattern() << endl;
+    }
 
   return kTRUE;
Index: /trunk/MagicSoft/Mars/mcalib/MCalibColorSteer.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibColorSteer.h	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibColorSteer.h	(revision 5019)
@@ -14,26 +14,29 @@
 class MCalibrationIntensityQECam;
 class MCalibrationIntensityRelTimeCam;
+class MBadPixelsIntensityCam;
 class MCalibColorSteer : public MTask
 {
 private:
 
-    MRawEvtHeader                   *fHeader;
-    MGeomCam                        *fGeom;
-    MParList                        *fParList;
-    MCalibrationIntensityChargeCam  *fIntensCharge;
-    MCalibrationIntensityQECam      *fIntensQE;
-    MCalibrationIntensityRelTimeCam *fIntensRelTime;
-    MCalibrationChargeCalc          *fChargeCalc;
-    MCalibrationRelTimeCalc         *fRelTimeCalc;    
-    
-    UInt_t fPattern;
-
-    Int_t  PreProcess(MParList *pList);
-    Int_t  Process();
-
-    Bool_t ReInitialize();
-    Bool_t Finalize(const char* name);
-    const char* GetNamePattern();
-    
+  MRawEvtHeader                   *fHeader;          //!
+  MGeomCam                        *fGeom;            //!
+  MParList                        *fParList;         //!
+  MCalibrationIntensityChargeCam  *fIntensCharge;    //!
+  MCalibrationIntensityQECam      *fIntensQE;        //!
+  MCalibrationIntensityRelTimeCam *fIntensRelTime;   //!
+  MBadPixelsIntensityCam          *fIntensBad;       //!
+  
+  MCalibrationChargeCalc          *fChargeCalc;      //!
+  MCalibrationRelTimeCalc         *fRelTimeCalc;     //!
+                                                     
+  UInt_t fPattern;                                   
+  
+  Int_t  PreProcess(MParList *pList);
+  Int_t  Process();
+  
+  Bool_t ReInitialize();
+  Bool_t Finalize(const char* name);
+  const char* GetNamePattern();
+  
 public:
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationBlindCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationBlindCam.cc	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationBlindCam.cc	(revision 5019)
@@ -30,9 +30,9 @@
 // the actual values of the MCalibrationBlindPix's. 
 //
-// Contains TClonesArrays for the following objects:
+// Contains TObjArrays for the following objects:
 // - fBlindPixels:    Array of classes derived from MCalibrationBlindPix, one entry 
 //                    per blind pixel. 
 //
-// All TClonesArrays have to enlarged by the corresponding calls to (e.g. in MGeomApply): 
+// All TObjArrays have to enlarged by the corresponding calls to (e.g. in MGeomApply): 
 // - InitSize()
 //
@@ -43,7 +43,7 @@
 #include "MCalibrationBlindPix.h"
 
+#include <TObjArray.h>
+
 #include "MLogManip.h"
-
-#include <TClonesArray.h>
 
 ClassImp(MCalibrationBlindCam);
@@ -54,7 +54,4 @@
 // Default constructor. 
 //
-// Creates a TClonesArray of MCalibrationBlindPix containers for the TClonesArray's: 
-// - fPixels
-//
 MCalibrationBlindCam::MCalibrationBlindCam(Int_t nblind,const char *name, const char *title)
 {
@@ -63,7 +60,11 @@
   fTitle = title ? title : "Calibration Information of blinded pixels in camera";
 
-  fPixels = new TClonesArray("MCalibrationBlindPix",nblind);
+  InitSize(nblind);
+}
 
-  InitSize(nblind);
+void MCalibrationBlindCam::Add(const UInt_t a, const UInt_t b)
+{
+  for (UInt_t i=a; i<b; i++)
+    (*fPixels)[i] = new MCalibrationBlindPix;
 }
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 5019)
@@ -82,5 +82,5 @@
 #include "MCalibrationChargeCam.h"
 
-#include <TClonesArray.h>
+#include <TObjArray.h>
 
 #include "MLog.h"
@@ -107,18 +107,4 @@
 // Default constructor. 
 //
-// Sets all pointers to 0
-// 
-// Creates a TClonesArray of MCalibrationChargePix containers, initialized to 1 entry, destinated 
-// to hold one container per pixel. Later, a call to MCalibrationChargeCam::InitSize() 
-// has to be performed (in MGeomApply). 
-//
-// Creates a TClonesArray of MCalibrationChargePix containers, initialized to 1 entry, destinated 
-// to hold one container per pixel AREA. Later, a call to MCalibrationChargeCam::InitAreas() 
-// has to be performed (in MGeomApply). 
-//
-// Creates a TClonesArray of MCalibrationChargePix containers, initialized to 1 entry, destinated
-// to hold one container per camera SECTOR. Later, a call to MCalibrationChargeCam::InitSectors() 
-// has to be performed (in MGeomApply). 
-//
 // Calls:
 // - Clear()
@@ -129,12 +115,27 @@
   fTitle = title ? title : "Storage container for the Calibration Information in the camera";
   
-  fPixels            = new TClonesArray("MCalibrationChargePix",1);
-  fAverageAreas      = new TClonesArray("MCalibrationChargePix",1);
-  fAverageSectors    = new TClonesArray("MCalibrationChargePix",1);
-  fAverageBadAreas   = new TClonesArray("MBadPixelsPix",1);
-  fAverageBadSectors = new TClonesArray("MBadPixelsPix",1);
-
   Clear();
 }
+
+
+void MCalibrationChargeCam::Add(const UInt_t a, const UInt_t b)
+{
+  for (UInt_t i=a; i<b; i++)
+    (*fPixels)[i] = new MCalibrationChargePix;
+}
+
+
+void MCalibrationChargeCam::AddArea(const UInt_t a, const UInt_t b)
+{
+  for (UInt_t i=a; i<b; i++)
+    (*fAverageAreas)[i] = new MCalibrationChargePix;
+}
+
+void MCalibrationChargeCam::AddSector(const UInt_t a, const UInt_t b)
+{
+  for (UInt_t i=a; i<b; i++)
+    (*fAverageSectors)[i] = new MCalibrationChargePix;
+}
+
 
 // --------------------------------------
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.h	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.h	(revision 5019)
@@ -26,4 +26,8 @@
   enum  { kFFactorMethodValid };
 
+  void Add(const UInt_t a, const UInt_t b);
+  void AddArea(const UInt_t a, const UInt_t b);
+  void AddSector(const UInt_t a, const UInt_t b);
+  
 public:
 
@@ -72,5 +76,5 @@
   void  SetNumPhotonsPINDiodeMethodErr  ( const Float_t f )  { fNumPhotonsPINDiodeMethodErr   = f; }   
   
-  ClassDef(MCalibrationChargeCam, 4) // Container Charge Calibration Results Camera
+  ClassDef(MCalibrationChargeCam, 5) // Container Charge Calibration Results Camera
 };
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.h	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.h	(revision 5019)
@@ -16,5 +16,5 @@
   MCalibrationIntensityBlindCam(const char *name=NULL, const char *title=NULL);
 
-  void InitSize( const UInt_t n );  
+  void InitSize( const UInt_t n );
   
   ClassDef(MCalibrationIntensityBlindCam, 1) // Container Intensity Blind Calibration Results Camera
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationRelTimeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationRelTimeCam.cc	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationRelTimeCam.cc	(revision 5019)
@@ -76,5 +76,5 @@
 #include "MCalibrationCam.h"
 
-#include <TClonesArray.h>
+#include <TObjArray.h>
 
 #include "MLog.h"
@@ -94,16 +94,4 @@
 // Default constructor. 
 //
-// Creates a TClonesArray of MCalibrationRelTimePix containers, initialized to 1 entry, destinated 
-// to hold one container per pixel. Later, a call to MCalibrationRelTimeCam::InitSize() 
-// has to be performed (in MGeomApply). 
-//
-// Creates a TClonesArray of MCalibrationRelTimePix containers, initialized to 1 entry, destinated 
-// to hold one container per pixel AREA. Later, a call to MCalibrationRelTimeCam::InitAreas() 
-// has to be performed (in MGeomApply). 
-//
-// Creates a TClonesArray of MCalibrationRelTimePix containers, initialized to 1 entry, destinated
-// to hold one container per camera SECTOR. Later, a call to MCalibrationRelTimeCam::InitSectors() 
-// has to be performed (in MGeomApply). 
-//
 MCalibrationRelTimeCam::MCalibrationRelTimeCam(const char *name, const char *title)
 {
@@ -112,10 +100,23 @@
   fTitle = title ? title : "Container for Relative Time Calibration Information";
   
-  fPixels             = new TClonesArray("MCalibrationRelTimePix",1);
-  fAverageAreas       = new TClonesArray("MCalibrationRelTimePix",1);
-  fAverageSectors     = new TClonesArray("MCalibrationRelTimePix",1);
-  fAverageBadAreas    = new TClonesArray("MBadPixelsPix",1);
-  fAverageBadSectors  = new TClonesArray("MBadPixelsPix",1);
-  
+}
+
+void MCalibrationRelTimeCam::Add(const UInt_t a, const UInt_t b)
+{
+  for (UInt_t i=a; i<b; i++)
+    (*fPixels)[i] = new MCalibrationRelTimePix;
+}
+
+
+void MCalibrationRelTimeCam::AddArea(const UInt_t a, const UInt_t b)
+{
+  for (UInt_t i=a; i<b; i++)
+    (*fAverageAreas)[i] = new MCalibrationRelTimePix;
+}
+
+void MCalibrationRelTimeCam::AddSector(const UInt_t a, const UInt_t b)
+{
+  for (UInt_t i=a; i<b; i++)
+    (*fAverageSectors)[i] = new MCalibrationRelTimePix;
 }
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationRelTimeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationRelTimeCam.h	(revision 5018)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationRelTimeCam.h	(revision 5019)
@@ -8,4 +8,10 @@
 class MCalibrationRelTimeCam : public MCalibrationCam
 {
+private:
+
+  void Add(const UInt_t a, const UInt_t b);
+  void AddArea(const UInt_t a, const UInt_t b);
+  void AddSector(const UInt_t a, const UInt_t b);
+
 public:
 
@@ -19,5 +25,5 @@
   void DrawPixelContent(Int_t num) const;    
 
-  ClassDef(MCalibrationRelTimeCam, 1)	// Container Rel. Arrival Time Calibration Results Camera
+  ClassDef(MCalibrationRelTimeCam, 2)	// Container Rel. Arrival Time Calibration Results Camera
 };
 
