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 <boost/cstdint.hpp> 00013 #include <string> 00014 #include <vector> 00015 #include <map> 00016 00017 class DQMStore; 00018 class CommissioningTask; 00019 class FedChannelConnection; 00020 class SiStripEventSummary; 00021 00025 class SiStripCommissioningSource : public edm::EDAnalyzer { 00026 00027 public: // ---------- Public interface ---------- 00028 00030 typedef std::map<unsigned int, CommissioningTask*> TaskMap; 00031 typedef std::vector<CommissioningTask*> VecOfTasks; 00032 typedef std::vector<VecOfTasks> VecOfVecOfTasks; 00033 00034 SiStripCommissioningSource( const edm::ParameterSet& ); 00035 ~SiStripCommissioningSource(); 00036 00037 void beginJob( edm::EventSetup const& ); 00038 void analyze( const edm::Event&, const edm::EventSetup& ); 00039 void endJob(); 00040 00041 private: // ---------- Private methods ---------- 00042 00044 SiStripCommissioningSource(); 00045 00047 DQMStore* const dqm( std::string method = "" ) const; 00048 00050 void createRunNumber(); 00051 00053 void createTask( const SiStripEventSummary* const, const edm::EventSetup& ); 00054 00056 void createCablingTasks(); 00057 00059 void createTasks( sistrip::RunType, const edm::EventSetup& ); 00060 00062 void clearCablingTasks(); 00063 00065 void clearTasks(); 00066 00068 void fillCablingHistos( const SiStripEventSummary* const, 00069 const edm::DetSetVector<SiStripRawDigi>& ); 00070 00072 void fillHistos( const SiStripEventSummary* const, 00073 const edm::DetSetVector<SiStripRawDigi>& ); 00074 00076 void remove(); 00077 00079 void directory( std::stringstream&, 00080 uint32_t run_number = 0 ); 00081 00083 //void cablingForConnectionRun( const sistrip::RunType& ); //@@ do not use! 00084 00085 00086 // ---------- DQM fwk and cabling ---------- 00087 00089 DQMStore* dqm_; 00090 00092 SiStripFedCabling* fedCabling_; 00093 00095 SiStripFecCabling* fecCabling_; 00096 00097 // ---------- Input / output ---------- 00098 00100 std::string inputModuleLabel_; 00101 std::string inputModuleLabelSummary_; 00102 00104 std::string filename_; 00105 00107 uint32_t run_; 00108 00110 int32_t time_; 00111 00112 // ---------- Histogram-related ---------- 00113 00115 std::string taskConfigurable_; 00116 00118 sistrip::RunType task_; 00119 00121 VecOfVecOfTasks tasks_; 00122 00124 TaskMap cablingTasks_; 00125 00127 bool tasksExist_; 00128 00130 bool cablingTask_; 00131 00133 int updateFreq_; 00134 00136 std::string base_; 00137 00138 }; 00139 00140 #endif // DQM_SiStripCommissioningSources_SiStripCommissioningSource_H 00141