00001 #ifndef DQM_SiStripCommissioningAnalysis_CalibrationAlgorithm_H 00002 #define DQM_SiStripCommissioningAnalysis_CalibrationAlgorithm_H 00003 00004 #include "DQM/SiStripCommissioningAnalysis/interface/CommissioningAlgorithm.h" 00005 #include <vector> 00006 00007 class CalibrationAnalysis; 00008 class TH1; 00009 class TF1; 00010 00017 class CalibrationAlgorithm : public CommissioningAlgorithm { 00018 00019 public: 00020 00021 CalibrationAlgorithm( CalibrationAnalysis* const ); 00022 00023 virtual ~CalibrationAlgorithm() {;} 00024 00025 inline const Histo& histo( int i ) const { return histo_[i]; } 00026 00027 private: 00028 00029 CalibrationAlgorithm() {;} 00030 00031 virtual void extract( const std::vector<TH1*>& ); 00032 00033 void analyse(); 00034 00035 void correctDistribution( TH1* ) const; 00036 00037 TF1* fitPulse( TH1*, 00038 float rangeLow = 0, 00039 float rangeHigh = -1 ); 00040 00041 float maximum( TH1* ); 00042 00043 float turnOn( TH1* ); 00044 00045 private: 00046 00048 Histo histo_[32]; 00049 00051 TF1* deconv_fitter_; 00054 TF1* peak_fitter_; 00055 00056 CalibrationAnalysis* cal_; 00057 00058 }; 00059 00060 #endif // DQM_SiStripCommissioningAnalysis_CalibrationAlgorithm_H 00061