00001 #ifndef DQM_SiStripCommissioningAnalysis_CommissioningAlgorithm_H 00002 #define DQM_SiStripCommissioningAnalysis_CommissioningAlgorithm_H 00003 00004 #include <vector> 00005 #include <string> 00006 #include <stdint.h> 00007 00008 class CommissioningAlgorithm; 00009 class CommissioningAnalysis; 00010 class TH1; 00011 00017 class CommissioningAlgorithm { 00018 00019 public: 00020 00021 CommissioningAlgorithm( CommissioningAnalysis* const ); 00022 00023 CommissioningAlgorithm(); 00024 00025 virtual ~CommissioningAlgorithm() {;} 00026 00027 typedef std::pair<TH1*,std::string> Histo; 00028 00030 void analysis( const std::vector<TH1*>& ); 00031 00032 protected: 00033 00035 uint32_t extractFedKey( const TH1* const ); 00036 00038 virtual void extract( const std::vector<TH1*>& ) = 0; 00039 00041 virtual void analyse() = 0; 00042 00044 inline CommissioningAnalysis* const anal() const; 00045 00046 private: 00047 00049 CommissioningAnalysis* anal_; 00050 00051 }; 00052 00053 // ---------- inline methods ---------- 00054 00055 CommissioningAnalysis* const CommissioningAlgorithm::anal() const { return anal_; } 00056 00057 #endif // DQM_SiStripCommissioningAnalysis_CommissioningAlgorithm_H 00058