00001 #ifndef _SiStripHistoPlotter_h_ 00002 #define _SiStripHistoPlotter_h_ 00003 00004 00005 #include <fstream> 00006 #include <sstream> 00007 #include <map> 00008 #include <vector> 00009 #include <string> 00010 00011 #include "TCanvas.h" 00012 00013 class DQMStore; 00014 class MonitorElement; 00015 class TH1; 00016 00017 class SiStripHistoPlotter { 00018 00019 public: 00020 00021 SiStripHistoPlotter(); 00022 ~SiStripHistoPlotter(); 00023 00024 void getNamedImageBuffer(const std::string& path, std::string& image); 00025 void createPlots(DQMStore* dqm_store); 00026 void setNewPlot(std::string& path, std::string& option, 00027 int width, int height); 00028 void createStaticPlot(MonitorElement* me, const std::string& file_name); 00029 void createCondDBPlots(DQMStore* dqm_store); 00030 void setNewCondDBPlot(std::string& path, std::string& option, 00031 int width, int height); 00032 bool plotsToMake() { return ((plotList_.size() > 0) ? true : false);} 00033 bool condDBPlotsToMake(){ return ((condDBPlotList_.size() > 0) ? true : false);} 00034 00035 00036 private: 00037 00038 00039 struct PlotParameter { 00040 std::string Path; 00041 std::string Option; 00042 int CWidth; 00043 int CHeight; 00044 00045 }; 00046 00047 void fillNamedImageBuffer(TCanvas * c1, const std::string& name); 00048 void makePlot(DQMStore* dqm_store, const PlotParameter& par); 00049 void makeCondDBPlots(DQMStore* dqm_store, const PlotParameter& par); 00050 bool hasNamedImage(const std::string & name); 00051 void createDummyImage(const std::string& name); 00052 void getDummyImage(std::string & image); 00053 00054 void setDrawingOption(TH1* hist); 00055 void getProjection(MonitorElement* me, TH1F* tp); 00056 00057 00058 std::map<std::string, std::string> namedPictureBuffer_; 00059 std::vector<PlotParameter> plotList_; 00060 std::vector<PlotParameter> condDBPlotList_; 00061 00062 }; 00063 #endif