Index: trunk/MagicSoft/Mars/manalysis/MCalibrationBlindPix.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationBlindPix.cc	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationBlindPix.cc	(revision 2699)
@@ -45,5 +45,17 @@
 //
 MCalibrationBlindPix::MCalibrationBlindPix(const char *name, const char *title)
-    : fHist(NULL)
+    : fHist(NULL),
+      fLambda(-1.),
+      fMu0   (-1.),
+      fMu1   (-1.),
+      fSigma0(-1.),
+      fSigma1(-1.),
+      fErrLambda(-1.),
+      fErrMu0   (-1.),
+      fErrMu1   (-1.),
+      fErrSigma0(-1.),
+      fErrSigma1(-1.),
+      fTime     (-1.),
+      fErrTime  (-1.)
 {
 
Index: trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc	(revision 2699)
@@ -1,3 +1,3 @@
-/* ======================================================================== *\
+ /* ======================================================================== *\
 !
 ! *
@@ -279,6 +279,6 @@
 	MExtractedSignalPix &sig =  (*fSignals)[pixid];
         MPedestalPix        &ped =  (*fPedestals)[pixid];
-        Float_t pedrms = ped.GetPedestalRms();
-	Float_t sumhi  = sig.GetExtractedSignalHiGain();
+        Float_t pedrms     = ped.GetPedestalRms();
+	Float_t sumhi      = sig.GetExtractedSignalHiGain();
         
 	if (sumhi < 15.*pedrms )   // cut at 3.5 sigma
@@ -320,9 +320,9 @@
 
 	    if (!blindpixel.FillCharge(sumhi)) 
-	      *fLog << warn << 
+	      *fLog << err << 
 		"Overflow or Underflow occurred filling Blind Pixel sum = " << sumhi << endl;
 
 	    if (!blindpixel.FillTime((int)mtime)) 
-	      *fLog << warn << 
+	      *fLog << err << 
 		"Overflow or Underflow occurred filling Blind Pixel time = " << mtime << endl;
 	    
@@ -412,11 +412,7 @@
   if (TESTBIT(fFlags,kUseBlindPixelFit))
     {
-      if (blindpixel.FitCharge())
-	    *fLog << err << dbginf << "Could not fit the blind pixel " << endl;
-      else
-	  *fLog << err << dbginf << "Could not fit the blind pixel " << endl;
-
-      if (!blindpixel.FitTime())
-        *fLog << warn << "Could not the Times of the blind pixel " << endl;
+
+      if (!blindpixel.FitCharge())
+        *fLog << err << dbginf << "Could not fit the blind pixel " << endl;
 
       blindpixel.Draw();
Index: trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.h	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.h	(revision 2699)
@@ -47,10 +47,5 @@
    
 
-  enum
-    {
-      kUseTimeFits = 1,
-      kUseBlindPixelFit = 2,
-      kUsePinDiodeFit = 3
-    };
+  enum  { kUseTimeFits, kUseBlindPixelFit, kUsePinDiodeFit };
 
 public:
Index: trunk/MagicSoft/Mars/manalysis/MCalibrationCam.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationCam.cc	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationCam.cc	(revision 2699)
@@ -232,4 +232,5 @@
 void MCalibrationCam::Print(Option_t *o) const
 {
+
     *fLog << all << GetDescriptor() << ":" << endl;
     int id = 0;
@@ -243,5 +244,5 @@
     {
 
-      if (pix->GetCharge() >= 0.)
+      if (pix->GetCharge() >= 0.) 
 	{
 	  *fLog << pix->GetPixId() << " Pedestals: " << pix->GetPed() << " +- " << pix->GetPedRms() 
@@ -321,6 +322,9 @@
       break;
     case 15:
-      val = ((*this)[idx].GetSigmaCharge()/(*this)[idx].GetCharge())*
-	    ((*this)[idx].GetSigmaCharge()/(*this)[idx].GetCharge());
+      if ((*this)[idx].GetCharge() != 0.)
+        val = ((*this)[idx].GetSigmaCharge()/(*this)[idx].GetCharge())*
+              ((*this)[idx].GetSigmaCharge()/(*this)[idx].GetCharge());
+      else
+        val = -1.;
       break;
     case 11:
@@ -337,15 +341,8 @@
       break;
     case 14:
-      if ((fMeanPhotInsidePlexiglass > 0. ) && ((*this)[idx].GetCharge() != -1.))
-	{
-	  if (idx < 397)
-	    val = fMeanPhotInsidePlexiglass / (*this)[idx].GetCharge();
-	  else 
-	    val = fMeanPhotInsidePlexiglass*gkCalibrationOutervsInnerPixelArea / (*this)[idx].GetCharge();
-	} 
-      else
-	{
-	  val = -1.;
-	}
+      if (idx < 397)
+        val = (*this)[idx].GetMeanConversionBlindPixelMethod();
+      else 
+        val = (*this)[idx].GetMeanConversionBlindPixelMethod()*gkCalibrationOutervsInnerPixelArea;
       break;
     default:
@@ -398,9 +395,12 @@
   fNumPhotInsidePlexiglassAvailable = kTRUE;
 
+  *fLog << endl;
+  *fLog << mean << " Mean number of Photons for an Inner Pixel: " << fMeanPhotInsidePlexiglass << endl;
+  *fLog << endl;
+
   TIter Next(fPixels);
   MCalibrationPix *pix;
   while ((pix=(MCalibrationPix*)Next()))
     {
-      
       if((pix->GetCharge() > 0.) && (fMeanPhotInsidePlexiglass > 0.))
 	pix->SetConversionBlindPixelMethod(fMeanPhotInsidePlexiglass/pix->GetCharge(), 0., 0.);
Index: trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc	(revision 2699)
@@ -112,5 +112,5 @@
     fHist->SetLowerFitRange(1.5*fPedRms);
   else
-    *fLog << warn << "Cannot set lower fit range to suppress cosmics: Pedestals not available" << endl;
+    *fLog << warn << "Cannot set lower fit range: Pedestals not available" << endl;
 
   if (fHist->UseLoGain())
@@ -145,34 +145,39 @@
   if ((fPed > 0.)  && (fPedRms > 0.))
     {
+      
+      Float_t pedrmssquare = fPedRms*fPedRms;
+      Float_t sigmasquare  = fSigmaCharge*fSigmaCharge;
 
       if (fHiGainSaturation)
 	{
-	  
-	  Float_t nsb = TMath::Sqrt(fPedRms*fPedRms - fElectronicPedRms*fElectronicPedRms);
+          
+          Float_t logainrmssquare = fElectronicPedRms*fElectronicPedRms;
+          Float_t nsbsquare       = pedrmssquare - logainrmssquare;
 	  //	  Float_t logainrms = fElectronicPedRms + (TMath::Sqrt(fPedRms*fPedRms - fElectronicPedRms*fElectronicPedRms));
 
-	  if (nsb > 0.)
-	    {
-	      Float_t logainrms = (TMath::Sqrt(nsb*nsb + 100.*fElectronicPedRms*fElectronicPedRms));
-	      fRSigmaSquare = (fSigmaCharge*fSigmaCharge) - (logainrms*logainrms);
-	    }
-	  else
-	    fRSigmaSquare =  fSigmaCharge*fSigmaCharge - (100.*fElectronicPedRms*fElectronicPedRms);
-	}
-      else
-	fRSigmaSquare = (fSigmaCharge*fSigmaCharge) - (fPedRms*fPedRms);
-
-    if (fRSigmaSquare > 0. )
-      {
-       fPheFFactorMethod         =  fFactor * fCharge*fCharge / fRSigmaSquare;
+	  if (nsbsquare > 0.)
+	      logainrmssquare = nsbsquare/100. + logainrmssquare;
+
+          fRSigmaSquare = sigmasquare - logainrmssquare;
+
+          if (fRSigmaSquare > 0.)
+            fPheFFactorMethod = fFactor*(fCharge*fCharge/100.) / fRSigmaSquare;
+
+	}
+      else  /* if (fHiGainSaturation) */
+        {
+          fRSigmaSquare = sigmasquare - pedrmssquare;
+          fPheFFactorMethod   =  fFactor * fCharge*fCharge / fRSigmaSquare;
+        }
+      
+
+      if (fCharge > 0.)
        fConversionFFactorMethod  =  fPheFFactorMethod /  fCharge ;
-      }
-    else
-      {
+
+      else  
 	*fLog << warn << "Cannot apply F-Factor method: Reduced Sigmas are smaller than 0 in pixel: " 
 	      << fPixId << endl;
-      }
-
-    }
+
+    } /*   if ((fPed > 0.)  && (fPedRms > 0.)) */
 
   return kTRUE;
