Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3553)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3554)
@@ -43,4 +43,9 @@
    * mcalib/MCalibrationQEPix.[h,cc]
      - replace DefinePixId by SetPixId
+   
+   * mcalib/MCalibrationChargeCalc.[h,cc]
+     - added MCalibrationQECam
+
+
  2004/03/18: Raquel de los Reyes
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3553)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 3554)
@@ -44,5 +44,5 @@
 //               MHCalibrationChargeCam
 //
-//   PstProcess:  Fit results from MHCalibrationChargeCam are retrieved
+//   PostProcess:  Fit results from MHCalibrationChargeCam are retrieved
 //                and used for the calculation of the reduced sigma, 
 //                the F-Factor method, the blind pixel method (photon flux 
@@ -62,4 +62,5 @@
 //  Output Containers:
 //   MCalibrationCam
+//   MCalibrationQECam
 //   MBadPixelsCam
 //
@@ -202,4 +203,7 @@
 #include "MBadPixelsPix.h"
 
+#include "MCalibrationQECam.h"
+#include "MCalibrationQEPix.h"
+
 
 ClassImp(MCalibrationChargeCalc);
@@ -212,5 +216,5 @@
 //
 MCalibrationChargeCalc::MCalibrationChargeCalc(const char *name, const char *title)
-    : fPedestals(NULL), fCam(NULL), 
+    : fPedestals(NULL), fCam(NULL), fQECam(NULL),
       fRawEvt(NULL), fRunHeader(NULL), fGeom(NULL), 
       fBadPixels(NULL), fEvtTime(NULL),
@@ -237,5 +241,9 @@
     fNumHiGainSamples  = 0.;
     fNumLoGainSamples  = 0.;
+    fSqrtHiGainSamples = 0.;
+    fSqrtLoGainSamples = 0.;
     fConversionHiLo    = 0;
+    SkipQualityChecks      ( kFALSE );
+    SkipHiLoGainCalibration( kFALSE );    
 
 }
@@ -252,4 +260,5 @@
 //
 //  - MCalibrationCam
+//  - MCalibrationQECam
 //
 // The following output containers are only searched, but not created
@@ -259,41 +268,45 @@
 Int_t MCalibrationChargeCalc::PreProcess(MParList *pList)
 {
-
-    fRawEvt = (MRawEvtData*)pList->FindObject("MRawEvtData");
-    if (!fRawEvt)
+  
+  fRawEvt = (MRawEvtData*)pList->FindObject("MRawEvtData");
+  if (!fRawEvt)
     {
       *fLog << err << "MRawEvtData not found... aborting." << endl;
       return kFALSE;
     }
-
-    fCam = (MCalibrationChargeCam*)pList->FindCreateObj("MCalibrationChargeCam");
-    if (!fCam)
-        return kFALSE;
-
-    fPINDiode = (MCalibrationChargePINDiode*)pList->FindCreateObj("MCalibrationChargePINDiode");
-    if (!fPINDiode)
-        return kFALSE;
-
-    fBlindPixel = (MCalibrationChargeBlindPix*)pList->FindCreateObj("MCalibrationChargeBlindPix");
-    if (!fBlindPixel)
-        return kFALSE;
-
-    fEvtTime = (MTime*)pList->FindObject("MTime");
-
-    fPedestals = (MPedestalCam*)pList->FindObject("MPedestalCam");
-    if (!fPedestals)
-    {
-        *fLog << err << "MPedestalCam not found... aborting" << endl;
-        return kFALSE;
-    }
-
-    fSignals = (MExtractedSignalCam*)pList->FindObject("MExtractedSignalCam");
-    if (!fSignals)
-    {
-        *fLog << err << "MExtractedSignalCam not found... aborting" << endl;
-        return kFALSE;
-    }
-
-    return kTRUE;
+  
+  fCam = (MCalibrationChargeCam*)pList->FindCreateObj("MCalibrationChargeCam");
+  if (!fCam)
+    return kFALSE;
+  
+  fQECam = (MCalibrationQECam*)pList->FindCreateObj("MCalibrationQECam");
+  if (!fQECam)
+    return kFALSE;
+  
+  fPINDiode = (MCalibrationChargePINDiode*)pList->FindCreateObj("MCalibrationChargePINDiode");
+  if (!fPINDiode)
+    return kFALSE;
+  
+  fBlindPixel = (MCalibrationChargeBlindPix*)pList->FindCreateObj("MCalibrationChargeBlindPix");
+  if (!fBlindPixel)
+    return kFALSE;
+  
+  fEvtTime = (MTime*)pList->FindObject("MTime");
+  
+  fPedestals = (MPedestalCam*)pList->FindObject("MPedestalCam");
+  if (!fPedestals)
+    {
+      *fLog << err << "MPedestalCam not found... aborting" << endl;
+      return kFALSE;
+    }
+  
+  fSignals = (MExtractedSignalCam*)pList->FindObject("MExtractedSignalCam");
+  if (!fSignals)
+    {
+      *fLog << err << "MExtractedSignalCam not found... aborting" << endl;
+      return kFALSE;
+    }
+  
+  return kTRUE;
 }
 
