Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:08:28

0001 #ifndef DQM_SiStripCommissioningAnalysis_CalibrationAlgorithm_H
0002 #define DQM_SiStripCommissioningAnalysis_CalibrationAlgorithm_H
0003 
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "DQM/SiStripCommissioningAnalysis/interface/CommissioningAlgorithm.h"
0006 #include <vector>
0007 #include <map>
0008 
0009 class CalibrationAnalysis;
0010 class TH1;
0011 class TF1;
0012 
0013 /**
0014    @class CalibrationAlgorithm
0015    @author C. Delaere
0016    @brief Algorithm for calibration runs
0017 */
0018 
0019 class CalibrationAlgorithm : public CommissioningAlgorithm {
0020 public:
0021   CalibrationAlgorithm(const edm::ParameterSet& pset, CalibrationAnalysis* const);
0022   ~CalibrationAlgorithm() override { ; }
0023 
0024   inline const Histo& histo(int& i) { return histo_[i]; }
0025 
0026 private:
0027   CalibrationAlgorithm() { ; }
0028 
0029   void extract(const std::vector<TH1*>&) override;
0030 
0031   void analyse() override;
0032 
0033   void correctDistribution(TH1*) const;
0034 
0035   float baseLine(TF1*);
0036   float turnOn(TF1*, const float&);
0037   float decayTime(TF1*);
0038 
0039 private:
0040   /** pulse shape*/
0041   std::vector<Histo> histo_;
0042   std::vector<int> stripId_;
0043   std::vector<int> calChan_;
0044   std::vector<int> apvId_;
0045 
0046   /** analysis object */
0047   CalibrationAnalysis* cal_;
0048 };
0049 
0050 #endif  // DQM_SiStripCommissioningAnalysis_CalibrationAlgorithm_H