Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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