Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 5014)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 5015)
@@ -37,5 +37,5 @@
 
    * mbadpixels/MBadPixelsIntensityCam.[h,cc]
-   * mcalib/MCalibrationIntensityCam.[h,cc]
+   * mcalib/MCalibrationIntensity*Cam.[h,cc]
      - replace TClonesArray by TObjArray
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.cc	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.cc	(revision 5015)
@@ -39,6 +39,7 @@
 /////////////////////////////////////////////////////////////////////////////
 #include "MCalibrationIntensityBlindCam.h"
+#include "MCalibrationBlindCam.h"
 
-#include <TClonesArray.h>
+#include <TObjArray.h>
 
 ClassImp(MCalibrationIntensityBlindCam);
@@ -50,9 +51,4 @@
 // Default constructor. 
 //
-// Sets all pointers to 0
-// 
-// Creates a TClonesArray of MCalibrationBlindCam containers, initialized to 1 entry, destinated 
-// to hold one container per camera. 
-//
 MCalibrationIntensityBlindCam::MCalibrationIntensityBlindCam(const char *name, const char *title)
 {
@@ -60,6 +56,27 @@
   fName  = name  ? name  : "MCalibrationIntensityBlindCam";
   fTitle = title ? title : "Results of the Intensity Calibration";
+
+}
+
+// --------------------------------------------------------------------------
+//
+// Calls TObjArray::Expand() for fCams and initialze one MCalibrationBlindCam
+// and copy the entries
+// 
+void MCalibrationIntensityBlindCam::InitSize(const UInt_t n)
+{
+
+  MCalibrationBlindCam *oldcam = NULL;
+
+  if (n>1)
+    oldcam = (MCalibrationBlindCam*)GetCam();
+
+  MCalibrationIntensityCam::InitSize(n);
+  (*fCams)[n-1] = new MCalibrationBlindCam;
+
+  MCalibrationBlindCam *newcam = (MCalibrationBlindCam*)GetCam();  
   
-  fCams = new TClonesArray("MCalibrationBlindCam",1);
-  
+  if (oldcam)
+    oldcam->Copy(*newcam);
 }
+
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.h	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityBlindCam.h	(revision 5015)
@@ -16,4 +16,6 @@
   MCalibrationIntensityBlindCam(const char *name=NULL, const char *title=NULL);
 
+  void InitSize( const UInt_t n );  
+  
   ClassDef(MCalibrationIntensityBlindCam, 1) // Container Intensity Blind Calibration Results Camera
 };
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityCam.cc	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityCam.cc	(revision 5015)
@@ -28,5 +28,5 @@
 // Base class for intensity calibration results 
 //
-// Contains TClonesArrays for the following objects:
+// Contains TObjArrays for the following objects:
 // - fCams:  Array of classes derived from MCalibrationCam, one entry 
 //           per calibration camera result. Has to be created
@@ -43,5 +43,5 @@
 #include "MCalibrationIntensityCam.h"
 
-#include <TClonesArray.h>
+#include <TObjArray.h>
 
 #include "MGeomCam.h"
@@ -59,10 +59,13 @@
 //
 MCalibrationIntensityCam::MCalibrationIntensityCam(const char *name, const char *title)
-    : fCams(NULL)
 {
 
   fName  = name  ? name  : "MCalibrationIntensityCam";
   fTitle = title ? title : "Base container for the Intensity Calibration";
-  
+
+  fCams = new TObjArray;
+  fCams->SetOwner();
+
+  InitSize(1);
 }
 
@@ -73,6 +76,6 @@
 MCalibrationIntensityCam::~MCalibrationIntensityCam()
 {
-    if (fCams)
-        delete fCams;
+  if (fCams)
+    delete fCams;
 }
 
@@ -84,7 +87,5 @@
 void MCalibrationIntensityCam::AddToList( const char* name, const MGeomCam &geom) 
 {
-
-  fCams->ExpandCreate(GetSize()+1);
-
+  InitSize(GetSize()+1);
   GetCam()->SetName(name);
   GetCam()->Init(geom);
@@ -187,9 +188,9 @@
 // -------------------------------------------------------------------
 //
-// Calls TClonesArray::ExpandCreate() for fCams
+// Calls TObjArray::Expand() for fCams
 //
 void MCalibrationIntensityCam::InitSize(const UInt_t n)
 {
-  fCams->ExpandCreate(n);
+  fCams->Expand(n);
 }
 
@@ -203,4 +204,5 @@
   if (GetSize() == 0)
     InitSize(1);
+
   fCams->ForEach(MCalibrationCam,Init)(geom);
 }
@@ -209,10 +211,10 @@
 // --------------------------------------------------------------------------
 //
-// Returns the current size of the TClonesArray fCams 
+// Returns the current size of the TObjArray fCams 
 // independently if the MCalibrationCam is filled with values or not.
 //
 const Int_t MCalibrationIntensityCam::GetSize() const 
 {
-  return fCams->GetEntriesFast();
+  return fCams->GetEntries();
 }
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityCam.h	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityCam.h	(revision 5015)
@@ -18,5 +18,5 @@
 #endif
 
-class TClonesArray;
+class TObjArray;
 class MCalibrationPix;
 class MBadPixelsPix;
@@ -29,10 +29,10 @@
   MArrayD fSlopes;            //! Arrays of Higain-vs-LoGain fit result Slopes
 
-  void InitSize( const UInt_t n );
-  
 protected:  
 
-  TClonesArray *fCams;        // Array of MCalibrationCams, one per pulse colour and intensity
+  TObjArray *fCams;        // Array of MCalibrationCams, one per pulse colour and intensity
 
