Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DQM_SiStripCommissioningAnalysis_SamplingAlgorithm_H
0002 #define DQM_SiStripCommissioningAnalysis_SamplingAlgorithm_H
0003 
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "DQM/SiStripCommissioningAnalysis/interface/CommissioningAlgorithm.h"
0006 #include <vector>
0007 
0008 class SamplingAnalysis;
0009 class TProfile;
0010 class TF1;
0011 
0012 /**
0013    @class SamplingAlgorithm
0014    @author C. Delaere
0015    @brief Algorithm for latency run
0016 */
0017 
0018 class SamplingAlgorithm : public CommissioningAlgorithm {
0019 public:
0020   SamplingAlgorithm(const edm::ParameterSet& pset, SamplingAnalysis* const, uint32_t latencyCode = 0);
0021 
0022   ~SamplingAlgorithm() override { ; }
0023 
0024   inline const Histo& histo() const;
0025 
0026 private:
0027   SamplingAlgorithm() { ; }
0028 
0029   void extract(const std::vector<TH1*>&) override;
0030 
0031   void analyse() override;
0032 
0033   void pruneProfile(TProfile* profile) const;
0034 
0035   void correctBinning(TProfile* prof) const;
0036 
0037   void correctProfile(TProfile* profile, float SoNcut = 3.) const;
0038 
0039 private:
0040   /** pulse shape*/
0041   Histo histo_;
0042 
0043   /** Fitter in peak and deconvolution mode */
0044   TF1* deconv_fitter_;
0045   TF1* peak_fitterA_;
0046   TF1* peak_fitterB_;
0047 
0048   /** latency code for fine delay scans */
0049   uint32_t latencyCode_;
0050 
0051   /** SamplingAnalysis object */
0052   SamplingAnalysis* samp_;
0053 };
0054 
0055 #endif  // DQM_SiStripCommissioningAnalysis_SamplingAlgorithm_H