Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h	(revision 7028)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h	(revision 7043)
@@ -24,13 +24,13 @@
 private:
 
-  static const Int_t   fgChargeHiGainNbins;          //! Nr. bins of HiGain Histograms  (now set to:  550  )
-  static const Axis_t  fgChargeHiGainFirst;          //! First Bin of HiGain Histograms (now set to: -100.5)
-  static const Axis_t  fgChargeHiGainLast;           //! Last Bin of HiGain Histograms  (now set to:  999.5)
-  static const Int_t   fgChargeLoGainNbins;          //! First Bin of LoGain Histograms (now set to:  325  )
-  static const Axis_t  fgChargeLoGainFirst;          //! First Bin of LoGain Histograms (now set to: -150.5)
-  static const Axis_t  fgChargeLoGainLast;           //! Last Bin of LoGain Histograms  (now set to:  499.5)
-  static const Float_t fgProbLimit;                  //! The default for fProbLimit    (now set to: 0.00001)
+  static const Int_t   fgChargeHiGainNbins;          //! Nr. bins of HiGain Histograms
+  static const Axis_t  fgChargeHiGainFirst;          //! First Bin of HiGain Histograms
+  static const Axis_t  fgChargeHiGainLast;           //! Last Bin of HiGain Histograms
+  static const Int_t   fgChargeLoGainNbins;          //! First Bin of LoGain Histograms
+  static const Axis_t  fgChargeLoGainFirst;          //! First Bin of LoGain Histograms
+  static const Axis_t  fgChargeLoGainLast;           //! Last Bin of LoGain Histograms
+  static const Float_t fgProbLimit;                  //! The default for fProbLimit
   
-  static const TString fgReferenceFile;              //! default for fReferenceFile ("mjobs/calibrationref.rc")
+  static const TString fgReferenceFile;              //! default for fReferenceFile
 
   static const TString gsHistName;                   //! Default Histogram names
@@ -44,13 +44,13 @@
   static const TString gsAbsHistYTitle;              //! Default Histogram y-axis titles abs.times
   
-  static const Float_t fgNumHiGainSaturationLimit;   //! The default for fNumHiGainSaturationLimit (now at: 0.01)
-  static const Float_t fgNumLoGainSaturationLimit;   //! The default for fNumLoGainSaturationLimit (now at: 0.005)
+  static const Float_t fgNumHiGainSaturationLimit;   //! The default for fNumHiGainSaturationLimit
+  static const Float_t fgNumLoGainSaturationLimit;   //! The default for fNumLoGainSaturationLimit
 
-  static const Float_t fgTimeLowerLimit;             //! Default for fTimeLowerLimit    (now set to: 1.) 
-  static const Float_t fgTimeUpperLimit;             //! Default for fTimeUpperLimit    (now set to: 2.)
+  static const Float_t fgTimeLowerLimit;             //! Default for fTimeLowerLimit
+  static const Float_t fgTimeUpperLimit;             //! Default for fTimeUpperLimit
   
-  Int_t   fLoGainNbins;                              // Number of LoGain bins        
+  Int_t   fLoGainNbins;                              // Number of LoGain bins
   Axis_t  fLoGainFirst;                              // Lower histogram limit low gain
-  Axis_t  fLoGainLast;                               // Upper histogram limit low gain  
+  Axis_t  fLoGainLast;                               // Upper histogram limit low gain
 
   TString fAbsHistName;                              // Histogram names abs.times
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.cc	(revision 7028)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.cc	(revision 7043)
@@ -191,4 +191,8 @@
   fHRmsCharge.SetBins(fRmsChargeNbins,fRmsChargeFirst,fRmsChargeLast);
 
+  fExclusionMean  = 0;
+  fExclusionSigma = 0;  
+  fExclusionChi2  = 0;
+
   return kTRUE;
 
@@ -250,9 +254,28 @@
   const Float_t signal = (float)extractor->GetExtractedSignal();
   const Float_t time   = extractor->GetExtractedTime();
-  const Float_t rms    = extractor->GetExtractedRms();
-
+  const Float_t sigma    = extractor->GetExtractedSigma();
+  const Float_t chi2    = extractor->GetExtractedChi2();
+
+  if (time < 3. || time > 24.)
+    {
+      fExclusionMean++;
+      return kTRUE;
+    }
+  
+  if (sigma < 5. || sigma > 18.)
+    {
+      fExclusionSigma++;
+      return kTRUE;
+    }
+  
+  if (chi2  > 0.35)
+    {
+      fExclusionChi2++;
+      return kTRUE;
+    }
+  
   FillHistAndArray(signal);
   FillAbsTime(time);