Index: trunk/MagicSoft/Mars/manalysis/MCalibrationPix.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MCalibrationPix.h	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MCalibrationPix.h	(revision 2699)
@@ -68,5 +68,5 @@
   Float_t GetTimeChiSquare()  const    { return fTimeChiSquare;  }    
   
- Float_t GetPed()            const    { return fPed;            }
+  Float_t GetPed()            const    { return fPed;            }
   Float_t GetPedRms()         const    { return fPedRms;         }    
 
@@ -109,14 +109,14 @@
   void   SetChargesInGraph(Float_t qhi,Float_t qlo) { fHist->SetPointInGraph(qhi,qlo); }
 
-  Bool_t FillChargeHiGain(Float_t q)   { return fHist->FillChargeHiGain(q); }
-  Bool_t FillTimeHiGain(Int_t t)       { return fHist->FillTimeHiGain(t); }  
-  Bool_t FillRChargevsTimeHiGain(Float_t rq, Int_t t) { return fHist->FillChargevsNHiGain(rq,t); }    
+  Bool_t FillChargeHiGain(Float_t q)                   { return fHist->FillChargeHiGain(q); }
+  Bool_t FillTimeHiGain(Int_t t)                       { return fHist->FillTimeHiGain(t); }  
+  Bool_t FillRChargevsTimeHiGain(Float_t rq, Int_t t)  { return fHist->FillChargevsNHiGain(rq,t); }    
 
