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