Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 3720)
+++ trunk/MagicSoft/Mars/Changelog	(revision 3721)
@@ -45,4 +45,8 @@
    * msignal/MExtractedSignalCam.cc
      - intialize variables by default to 0. 
+
+   * mcalib/MHCalibrationChargeCam.[h,cc]
+     - pointer to fSig is not stored, somehow, when running MJCalibration
+       Don't know why. Removed and stored some variables instead
 
 
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 3720)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 3721)
@@ -160,5 +160,5 @@
 //
 MHCalibrationChargeCam::MHCalibrationChargeCam(const char *name, const char *title)
-    : fRawEvt(NULL), fSig(NULL)
+    : fRawEvt(NULL)
 {
   fName  = name  ? name  : "MHCalibrationChargeCam";
@@ -175,9 +175,8 @@
 // Gets the pointers to:
 // - MRawEvtData
-// - MExtractedSignalCam
 //
 Bool_t MHCalibrationChargeCam::SetupHists(const MParList *pList)
 {
-  
+
   fRawEvt = (MRawEvtData*)pList->FindObject("MRawEvtData");
   if (!fRawEvt)
@@ -187,11 +186,4 @@
   }
 
-  MExtractedSignalCam *fSig = (MExtractedSignalCam*)pList->FindObject("MExtractedSignalCam");
-  if (!fSig)
-  {
-      *fLog << err << "MExtractedSignalCam not found... abort." << endl;
-      return kFALSE;
-  }
-
   return kTRUE;
 }
@@ -200,4 +192,5 @@
 //
 // Gets or creates the pointers to:
+// - MExtractedSignalCam
 // - MCalibrationChargeCam
 // - MBadPixelsCam
@@ -231,4 +224,11 @@
 {
 
+  MExtractedSignalCam *signal = (MExtractedSignalCam*)pList->FindObject("MExtractedSignalCam");
+  if (!signal)
+  {
+      *fLog << err << "MExtractedSignalCam not found... abort." << endl;
+      return kFALSE;
+  }
+
   fCam = (MCalibrationCam*)pList->FindObject("MCalibrationChargeCam");
   if (!fCam)
@@ -244,6 +244,11 @@
     }
 
-  const Float_t numhigain = fSig->GetNumUsedHiGainFADCSlices();
-  const Float_t numlogain = fSig->GetNumUsedLoGainFADCSlices();  
+  fFirstHiGain = signal->GetFirstUsedSliceHiGain();
+  fLastHiGain  = signal->GetLastUsedSliceHiGain();
+  fFirstLoGain = signal->GetFirstUsedSliceLoGain();
+  fLastLoGain  = signal->GetLastUsedSliceLoGain();
+
+  const Float_t numhigain = signal->GetNumUsedHiGainFADCSlices();
+  const Float_t numlogain = signal->GetNumUsedLoGainFADCSlices();  
 
   if (fCam->GetNumHiGainFADCSlices() == 0.)
@@ -252,8 +257,8 @@
     {
       *fLog << err << GetDescriptor() 
-            << ": Number of High Gain FADC extraction slices has changes, abort..." << endl;
+            << ": Number of High Gain FADC extraction slices has changed, abort..." << endl;
       return kFALSE;
     }
-  
+
   if (fCam->GetNumLoGainFADCSlices() == 0.)
     fCam->SetNumLoGainFADCSlices ( numlogain );
@@ -310,4 +315,5 @@
       }
   }
+
 
   if (fAverageLoGainAreas->GetEntries()==0)
@@ -561,10 +567,4 @@
 {
 
-  const Byte_t firsthi = fSig->GetFirstUsedSliceHiGain();
-  const Byte_t lasthi  = fSig->GetLastUsedSliceHiGain();
-  const Byte_t firstlo = fSig->GetFirstUsedSliceLoGain();
-  const Byte_t lastlo  = fSig->GetLastUsedSliceLoGain();
-
-
   for (Int_t i=0; i<fHiGainArray->GetSize(); i++)
     {
@@ -584,5 +584,5 @@
         }
 
-      FinalizeAbsTimes(histhi, pix, bad, firsthi, lasthi);
+      FinalizeAbsTimes(histhi, pix, bad, fFirstHiGain, fLastHiGain);
     }
 
@@ -607,5 +607,5 @@
       
       if (pix.IsHiGainSaturation())
-        FinalizeAbsTimes(histlo, pix, bad, firstlo, lastlo);
+        FinalizeAbsTimes(histlo, pix, bad, fFirstLoGain, fLastLoGain);
     }
 
@@ -624,5 +624,5 @@
         }
 
-      FinalizeAbsTimes(histhi, pix, bad, firsthi, lasthi);
+      FinalizeAbsTimes(histhi, pix, bad, fFirstHiGain, fLastHiGain);
    }
   
@@ -642,5 +642,5 @@
 
       if (pix.IsHiGainSaturation())
-        FinalizeAbsTimes(histlo, pix, bad, firstlo, lastlo);
+        FinalizeAbsTimes(histlo, pix, bad, fFirstLoGain, fLastLoGain);
     }
 
@@ -659,5 +659,5 @@
         }
 
-      FinalizeAbsTimes(histhi, pix, bad, firsthi, lasthi);
+      FinalizeAbsTimes(histhi, pix, bad, fFirstHiGain, fLastHiGain);
     }
   
@@ -678,5 +678,5 @@
 
       if (pix.IsHiGainSaturation())
-        FinalizeAbsTimes(histlo, pix, bad, firstlo, lastlo);
+        FinalizeAbsTimes(histlo, pix, bad, fFirstLoGain, fLastLoGain);
     }
   
@@ -721,5 +721,5 @@
     {
       *fLog << warn << GetDescriptor() 
-            << Form("%s%3.1f%s%2i%s%4i",": Mean ArrivalTime: ",mean," smaller than ",fTimeLowerLimit,
+            << Form("%s%3.1f%s%2.0f%s%4i",": Mean ArrivalTime: ",mean," smaller than ",fTimeLowerLimit,
                     " FADC slices from lower edge in pixel ",hist.GetPixId()) << endl;
       bad.SetUncalibrated( MBadPixelsPix::kMeanTimeInFirstBin );
@@ -729,5 +729,5 @@
     {
       *fLog << warn << GetDescriptor() 
-            << Form("%s%3.1f%s%2i%s%4i",": Mean ArrivalTime: ",mean," greater than ",fTimeUpperLimit,
+            << Form("%s%3.1f%s%2.0f%s%4i",": Mean ArrivalTime: ",mean," greater than ",fTimeUpperLimit,
                     " FADC slices from upper edge in pixel ",hist.GetPixId()) << endl;
       bad.SetUncalibrated( MBadPixelsPix::kMeanTimeInLast2Bins );
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h	(revision 3720)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h	(revision 3721)
@@ -23,7 +23,10 @@
   Float_t fTimeLowerLimit;            // Limit dist. to first signal slice (in units of FADC slices) 
   Float_t fTimeUpperLimit;            // Limit dist. to last signal slice  (in units of FADC slices) 
-
+  Byte_t  fFirstHiGain;               // First used slice High Gain 
+  Byte_t  fLastHiGain;                // Last used slice High Gain
+  Byte_t  fFirstLoGain;               // First used slice Low Gain
+  Byte_t  fLastLoGain;                // Last used slice Low Gain
+  
   MRawEvtData         *fRawEvt;       //!  Raw event data 
-  MExtractedSignalCam *fSig;          //!  Signal Extractor
 
   Bool_t SetupHists(const MParList *pList);