-  Bool_t FillChargeLoGain(Float_t q)   { return fHist->FillChargeLoGain(q); }
-  Bool_t FillTimeLoGain(Int_t t)       { return fHist->FillTimeLoGain(t); }  
-  Bool_t FillRChargevsTimeLoGain(Float_t rq, Int_t t) { return fHist->FillChargevsNLoGain(rq,t); }    
+  Bool_t FillChargeLoGain(Float_t q)                   { return fHist->FillChargeLoGain(q); }
+  Bool_t FillTimeLoGain(Int_t t)                       { return fHist->FillTimeLoGain(t); }  
+  Bool_t FillRChargevsTimeLoGain(Float_t rq, Int_t t)  { return fHist->FillChargevsNLoGain(rq,t); }    
   
-  Bool_t IsValid()            const    { return fCharge >=0 || fErrCharge >= 0; }
-  Int_t  GetPixId()           const    { return fPixId;   }
+  Bool_t IsValid()                               const  { return fCharge >= 3.*GetPedRms() || fErrCharge >= 0; }
+  Int_t  GetPixId()                              const  { return fPixId;   }
   void   DefinePixId(Int_t i);
   
Index: trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2699)
@@ -127,4 +127,8 @@
     fSignals->InitSize(cam->GetNumPixels());    
 
+
+    fSignals->SetNumUsedFADCSlices(fNumHiGainSamples,fFirst,fFirst+fNumHiGainSamples-1,
+				   fNumLoGainSamples,fFirst,fFirst+fNumLoGainSamples-1);
+
     return kTRUE;
 }
@@ -182,6 +186,6 @@
 
 	ptr   = pixel.GetLoGainSamples();
-        first = ptr + fFirst;
-        last  = ptr + fFirst + fNumLoGainSamples;
+        first = ptr + fFirst + 1;
+        last  = ptr + fFirst + fNumLoGainSamples +1;
 	Byte_t maxlo  = 0;
 	Byte_t midlo  = 0;
@@ -222,6 +226,5 @@
       } /* while (pixel.Next()) */
 
-    fSignals->SetNumUsedFADCSlices(fNumHiGainSamples,fFirst,fFirst+fNumHiGainSamples-1,
-				   fNumLoGainSamples,fFirst,fFirst+fNumLoGainSamples-1);
+
     fSignals->SetReadyToSave();
 
Index: trunk/MagicSoft/Mars/manalysis/MExtractedSignalCam.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MExtractedSignalCam.h	(revision 2695)
+++ trunk/MagicSoft/Mars/manalysis/MExtractedSignalCam.h	(revision 2699)
@@ -47,5 +47,5 @@
 
     void   SetNumUsedFADCSlices(Byte_t numh, Byte_t firsth, Byte_t lasth, 
-				Byte_t numl, Byte_t firstl, Byte_t lastl)   
+			Byte_t numl, Byte_t firstl, Byte_t lastl)   
                                            { 
 					     fNumUsedHiGainFADCSlices = numh;