@@ -303,4 +316,19 @@
 // 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.
 //
 Bool_t MCalibrationChargeCalc::ReInit(MParList *pList )
@@ -337,12 +365,15 @@
   for (UInt_t i=0; i<npixels; i++)
     {
-      MCalibrationChargePix &pix = (*fCam)[i];
+      MCalibrationChargePix &pix = (*fCam)      [i];
+      MCalibrationQEPix     &pqe = (*fQECam)    [i];
       MBadPixelsPix         &bad = (*fBadPixels)[i];
 
-      pix.DefinePixId(i);
+      pix.SetPixId(i);
+      pqe.SetPixId(i);
 
       if (bad.IsBad())
       {
           pix.SetExcluded();
+          pqe.SetExcluded();
           continue;
       }
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 3553)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 3554)
@@ -21,4 +21,5 @@
 class MCalibrationChargeBlindPix;
 class MCalibrationChargeCam;
+class MCalibrationQECam;
 class MGeomCam;
 class MExtractedSignalCam;
@@ -29,16 +30,17 @@
 private:
 
-  MPedestalCam               *fPedestals;                 //! Pedestals of all pixels in the camera
-  MCalibrationChargeCam      *fCam;                       // Calibration events of all pixels in the camera
-  MRawEvtData                *fRawEvt;                    //! raw event data (time slices)
-  MRawRunHeader              *fRunHeader;                 //! RunHeader information
-  MGeomCam                   *fGeom;                      //! Geometry information
-  MBadPixelsCam              *fBadPixels;                 //! Bad Pixels information
+  MPedestalCam               *fPedestals;     //! Pedestals of all pixels in the camera
+  MCalibrationChargeCam      *fCam;           // Calibration events of all pixels in the camera
+  MCalibrationQECam          *fQECam;         // Derived Quantum efficiency of all pixels in the camera  
+  MRawEvtData                *fRawEvt;        //! raw event data (time slices)
+  MRawRunHeader              *fRunHeader;     //! RunHeader information
+  MGeomCam                   *fGeom;          //! Geometry information
+  MBadPixelsCam              *fBadPixels;     //! Bad Pixels information
   
-  MTime                      *fEvtTime;                   //! Time of the event
+  MTime                      *fEvtTime;       //! Time of the event
 
-  MExtractedSignalCam        *fSignals;                   // Extracted signal of all pixels in the camera
-  MCalibrationChargePINDiode *fPINDiode;                  // Calibration results of the PIN Diode
-  MCalibrationChargeBlindPix *fBlindPixel;                // Calibration results of the Blind Pixel 
+  MExtractedSignalCam        *fSignals;       // Extracted signal of all pixels in the camera
+  MCalibrationChargePINDiode *fPINDiode;      // Calibration results of the PIN Diode
+  MCalibrationChargeBlindPix *fBlindPixel;    // Calibration results of the Blind Pixel 
 
   Float_t  fNumHiGainSamples; 
@@ -48,5 +50,5 @@
   
   Float_t fConversionHiLo;
-  Int_t   fFlags;                                // Flag for the fits used
+  Int_t   fFlags;                              // Flag for the fits used
 
   enum  { kUseQualityChecks,
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc	(revision 3553)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.cc	(revision 3554)
@@ -217,10 +217,4 @@
   fTotalFFactorCombinedMethod       =  -1.;
 
-}
-
-
-void MCalibrationChargePix::DefinePixId(Int_t i)
-{
-  fPixId = i;
 }
 
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationQEPix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationQEPix.h	(revision 3553)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationQEPix.h	(revision 3554)
@@ -48,5 +48,5 @@
   Bool_t IsQEValid()          const;
 
-  void   SetPixId(const Int_t i)     { fPixId = i; }
+  void SetPixId(const Int_t i)     { fPixId = i; }
 
   // Miscellaneous
