Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DQM_SiStripCommissioningAnalysis_CommissioningAlgorithm_H
0002 #define DQM_SiStripCommissioningAnalysis_CommissioningAlgorithm_H
0003 
0004 #include <vector>
0005 #include <string>
0006 #include <cstdint>
0007 
0008 class CommissioningAlgorithm;
0009 class CommissioningAnalysis;
0010 class TH1;
0011 
0012 /**
0013    @class CommissioningAlgorithm
0014    @author R.Bainbridge 
0015    @brief 
0016 */
0017 class CommissioningAlgorithm {
0018 public:
0019   CommissioningAlgorithm(CommissioningAnalysis* const);
0020 
0021   CommissioningAlgorithm();
0022 
0023   virtual ~CommissioningAlgorithm() { ; }
0024 
0025   typedef std::pair<TH1*, std::string> Histo;
0026 
0027   /** Performs histogram analysis. */
0028   void analysis(const std::vector<TH1*>&);
0029 
0030 protected:
0031   /** Extracts FED key from histogram title. */
0032   uint32_t extractFedKey(const TH1* const);
0033 
0034   /** Extracts and organises histograms. */
0035   virtual void extract(const std::vector<TH1*>&) = 0;
0036 
0037   /** Performs histogram anaylsis. */
0038   virtual void analyse() = 0;
0039 
0040   /** Analysis class. */
0041   inline CommissioningAnalysis* const anal() const;
0042 
0043 private:
0044   /** Analysis class. */
0045   CommissioningAnalysis* anal_;
0046 };
0047 
0048 // ---------- inline methods ----------
0049 
0050 CommissioningAnalysis* const CommissioningAlgorithm::anal() const { return anal_; }
0051 
0052 #endif  // DQM_SiStripCommissioningAnalysis_CommissioningAlgorithm_H