+  virtual void InitSize( const UInt_t n );
+  
 public:
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityChargeCam.cc	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityChargeCam.cc	(revision 5015)
@@ -40,6 +40,7 @@
 /////////////////////////////////////////////////////////////////////////////
 #include "MCalibrationIntensityChargeCam.h"
+#include "MCalibrationChargeCam.h"
 
-#include <TClonesArray.h>
+#include <TObjArray.h>
 
 ClassImp(MCalibrationIntensityChargeCam);
@@ -50,10 +51,5 @@
 //
 // Default constructor. 
-//
-// Sets all pointers to 0
 // 
-// Creates a TClonesArray of MCalibrationChargeCam containers, initialized to 1 entry, destinated 
-// to hold one container per camera. 
-//
 MCalibrationIntensityChargeCam::MCalibrationIntensityChargeCam(const char *name, const char *title)
 {
@@ -62,5 +58,14 @@
   fTitle = title ? title : "Results of the Intensity Calibration";
   
-  fCams = new TClonesArray("MCalibrationChargeCam",1);
-  
 }
+
+// --------------------------------------------------------------------------
+//
+// Calls TObjArray::Expand() for fCams and initialze one CalibrationChargeCam
+//
+void MCalibrationIntensityChargeCam::InitSize(const UInt_t n)
+{
+  MCalibrationIntensityCam::InitSize(n);
+  (*fCams)[n-1] = new MCalibrationChargeCam;
+}
+
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityChargeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityChargeCam.h	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityChargeCam.h	(revision 5015)
@@ -15,4 +15,6 @@
 
   MCalibrationIntensityChargeCam(const char *name=NULL, const char *title=NULL);
+
+  void InitSize( const UInt_t n );  
 
   // Setters   
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityQECam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityQECam.cc	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityQECam.cc	(revision 5015)
@@ -39,6 +39,7 @@
 /////////////////////////////////////////////////////////////////////////////
 #include "MCalibrationIntensityQECam.h"
+#include "MCalibrationQECam.h"
 
-#include <TClonesArray.h>
+#include <TObjArray.h>
 
 ClassImp(MCalibrationIntensityQECam);
@@ -49,9 +50,4 @@
 // Default constructor. 
 //
-// Sets all pointers to 0
-// 
-// Creates a TClonesArray of MCalibrationQECam containers, initialized
-// to 1 entry, destinated to hold one container per camera.
-//
 MCalibrationIntensityQECam::MCalibrationIntensityQECam(const char *name, const char *title)
 {
@@ -60,5 +56,26 @@
   fTitle = title ? title : "Results of the Intensity Calibration";
   
-  fCams = new TClonesArray("MCalibrationQECam",1);
+}
 
+// --------------------------------------------------------------------------
+//
+// Calls TObjArray::Expand() for fCams and initialze one MCalibrationQECam
+// and copy the entries
+// 
+void MCalibrationIntensityQECam::InitSize(const UInt_t n)
+{
+
+  MCalibrationQECam *oldcam = NULL;
+
+  if (n>1)
+    oldcam = (MCalibrationQECam*)GetCam();
+
+  MCalibrationIntensityCam::InitSize(n);
+  (*fCams)[n-1] = new MCalibrationQECam;
+
+  MCalibrationQECam *newcam = (MCalibrationQECam*)GetCam();  
+  
+  if (oldcam)
+    oldcam->Copy(*newcam);
 }
+
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityQECam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityQECam.h	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityQECam.h	(revision 5015)
@@ -8,10 +8,9 @@
 class MCalibrationIntensityQECam : public MCalibrationIntensityCam
 {
-private:
-  
-
 public:
 
   MCalibrationIntensityQECam(const char *name=NULL, const char *title=NULL);
+
+  void InitSize( const UInt_t n );  
   
   ClassDef(MCalibrationIntensityQECam, 1) // Container Intensity Rel.Times Calibration Results Camera
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityRelTimeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityRelTimeCam.cc	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityRelTimeCam.cc	(revision 5015)
@@ -39,6 +39,7 @@
 /////////////////////////////////////////////////////////////////////////////
 #include "MCalibrationIntensityRelTimeCam.h"
+#include "MCalibrationRelTimeCam.h"
 
-#include <TClonesArray.h>
+#include <TObjArray.h>
 
 ClassImp(MCalibrationIntensityRelTimeCam);
@@ -50,10 +51,4 @@
 // Default constructor. 
 //
-// Sets all pointers to 0
-// 
-// Creates a TClonesArray of MCalibrationRelTimeCam containers, initialized to 1 entry, destinated 
-// to hold one container per camera. 
-//
-//
 MCalibrationIntensityRelTimeCam::MCalibrationIntensityRelTimeCam(const char *name, const char *title)
 {
@@ -62,5 +57,15 @@
   fTitle = title ? title : "Results of the Intensity Calibration";
   
-  fCams = new TClonesArray("MCalibrationRelTimeCam",1);
+}
 
+
+// --------------------------------------------------------------------------
+//
+// Calls TObjArray::Expand() for fCams and initialze one CalibrationRelTimeCam
+//
+void MCalibrationIntensityRelTimeCam::InitSize(const UInt_t n)
+{
+  MCalibrationIntensityCam::InitSize(n);
+  (*fCams)[n-1] = new MCalibrationRelTimeCam;
 }
+
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityRelTimeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityRelTimeCam.h	(revision 5014)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityRelTimeCam.h	(revision 5015)
@@ -8,10 +8,9 @@
 class MCalibrationIntensityRelTimeCam : public MCalibrationIntensityCam
 {
-private:
-  
-
 public:
 
   MCalibrationIntensityRelTimeCam(const char *name=NULL, const char *title=NULL);
+
+  void InitSize( const UInt_t n );    
   
   ClassDef(MCalibrationIntensityRelTimeCam, 1) // Container Intensity Rel.Times Calibration Results Camera
