19 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
20 prefixME_.append(
"/");
49 std::cout <<
"<HcalBaseDQClient::beginJob()> Displaying dqmStore directory structure:"<<std::endl;
61 if (
debug_>1)
std::cout <<
"<HcalBaseDQClient::setStatusMap> Input map size = "<<map.size()<<std::endl;
62 for (std::map<HcalDetId, unsigned int>::const_iterator
iter = map.begin();
82 if (
debug_>0)
std::cout <<
"<HcalBaseDQClient::htmlOutput> dqmStore object does not exist!"<<std::endl;
86 if (
debug_>2)
std::cout <<
"\t<HcalBaseDQClient::htmlOutput> Preparing html for task: "<<
name_<<std::endl;
88 for(
int i=0;
i<105; ++
i )
91 TColor*
color = gROOT->GetColor( 901+
i );
92 if( ! color ) color =
new TColor( 901+
i, 0, 0, 0,
"" );
94 color->SetRGB(
i/5.,1.,0);
98 color->SetRGB(1,1-0.01*
i,0);
102 std::ofstream htmlFile;
104 htmlFile.open(outfile.c_str());
107 htmlFile <<
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << std::endl;
108 htmlFile <<
"<html> " << std::endl;
109 htmlFile <<
"<head> " << std::endl;
110 htmlFile <<
" <meta content=\"text/html; charset=ISO-8859-1\" " << std::endl;
111 htmlFile <<
" http-equiv=\"content-type\"> " << std::endl;
112 htmlFile <<
" <title>Monitor: Hcal "<<name_<<
" output</title> " << std::endl;
113 htmlFile <<
"</head> " << std::endl;
114 htmlFile <<
"<style type=\"text/css\"> td { font-weight: bold } </style>" << std::endl;
115 htmlFile <<
"<body> " << std::endl;
116 htmlFile <<
"<br> " << std::endl;
117 htmlFile <<
"<hr>" << std::endl;
119 gStyle->SetPalette(105,pcol_error);
120 gStyle->SetNumberContours(105);
123 if (
debug_>0)
std::cout <<
"<HcalBaseDQClient::htmlOutput> Writing html output for client "<<this->
name()<<std::endl;
128 htmlFile <<
"<table align=\"center\" border=\"1\" cellspacing=\"0\" " << std::endl;
129 htmlFile <<
"cellpadding=\"10\"> " << std::endl;
130 htmlFile<<
"<tr align=\"center\">"<<std::endl;
132 htmlFile<<
"</tr>"<<std::endl;
133 htmlFile<<
"</table>"<<std::endl;
137 htmlFile <<
"<table align=\"center\" border=\"1\" cellspacing=\"0\" " << std::endl;
138 htmlFile <<
"cellpadding=\"10\"> " << std::endl;
147 htmlFile<<
"<tr align=\"center\">"<<std::endl;
151 htmlFile<<
"</tr>"<<std::endl;
153 htmlFile<<
"</table>"<<std::endl;
156 htmlFile <<
"<table align=\"center\" border=\"1\" cellspacing=\"0\" " << std::endl;
157 htmlFile <<
"cellpadding=\"10\"> " << std::endl;
161 gStyle->SetPalette(1);
164 for (
unsigned int i=0;
i<hists.size();++
i)
170 htmlFile <<
"<tr align=\"center\">" << std::endl;
173 htmlFile <<
"</tr>"<<std::endl;
179 bool isproblem=
false;
185 if (
debug_>1)
std::cout <<
"<HcalBaseDQClient::htmlOutput> Found Problem Histogram '"<<histname<<
"' in list of histograms"<<std::endl;
189 if (isproblem)
continue;
192 htmlFile <<
"<tr align=\"center\">" << std::endl;
195 htmlFile <<
"</tr>"<<std::endl;
202 htmlFile <<
"<tr align=\"center\">" << std::endl;
205 htmlFile <<
"</tr>"<<std::endl;
208 htmlFile<<
"</table>"<<std::endl;
209 htmlFile <<
"</body> " << std::endl;
210 htmlFile <<
"</html> " << std::endl;
virtual void beginJob(void)
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * ProblemCells
TProfile * getTProfile(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
void htmlAnyHisto(int runNo, myHist *hist, const char *xlab, const char *ylab, int width, std::ofstream &htmlFile, std::string htmlDir, int debug=0)
std::vector< MonitorElement * > getAllContents(const std::string &path, uint32_t runNumber=0, uint32_t lumi=0) const
std::vector< MonitorElement * > depth
std::vector< std::string > problemnames_
EtaPhiHists * ProblemCellsByDepth
virtual bool validHtmlOutput()
TH1F * getTH1F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
HcalLogicalMap createMap(const HcalTopology *topo, unsigned int mapIOV=4)
virtual void setStatusMap(std::map< HcalDetId, unsigned int > &map)
virtual void htmlOutput(std::string htmlDir)
std::map< HcalDetId, unsigned int > badstatusmap
virtual ~HcalBaseDQClient(void)
HcalLogicalMap * logicalMap_
static std::atomic< unsigned int > counter
TH2F * getTH2F(std::string name, std::string process, std::string rootfolder, DQMStore *dbe_, bool verb, bool clone)
void showDirStructure(void) const
int badChannelStatusMask_
TH2F * getTH2F(void) const
void getLogicalMap(const edm::EventSetup &es)