Index: trunk/MagicSoft/Mars/mcalib/MCalibrationCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationCam.cc	(revision 3693)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationCam.cc	(revision 3694)
@@ -212,5 +212,5 @@
 // independently if the MCalibrationPix is filled with values or not.
 //
-Int_t MCalibrationCam::GetSize() const
+const Int_t MCalibrationCam::GetSize() const
 {
   return fPixels->GetEntriesFast();
@@ -222,5 +222,5 @@
 // independently if the MCalibrationPix is filled with values or not.
 //
-Int_t MCalibrationCam::GetAverageAreas() const
+const Int_t MCalibrationCam::GetAverageAreas() const
 {
   return fAverageAreas->GetEntriesFast();
@@ -232,5 +232,5 @@
 // independently if the MCalibrationPix is filled with values or not.
 //
-Int_t MCalibrationCam::GetAverageSectors() const
+const Int_t MCalibrationCam::GetAverageSectors() const
 {
   return fAverageSectors->GetEntriesFast();
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationCam.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationCam.h	(revision 3693)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationCam.h	(revision 3694)
@@ -39,18 +39,9 @@
   ~MCalibrationCam();
   
-  virtual void Clear      ( Option_t *o=""               );
+  virtual void Clear           ( Option_t *o="");
+  virtual void DrawPixelContent( Int_t num) const;    
 
-  void Init               ( const MGeomCam &geom         );
-  void InitSize           ( const UInt_t i               );
-  void InitAverageAreas   ( const UInt_t i               );
-  void InitAverageSectors ( const UInt_t i               );
-
-  void SetPulserColor     ( const PulserColor_t col=kCT1)  { fPulserColor = col; }
-  
   // Getters
-  Int_t   GetSize()               const;
-  Int_t   GetAverageAreas()       const;
-  Int_t   GetAverageSectors()     const;  
-
+  const Int_t            GetAverageAreas     ()           const;
         MCalibrationPix &GetAverageArea      ( UInt_t i );
   const MCalibrationPix &GetAverageArea      ( UInt_t i ) const;
@@ -60,13 +51,23 @@
   const MBadPixelsPix   &GetAverageBadSector ( UInt_t i ) const;
         MCalibrationPix &GetAverageSector    ( UInt_t i );
+  const Int_t            GetAverageSectors   ()           const;  
   const MCalibrationPix &GetAverageSector    ( UInt_t i ) const;
+  virtual Bool_t         GetPixelContent     ( Double_t &val, Int_t idx, 
+                                               const MGeomCam &cam, Int_t type=0) const;
+  const PulserColor_t    GetPulserColor()                 const { return fPulserColor; }
+  const Int_t            GetSize()                        const;
+
         MCalibrationPix &operator[]          ( UInt_t i );
   const MCalibrationPix &operator[]          ( UInt_t i ) const;
 
-  const PulserColor_t    GetPulserColor()                 const { return fPulserColor; }
+  // Inits
+  void  Init               ( const MGeomCam &geom       );
+  void  InitSize           ( const UInt_t i             );
+  void  InitAverageAreas   ( const UInt_t i             );
+  void  InitAverageSectors ( const UInt_t i             );
 
-  virtual Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
-  virtual void DrawPixelContent(Int_t num) const;    
-
+  // Setters
+  void  SetPulserColor     ( const PulserColor_t col=kCT1 )  { fPulserColor = col; }
+  
   ClassDef(MCalibrationCam, 1)	// Base class Container for Calibration Results Camera
 };
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3693)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3694)
@@ -290,40 +290,43 @@
 {
   
-    SETBIT(fFlags, kUseQualityChecks);
-    SETBIT(fFlags, kHiLoGainCalibration);
-
     fNumHiGainSamples        = 0.;
     fNumLoGainSamples        = 0.;
     fSqrtHiGainSamples       = 0.;
     fSqrtLoGainSamples       = 0.;
-    SkipQualityChecks      ( kFALSE );
     SkipHiLoGainCalibration( kFALSE );    
 }
 
 
