00001 #ifndef _SiPixelActionExecutor_h_ 00002 #define _SiPixelActionExecutor_h_ 00003 00004 #include "DQMServices/Core/interface/DQMOldReceiver.h" 00005 #include "DQMServices/Core/interface/MonitorElement.h" 00006 #include "DQMServices/Core/interface/DQMStore.h" 00007 #include "DQM/SiPixelMonitorClient/interface/SiPixelConfigParser.h" 00008 #include "DQM/SiPixelMonitorClient/interface/SiPixelConfigWriter.h" 00009 #include "DQMServices/ClientConfig/interface/QTestHandle.h" 00010 #include <fstream> 00011 #include <map> 00012 #include <vector> 00013 #include <string> 00014 00015 class SiPixelActionExecutor { 00016 00017 public: 00018 00019 SiPixelActionExecutor( bool offlineXMLfile); 00020 ~SiPixelActionExecutor(); 00021 00022 void createSummary( DQMStore * bei); 00023 void bookOccupancyPlots( DQMStore * bei, 00024 bool hiRes, 00025 bool isbarrel); 00026 void bookOccupancyPlots( DQMStore * bei, 00027 bool hiRes); 00028 void createOccupancy( DQMStore * bei); 00029 void setupQTests( DQMStore * bei); 00030 void checkQTestResults( DQMStore * bei); 00031 void createTkMap( DQMStore * bei, 00032 std::string mEName, 00033 std::string theTKType); 00034 bool readConfiguration( int & tkmap_freq, 00035 int & sum_barrel_freq, 00036 int & sum_endcap_freq, 00037 int & sum_grandbarrel_freq, 00038 int & sum_grandendcap_freq, 00039 int & message_limit, 00040 int & source_type, 00041 int & calib_type); 00042 bool readConfiguration( int & tkmap_freq, 00043 int & summary_freq); 00044 void readConfiguration( ); 00045 void createLayout( DQMStore * bei); 00046 void fillLayout( DQMStore * bei); 00047 int getTkMapMENames( std::vector<std::string> & names); 00048 void dumpModIds( DQMStore * bei); 00049 void dumpBarrelModIds( DQMStore * bei); 00050 void dumpEndcapModIds( DQMStore * bei); 00051 00052 00053 00054 private: 00055 00056 00057 MonitorElement* getSummaryME( DQMStore * bei, 00058 std::string me_name); 00059 MonitorElement* getFEDSummaryME( DQMStore * bei, 00060 std::string me_name); 00061 void fillSummary( DQMStore * bei, 00062 std::string dir_name, 00063 std::vector<std::string> & me_names, 00064 bool isbarrel); 00065 void fillFEDErrorSummary( DQMStore * bei, 00066 std::string dir_name, 00067 std::vector<std::string> & me_names); 00068 void fillGrandBarrelSummaryHistos(DQMStore * bei, 00069 std::vector<std::string> & me_names); 00070 void fillGrandEndcapSummaryHistos(DQMStore * bei, 00071 std::vector<std::string> & me_names); 00072 void getGrandSummaryME( DQMStore * bei, 00073 int nbin, 00074 std::string & me_name, 00075 std::vector<MonitorElement*> & mes); 00076 00077 void fillOccupancy( DQMStore * bei, 00078 bool isbarrel); 00079 00080 SiPixelConfigParser* configParser_; 00081 SiPixelConfigWriter* configWriter_; 00082 00083 std::vector<std::string> summaryMENames; 00084 std::vector<std::string> tkMapMENames; 00085 00086 int message_limit_; 00087 int source_type_; 00088 int calib_type_; 00089 int ndet_; 00090 bool offlineXMLfile_; 00091 00092 QTestHandle* qtHandler_; 00093 00094 MonitorElement * OccupancyMap; 00095 MonitorElement * PixelOccupancyMap; 00096 00097 00098 }; 00099 #endif