Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 5551)
+++ trunk/MagicSoft/Mars/Changelog	(revision 5552)
@@ -26,4 +26,8 @@
      - fixed some warning about a missing return if __REENTRANT is not
        defined (like in MAC OS X)
+
+   * mcalib/MCalibrationChargeCalc.[h,cc]:
+     - added possibility to set fPedestals directly by pointer
+     - unfolded some Form statements
 
 
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 5551)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 5552)
@@ -354,31 +354,29 @@
 Int_t MCalibrationChargeCalc::PreProcess(MParList *pList)
 {
-  
-  fHeader = (MRawEvtHeader*)pList->FindObject("MRawEvtHeader");
-  if (!fHeader)
-    {
-      *fLog << err << "MRawEvtHeader not found... abort." << endl;
-      return kFALSE;
-    }
-
-  // 
-  // Containers that have to be there.
-  //
-  fPedestals = (MPedestalCam*)pList->FindObject(AddSerialNumber(fNamePedestalCam.Data()), "MPedestalCam");
-  if (!fPedestals)
-    {
-      *fLog << err << fNamePedestalCam.Data() << " not found... aborting" << endl;
-      return kFALSE;
-    }
-  
-  fSignal = (MExtractedSignalCam*)pList->FindObject("MExtractedSignalCam");
-  if (!fSignal)
-    {
-      *fLog << err << "MExtractedSignalCam not found... aborting" << endl;
-      return kFALSE;
-    }
-  
-
-  return kTRUE;
+    fHeader = (MRawEvtHeader*)pList->FindObject("MRawEvtHeader");
+    if (!fHeader)
+    {
+        *fLog << err << "MRawEvtHeader not found... abort." << endl;
+        return kFALSE;
+    }
+
+    fSignal = (MExtractedSignalCam*)pList->FindObject("MExtractedSignalCam");
+    if (!fSignal)
+    {
+        *fLog << err << "MExtractedSignalCam not found... aborting" << endl;
+        return kFALSE;
+    }
+
+    if (fPedestals)
+        return kTRUE;
+
+    fPedestals = (MPedestalCam*)pList->FindObject(AddSerialNumber(fNamePedestalCam), "MPedestalCam");
+    if (!fPedestals)
+    {
+        *fLog << err << fNamePedestalCam << " not found... aborting" << endl;
+        return kFALSE;
+    }
+
+    return kTRUE;
 }
 
@@ -703,19 +701,15 @@
 Int_t MCalibrationChargeCalc::PostProcess()
 {
+    fPedestals=NULL;
 
   if (GetNumExecutions()==0)
     return kFALSE;
-
-  *fLog << endl;
 
   if (fPINDiode)
     if (!fPINDiode->IsValid())
       {
-        *fLog << warn << GetDescriptor() 
-              << ": MCalibrationChargePINDiode is declared not valid... no PIN Diode method! " << endl;
+        *fLog << warn << "MCalibrationChargePINDiode is declared not valid... no PIN Diode method! " << endl;
         fPINDiode = NULL;
       }
-
-  *fLog << endl;
 
   MCalibrationBlindCam  *blindcam  = fIntensBlind   
@@ -760,8 +754,8 @@
   if (nvalid == 0)
   {
-      *fLog << err << GetDescriptor() << ": All pixels have non-valid calibration. " 
+      *fLog << err << "All pixels have non-valid calibration. "
 	    << "Did you forget to fill the histograms "
             << "(filling MHCalibrationChargeCam from MExtractedSignalCam using MFillH) ? " << endl;
-      *fLog << err << GetDescriptor() << ": Or, maybe, you have used a pedestal run " 
+      *fLog << err << "Or, maybe, you have used a pedestal run "
             << "instead of a calibration run " << endl;
       return kFALSE;
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 5551)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 5552)
@@ -196,6 +196,8 @@
       : CLRBIT(fCheckFlags,kCheckOscillations); }
 
-  void SetDebug             ( const Bool_t  b=kTRUE                    ) { b ? SETBIT(fFlags, kDebug) 
-									     : CLRBIT(fFlags, kDebug); }
+  void SetDebug             ( const Bool_t  b=kTRUE                    ) { b ? SETBIT(fFlags, kDebug) : CLRBIT(fFlags, kDebug); }
+
+  void SetPedestals(MPedestalCam *cam) { fPedestals=cam; }
+									 
   void SetFFactorErrLimit   ( const Float_t f=fgFFactorErrLimit        ) { fFFactorErrLimit   = f;     }
   void SetLambdaErrLimit    ( const Float_t f=fgLambdaErrLimit         ) { fLambdaErrLimit    = f;     }
