CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DQM/SiStripCommissioningSources/interface/SiStripCommissioningSource.h

Go to the documentation of this file.
00001 #ifndef DQM_SiStripCommissioningSources_SiStripCommissioningSource_H
00002 #define DQM_SiStripCommissioningSources_SiStripCommissioningSource_H
00003 
00004 #include "CalibFormats/SiStripObjects/interface/SiStripFecCabling.h"
00005 #include "CondFormats/SiStripObjects/interface/SiStripFedCabling.h"
00006 #include "DataFormats/Common/interface/DetSetVector.h"
00007 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
00008 #include "DataFormats/SiStripCommon/interface/SiStripHistoTitle.h"
00009 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h"
00010 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h"
00011 #include "FWCore/Framework/interface/EDAnalyzer.h"
00012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00013 #include <boost/cstdint.hpp>
00014 #include <string>
00015 #include <vector>
00016 #include <map>
00017 
00018 class DQMStore;
00019 class CommissioningTask;
00020 class FedChannelConnection;
00021 class SiStripEventSummary;
00022 
00026 class SiStripCommissioningSource : public edm::EDAnalyzer {
00027   
00028  public: // ---------- Public interface ----------
00029   
00031   typedef std::map<unsigned int, CommissioningTask*> TaskMap;
00032   typedef std::vector<CommissioningTask*> VecOfTasks;
00033   typedef std::vector<VecOfTasks> VecOfVecOfTasks;
00034   
00035   SiStripCommissioningSource( const edm::ParameterSet& );
00036   ~SiStripCommissioningSource();
00037   
00038   void beginRun( edm::Run const &, const edm::EventSetup & );
00039   void analyze( const edm::Event &, const edm::EventSetup & );
00040   void endJob();
00041   
00042  private: // ---------- Private methods ----------
00043 
00045   SiStripCommissioningSource();
00046   
00048   DQMStore* const dqm( std::string method = "" ) const;
00049   
00051   void createRunNumber();
00052 
00054   void createTask( const SiStripEventSummary* const, const edm::EventSetup& );
00055   
00057   void createCablingTasks();
00058 
00060   void createTasks( sistrip::RunType, const edm::EventSetup& );
00061   
00063   void clearCablingTasks();
00064 
00066   void clearTasks();
00067   
00069   void fillCablingHistos( const SiStripEventSummary* const,
00070                           const edm::DetSetVector<SiStripRawDigi>& );
00071 
00073   void fillHistos( const SiStripEventSummary* const,
00074                    const edm::DetSetVector<SiStripRawDigi>& );
00075   
00077   void remove();
00078   
00080   void directory( std::stringstream&, 
00081                   uint32_t run_number = 0 );
00082   
00084   //void cablingForConnectionRun( const sistrip::RunType& ); //@@ do not use!
00085 
00086   
00087   // ---------- DQM fwk and cabling ----------
00088 
00090   DQMStore* dqm_;
00091 
00093   SiStripFedCabling* fedCabling_;
00094 
00096   SiStripFecCabling* fecCabling_;
00097   
00098   // ---------- Input / output ----------
00099 
00101   std::string inputModuleLabel_;
00102   std::string inputModuleLabelSummary_;
00103 
00105   std::string filename_;
00106 
00108   uint32_t run_;
00109 
00111   int32_t time_;
00112 
00113   // ---------- Histogram-related ----------
00114 
00116   std::string taskConfigurable_; 
00117 
00119   sistrip::RunType task_; 
00120 
00122   VecOfVecOfTasks tasks_;
00123 
00125   TaskMap cablingTasks_;
00126 
00128   bool tasksExist_;
00129 
00131   bool cablingTask_;
00132   
00134   int updateFreq_;
00135 
00137   std::string base_;
00138 
00140   std::string view_;
00141 
00143   edm::ParameterSet parameters_;
00144 
00145 
00146 };
00147 
00148 #endif // DQM_SiStripCommissioningSources_SiStripCommissioningSource_H
00149