CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/DQM/SiPixelMonitorClient/interface/SiPixelWebInterface.h

Go to the documentation of this file.
00001 #ifndef _SiPixelWebInterface_h_
00002 #define _SiPixelWebInterface_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 SiPixelActionExecutor;
00010 class SiPixelInformationExtractor;
00011 class SiPixelEDAClient;
00012 
00013 class SiPixelWebInterface
00014 {
00015 
00016 public:
00017 
00018   enum SiPixelActionType{NoAction                 =  0,
00019                          Summary                  =  1,
00020                          setupQTest               =  2,
00021                          QTestResult              =  3,
00022                          CreateTkMap              =  4,
00023                          PlotSingleModuleHistos   =  5,
00024                          PlotSingleHistogram      =  6,
00025                          PlotTkMapHistogram       =  7,
00026                          periodicTrackerMapUpdate =  8,
00027                          PlotHistogramFromPath    =  9,
00028                          CreatePlots              = 10,
00029                          ComputeGlobalQualityFlag = 11,
00030                          dumpModIds               = 12,
00031                          Occupancy                = 13};
00032                          
00033   SiPixelWebInterface(DQMStore* bei,
00034                       bool      offlineXMLfile,
00035                       bool      Tier0Flag);
00036   ~SiPixelWebInterface();
00037 
00038   void handleEDARequest(xgi::Input* in,
00039                         xgi::Output* out, 
00040                         int niter);  
00041   
00042   SiPixelActionType getActionFlag() {return theActionFlag;}
00043   void setActionFlag(SiPixelActionType flag) {theActionFlag = flag;}
00044   void performAction();
00045 
00046   bool readConfiguration(int& tkmap_freq, 
00047                          int& summary_freq);
00048      
00049   bool createTkMap();
00050   void periodicTkMapUpdate( xgi::Output * out);
00051    
00052 private:
00053 
00054   std::string get_from_multimap(std::multimap<std::string, std::string> &mymap, std::string key);
00055 
00056   SiPixelActionType theActionFlag;
00057   SiPixelActionExecutor* actionExecutor_;
00058   SiPixelInformationExtractor* infoExtractor_;
00059 
00060   void returnReplyXml(xgi::Output * out, 
00061                       const std::string& name, 
00062                       const std::string& comment);
00063 
00064   std::vector<std::string> tkMapOptions_;
00065   bool tkMapCreated;
00066   std::multimap<std::string, std::string> requestMap_;
00067   DQMStore* bei_;
00068   bool offlineXMLfile_;
00069   bool Tier0Flag_;
00070 
00071 protected:
00072 
00073 };
00074 
00075 #endif