CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/DQM/SiStripCommissioningAnalysis/interface/CommissioningAlgorithm.h

Go to the documentation of this file.
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