CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/DQM/SiStripCommissioningAnalysis/interface/CalibrationAlgorithm.h

Go to the documentation of this file.
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