CMS 3D CMS Logo

CommissioningTask.h

Go to the documentation of this file.
00001 #ifndef DQM_SiStripCommissioningSources_CommissioningTask_H
00002 #define DQM_SiStripCommissioningSources_CommissioningTask_H
00003 
00004 #include "CondFormats/SiStripObjects/interface/FedChannelConnection.h"
00005 #include "DataFormats/Common/interface/DetSet.h"
00006 #include "DataFormats/SiStripCommon/interface/SiStripEventSummary.h"
00007 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h"
00008 #include "boost/cstdint.hpp"
00009 #include <vector>
00010 #include <string>
00011 #include <iomanip>
00012 
00013 class TAxis;
00014 class DQMStore;
00015 class MonitorElement;
00016 namespace edm { class EventSetup; }
00017 
00021 class CommissioningTask {
00022 
00023  public: 
00024   
00025   // ---------- Constructors, destructors ----------
00026 
00027   CommissioningTask( DQMStore*, 
00028                      const FedChannelConnection&,
00029                      const std::string& my_name );
00030 
00031   virtual ~CommissioningTask();
00032 
00033   // ---------- Classes, structs ----------
00034   
00037   class HistoSet {
00038   public:
00039     HistoSet();
00040     void histo( MonitorElement* );
00041     MonitorElement* histo();
00042     uint32_t bin( float value );
00043     std::vector<float> vNumOfEntries_;
00044     std::vector<float> vSumOfContents_;
00045     std::vector<double> vSumOfSquares_;
00046     bool isProfile_;
00047   private:
00048     MonitorElement* histo_;
00049     TAxis* axis_;
00050   };
00051   
00052   // ---------- Public methods ----------
00053   
00055   void bookHistograms();
00056   
00058   void fillHistograms( const SiStripEventSummary&, 
00059                        const edm::DetSet<SiStripRawDigi>& );
00060   
00062   void fillHistograms( const SiStripEventSummary&, 
00063                        const uint16_t& fed_id,
00064                        const std::map<uint16_t,float>& fed_ch );
00065   
00067   void updateHistograms();
00068 
00070   inline const uint32_t& fillCntr() const;
00071   
00073   inline const uint32_t& updateFreq() const;
00074 
00076   inline void updateFreq( const uint32_t& );
00077   
00079   inline const std::string& myName() const;
00080 
00082   inline void eventSetup( const edm::EventSetup* );
00083 
00084  protected: 
00085   
00086   // ---------- Protected methods ----------
00087   
00089   void updateHistoSet( HistoSet&, const uint32_t& bin, const float& value );
00090 
00092   void updateHistoSet( HistoSet&, const uint32_t& bin );
00093 
00095   void updateHistoSet( HistoSet&, const float& value );
00096 
00098   void updateHistoSet( HistoSet& );
00099   
00101   inline DQMStore* const dqm() const;
00102 
00104   inline const FedChannelConnection& connection() const;
00105   
00107   inline const uint32_t& fecKey() const;
00108 
00110   inline const uint32_t& fedKey() const;
00111 
00113   inline const edm::EventSetup* const eventSetup() const;
00114   
00115  private: 
00116   
00117   // ---------- Private methods ----------
00118 
00119   CommissioningTask() {;}
00120   
00121   virtual void book();
00122 
00123   virtual void fill( const SiStripEventSummary&,
00124                      const edm::DetSet<SiStripRawDigi>& );
00125 
00126   virtual void fill( const SiStripEventSummary&, 
00127                      const uint16_t& fed_id,
00128                      const std::map<uint16_t,float>& fed_ch );
00129 
00130   virtual void update();
00131   
00132   // ---------- Private member data ----------
00133 
00134   DQMStore* dqm_;
00135   
00136   uint32_t updateFreq_;
00137   
00138   uint32_t fillCntr_;
00139   
00140   FedChannelConnection connection_;
00141 
00142   uint32_t fedKey_;
00143 
00144   uint32_t fecKey_;
00145 
00146   bool booked_;
00147   
00148   std::string myName_;
00149   
00150   const edm::EventSetup* eventSetup_;
00151   
00152 };
00153 
00154 // ----- inline methods -----
00155 
00156 const uint32_t& CommissioningTask::fillCntr() const { return fillCntr_; }
00157 const uint32_t& CommissioningTask::updateFreq() const { return updateFreq_; }
00158 void CommissioningTask::updateFreq( const uint32_t& freq ) { updateFreq_ = freq; }
00159 const std::string& CommissioningTask::myName() const { return myName_; }
00160 
00161 DQMStore* const CommissioningTask::dqm() const { return dqm_; }
00162 const FedChannelConnection& CommissioningTask::connection() const { return connection_; }
00163 
00164 const uint32_t& CommissioningTask::fecKey() const { return fecKey_; }
00165 const uint32_t& CommissioningTask::fedKey() const { return fedKey_; }
00166 
00167 void CommissioningTask::eventSetup( const edm::EventSetup* setup ) { eventSetup_ = setup; }
00168 const edm::EventSetup* const CommissioningTask::eventSetup() const { return eventSetup_; }
00169 
00170 #endif // DQM_SiStripCommissioningSources_CommissioningTask_H

Generated on Tue Jun 9 17:33:31 2009 for CMSSW by  doxygen 1.5.4