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