00001 #ifndef _SiStripWebInterface_h_
00002 #define _SiStripWebInterface_h_
00003
00004 #include "DQM/TrackerCommon/interface/WebInterface.h"
00005 #include "DQMServices/Core/interface/MonitorElement.h"
00006 #include "FWCore/Framework/interface/ESHandle.h"
00007
00008 class DQMStore;
00009 class SiStripActionExecutorQTest;
00010 class SiStripInformationExtractor;
00011 class SiStripDetCabling;
00012
00013 class SiStripWebInterface
00014 {
00015 public:
00016
00017
00018 enum SiStripActionType{NoAction=0, Summary=2,
00019 PlotSingleModuleHistos=5, PlotGlobalHistos=6,
00020 PlotHistogramFromPath=7, PlotTkMapHistogram=8,
00021 PlotHistogramFromLayout=9,
00022 CreatePlots=10};
00023
00024 SiStripWebInterface(DQMStore* dqm_store);
00025 ~SiStripWebInterface();
00026
00027
00028
00029
00030
00031 void handleAnalyserRequest(xgi::Input* in,xgi::Output* out, const edm::ESHandle<SiStripDetCabling>& detcabling, int niter);
00032
00033
00034 SiStripActionType getActionFlag() {return theActionFlag;}
00035 void setActionFlag(SiStripActionType flag) {theActionFlag = flag;}
00036 void performAction();
00037 unsigned int getNumberOfConDBPlotRequest(){ return condDBRequestList_.size();}
00038 void getConDBPlotParameters(unsigned int ival, uint32_t &det_id, std::string& subdet_type,
00039 uint32_t& subdet_side, uint32_t& layer_number);
00040 void clearConDBPlotRequests() { condDBRequestList_.clear(); }
00041
00042
00043 private:
00044
00045 std::string get_from_multimap(std::multimap<std::string, std::string> &mymap, std::string key);
00046
00047 SiStripActionType theActionFlag;
00048 SiStripActionExecutorQTest* actionExecutor_;
00049 SiStripInformationExtractor* infoExtractor_;
00050
00051 void returnReplyXml(xgi::Output * out, const std::string& name, const std::string& comment);
00052
00053 std::multimap<std::string, std::string> requestMap_;
00054
00055 DQMStore* dqmStore_;
00056
00057 bool condDBFlag_;
00058
00059
00060 struct CondDBPlotParameter {
00061 uint32_t detId;
00062 std::string type;
00063 uint32_t side;
00064 uint32_t layer;
00065
00066 };
00067
00068 std::vector<CondDBPlotParameter> condDBRequestList_;
00069
00070 protected:
00071
00072
00073 };
00074
00075 #endif