-  FillRmsCharge(rms);
+  FillRmsCharge(sigma);
 
   return kTRUE;
@@ -293,7 +316,4 @@
   FitRmsCharge();
 
-  CreateFourierSpectrum();
-  fPINDiode->SetOscillating  ( !IsFourierSpectrumOK() );
-
   fPINDiode->SetMean     (  fMean     );
   fPINDiode->SetMeanVar  (  fMeanErr  * fMeanErr );
@@ -311,27 +331,4 @@
 
   fPINDiode->SetValid(kTRUE);
-
-  const Byte_t  loweredge  = fSigPIN->GetFirstUsedSlice();
-  const Byte_t  upperedge  = fSigPIN->GetLastUsedSlice();
-  const Float_t lowerlimit = (Float_t)loweredge + fTimeLowerLimit;
-  const Float_t upperlimit = (Float_t)upperedge + fTimeUpperLimit;  
-
-  if (GetAbsTimeMean() < lowerlimit)
-    {
-      *fLog << warn << GetDescriptor() 
-            << Form("%s%3.1f%s%2.1f%s",": Mean ArrivalTime: ",GetAbsTimeMean()," smaller than ",
-                    lowerlimit," FADC slices from lower edge in PIN Diode") << endl;
-      *fLog << warn << GetDescriptor() << ": No PIN Diode calibration!! " << endl;
-      fPINDiode->SetValid(kFALSE);
-    }
-  
-  if ( GetAbsTimeMean() > upperlimit )
-    {
-      *fLog << warn << GetDescriptor() 
-            << Form("%s%3.1f%s%2.1f%s",": Mean ArrivalTime: ",GetAbsTimeMean()," bigger than ",
-                    upperlimit," FADC slices from upper edge in PIN Diode") << endl;
-      *fLog << warn << GetDescriptor() << ": No PIN Diode calibration!! " << endl;
-      fPINDiode->SetValid(kFALSE);
-    }
 
   return kTRUE;
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.h
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.h	(revision 7028)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.h	(revision 7043)
@@ -60,4 +60,8 @@
   Float_t fTimeLowerLimit;                //  Limit dist. to first signal slice (units: FADC slices) 
   Float_t fTimeUpperLimit;                //  Limit dist. to last signal slice  (units: FADC slices) 
+
+  Int_t   fExclusionMean;                 //  Number of events excluded by deviating mean
+  Int_t   fExclusionSigma;                //  Number of events excluded by deviating sigma
+  Int_t   fExclusionChi2;                 //  Number of events excluded by deviating chi2
   
 public:
@@ -77,9 +81,14 @@
         TH1F *GetHRmsCharge()                  { return &fHRmsCharge;       }
   const TH1F *GetHRmsCharge()            const { return &fHRmsCharge;       }
-  Float_t     GetRmsChargeMean()         const { return fRmsChargeMean;     }
-  Float_t     GetRmsChargeMeanErr()      const { return fRmsChargeMeanErr;  }
-  Float_t     GetRmsChargeSigma()        const { return fRmsChargeSigma;    }
-  Float_t     GetRmsChargeSigmaErr()     const { return fRmsChargeSigmaErr; }
+  Float_t     GetRmsChargeMean()      const { return fRmsChargeMean;     }
+  Float_t     GetRmsChargeMeanErr()   const { return fRmsChargeMeanErr;  }
+  Float_t     GetRmsChargeSigma()     const { return fRmsChargeSigma;    }
+  Float_t     GetRmsChargeSigmaErr()  const { return fRmsChargeSigmaErr; }
 
+  Int_t       GetExclusionMean()      const { return fExclusionMean;     }
+  Int_t       GetExclusionSigma()     const { return fExclusionSigma;    }
+  Int_t       GetExclusionChi2()      const { return fExclusionChi2;     }
+  
+  
   // Fill histos
   Bool_t FillRmsCharge(const Float_t q);
@@ -108,5 +117,5 @@
   void SetHistYTitle( const char *name )  { fHistYTitle = name; }
    
-  ClassDef(MHCalibrationChargePINDiode, 1)  // Histogram class for Charge PIN Diode Calibration 
+  ClassDef(MHCalibrationChargePINDiode, 2)  // Histogram class for Charge PIN Diode Calibration 
 };
 