-// --------------------------------------------------------------------------
-//
-// The PreProcess searches for the following input containers:
-//  - MRawEvtData
+// -----------------------------------------------------------------------------------
+//
+// The following container are searched for and execution aborted if not in MParList:
 //  - MPedestalCam
 //  - MExtractedSignalCam
-//  - MExtractedSignalBlindPixel
-//  - MExtractedSignalPINDiode
-//
-// The following output containers are also searched and created if
-// they were not found:
-//
 //  - MCalibrationChargeCam
+//
+// The following containers are searched and created if they were not found:
+//
 //  - MCalibrationQECam
-//
-// The following output containers are only searched, but not created
-//
+//  - MBadPixelsCam
+//
+// The following output containers are only searched,  but not created. If they 
+// cannot be found, the corresponding calibration part is only skipped.
+//
+//  - MExtractedSignalBlindPixel and MCalibrationChargeBlindPix
+//  - MExtractedSignalPINDiode   and MCalibrationChargePINDiode
 //  - MTime
 //
-// Sets the pulser colour in MCalibrationChargeCam
+// Sets the pulser colour in:
+//
+// - MCalibrationChargeCam
+// - MCalibrationChargeBlindPix
+// - MCalibrationChargePINDiode
 //
 Int_t MCalibrationChargeCalc::PreProcess(MParList *pList)
 {
   
+  // 
+  // Containers that have to be there.
+  //
   fPedestals = (MPedestalCam*)pList->FindObject("MPedestalCam");
   if (!fPedestals)
@@ -340,4 +343,32 @@
     }
   
+  fCam = (MCalibrationChargeCam*)pList->FindObject("MCalibrationChargeCam");
+  if (!fCam)
+    {
+      *fLog << err << "Cannot find MCalibrationChargeCam... aborting" << endl;
+      *fLog << err << "Maybe you forget to call an MFillH for the MHCalibrationChargeCam before..." << endl;
+      return kFALSE;
+    }
+
+  // 
+  // Containers that are created in case that they are not there.
+  //
+  fQECam = (MCalibrationQECam*)pList->FindCreateObj("MCalibrationQECam");
+  if (!fQECam)
+    {
+      *fLog << err << "Cannot find nor create MCalibrationQECam... aborting" << endl;
+      return kFALSE;
+    }
+
+  fBadPixels = (MBadPixelsCam*)pList->FindCreateObj("MBadPixelsCam");
+  if (!fBadPixels)
+    {
+      *fLog << err << "Could not find or create MBadPixelsCam ... aborting." << endl;
+      return kFALSE;
+    }
+
+  // 
+  // Optional Containers 
+  //
   fSigBlind = (MExtractedSignalBlindPixel*)pList->FindObject("MExtractedSignalBlindPixel");
   if (!fSigBlind)
@@ -351,5 +382,4 @@
           return kFALSE;
         }
-      fBlindPixel->SetColor( fPulserColor );
     }
   
@@ -365,24 +395,18 @@
           return kFALSE;
         }
-      fPINDiode->SetColor( fPulserColor );
-    }
-  
-  fCam = (MCalibrationChargeCam*)pList->FindCreateObj("MCalibrationChargeCam");
-  if (!fCam)
-    {
-      *fLog << err << "Cannot find nor create MCalibrationChargeCam... aborting" << endl;
-      return kFALSE;
-    }
-
+    }
+  
+  fEvtTime = (MTime*)pList->FindObject("MTime");
+  
+  //
+  // Initialize the pulser colours
+  //
   fCam->SetPulserColor( fPulserColor );
 
-  fQECam = (MCalibrationQECam*)pList->FindCreateObj("MCalibrationQECam");
-  if (!fQECam)
-    {
-      *fLog << err << "Cannot find nor create MCalibrationQECam... aborting" << endl;
-      return kFALSE;
-    }
-  
-  fEvtTime = (MTime*)pList->FindObject("MTime");
+  if (fBlindPixel)
+    fBlindPixel->SetColor( fPulserColor );
+  
+  if (fPINDiode)
+    fPINDiode->SetColor( fPulserColor );
   
   return kTRUE;
@@ -393,20 +417,22 @@
 //
 // The ReInit searches for the following input containers:
-//  - MRawRunHeader
 //  - MGeomCam
-//  - MBadPixelsCam
 //
 // It retrieves the following variables from MExtractedSignalCam:
 //
-//  fNumHiGainSamples 
-//  fNumLoGainSamples 
-//
-//  fFirstUsedSliceHiGain
-//  fLastUsedSliceHiGain
-//  fFirstUsedSliceLoGain
-//  fLastUsedSliceLoGain
-//
-// It defines the PixId of every pixel in MCalibrationChargeCam and MCalibrationQECam
-// It sets all pixels excluded which have the flag fBadBixelsPix::IsBad() set.
+//  - fNumHiGainSamples 
+//  - fNumLoGainSamples 
+//
+// It defines the PixId of every pixel in:
+//
+// - MCalibrationChargeCam 
+// - MCalibrationQECam
+//
+// It sets all pixels in excluded which have the flag fBadBixelsPix::IsBad() set in:
+// 
+// - MCalibrationChargePix
+// - MCalibrationQEPix
+//
+// It tests the pulser colour one more time...
 //
 Bool_t MCalibrationChargeCalc::ReInit(MParList *pList )
@@ -420,11 +446,4 @@
     }
   
-  fBadPixels = (MBadPixelsCam*)pList->FindCreateObj("MBadPixelsCam");
-  if (!fBadPixels)
-    {
-      *fLog << err << "Could not find or create MBadPixelsCam ... aborting." << endl;
-      return kFALSE;
-    }
-
   fNumHiGainSamples  =  fSignals->GetNumUsedHiGainFADCSlices();
   fNumLoGainSamples  =  fSignals->GetNumUsedLoGainFADCSlices();
@@ -436,24 +455,31 @@
   for (UInt_t i=0; i<npixels; i++)
     {
-
+      
       MCalibrationChargePix &pix = (MCalibrationChargePix&)(*fCam)  [i];
       MCalibrationQEPix     &pqe = (MCalibrationQEPix&)    (*fQECam)[i];
       MBadPixelsPix         &bad = (*fBadPixels)[i];
-
+      
       pix.SetPixId(i);
       pqe.SetPixId(i);
-
+      
       if (bad.IsBad())
-      {
+        {
           pix.SetExcluded();
           pqe.SetExcluded();
           continue;
-      }
-
-    }
-
-    return kTRUE;
-}
-
+        }
+      
+    }
+
+  if (fPulserColor != fCam->GetPulserColor())
+    {
+      *fLog << err << GetDescriptor() << ": Pulser colour has changed w.r.t. last file."
+            << "This feature is not yet implemented, sorry ... aborting " << endl;
+      return kFALSE;
+    }
+  
+
+  return kTRUE;
+}
 
 // ----------------------------------------------------------------------------------
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 3693)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 3694)
@@ -82,5 +82,5 @@
 
   // enums
-  enum  { kUseQualityChecks, kHiLoGainCalibration };
+  enum  { kHiLoGainCalibration };
 
   // functions
@@ -124,6 +124,4 @@
   void SkipHiLoGainCalibration ( const Bool_t b=kTRUE )
       { b ? CLRBIT(fFlags, kHiLoGainCalibration) : SETBIT(fFlags, kHiLoGainCalibration); }
-  void SkipQualityChecks       ( const Bool_t b=kTRUE)
-      { b ? CLRBIT(fFlags, kUseQualityChecks)    : SETBIT(fFlags, kUseQualityChecks);    }
 
   ClassDef(MCalibrationChargeCalc, 1)   // Task calculating Calibration Containers and Quantum Efficiencies
