19 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
20 prefixME_.append(
"/");
53 if (
debug_>1)
std::cout <<
"<HcalBaseDQClient::setStatusMap> Input map size = "<<map.size()<<std::endl;
54 for (std::map<HcalDetId, unsigned int>::const_iterator iter = map.begin();
55 iter!=map.end();++iter)
73 if (
debug_>2)
std::cout <<
"\t<HcalBaseDQClient::htmlOutput> Preparing html for task: "<<
name_<<std::endl;
75 for(
int i=0;
i<105; ++
i )
78 TColor*
color = gROOT->GetColor( 901+
i );
79 if( ! color ) color =
new TColor( 901+
i, 0, 0, 0,
"" );
81 color->SetRGB(
i/5.,1.,0);
85 color->SetRGB(1,1-0.01*
i,0);
89 std::ofstream htmlFile;
91 htmlFile.open(outfile.c_str());
94 htmlFile <<
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << std::endl;
95 htmlFile <<
"<html> " << std::endl;
96 htmlFile <<
"<head> " << std::endl;
97 htmlFile <<
" <meta content=\"text/html; charset=ISO-8859-1\" " << std::endl;
98 htmlFile <<
" http-equiv=\"content-type\"> " << std::endl;
99 htmlFile <<
" <title>Monitor: Hcal "<<name_<<
" output</title> " << std::endl;
100 htmlFile <<
"</head> " << std::endl;
101 htmlFile <<
"<style type=\"text/css\"> td { font-weight: bold } </style>" << std::endl;
102 htmlFile <<
"<body> " << std::endl;
103 htmlFile <<
"<br> " << std::endl;
104 htmlFile <<
"<hr>" << std::endl;
106 gStyle->SetPalette(105,pcol_error);
107 gStyle->SetNumberContours(105);
110 if (
debug_>0)
std::cout <<
"<HcalBaseDQClient::htmlOutput> Writing html output for client "<<this->
name()<<std::endl;
115 htmlFile <<
"<table align=\"center\" border=\"1\" cellspacing=\"0\" " << std::endl;
116 htmlFile <<
"cellpadding=\"10\"> " << std::endl;
117 htmlFile<<
"<tr align=\"center\">"<<std::endl;
119 htmlFile<<
"</tr>"<<std::endl;
120 htmlFile<<
"</table>"<<std::endl;
124 htmlFile <<
"<table align=\"center\" border=\"1\" cellspacing=\"0\" " << std::endl;
125 htmlFile <<
"cellpadding=\"10\"> " << std::endl;
134 htmlFile<<
"<tr align=\"center\">"<<std::endl;
138 htmlFile<<
"</tr>"<<std::endl;
140 htmlFile<<
"</table>"<<std::endl;
143 htmlFile <<
"<table align=\"center\" border=\"1\" cellspacing=\"0\" " << std::endl;
144 htmlFile <<
"cellpadding=\"10\"> " << std::endl;
148 gStyle->SetPalette(1);
151 for (
unsigned int i=0;
i<hists.size();++
i)
157 htmlFile <<
"<tr align=\"center\">" << std::endl;
160 htmlFile <<
"</tr>"<<std::endl;
166 bool isproblem=
false;
172 if (
debug_>1)
std::cout <<
"<HcalBaseDQClient::htmlOutput> Found Problem Histogram '"<<histname<<
"' in list of histograms"<<std::endl;
176 if (isproblem)
continue;
179 htmlFile <<
"<tr align=\"center\">" << std::endl;
182 htmlFile <<
"</tr>"<<std::endl;
189 htmlFile <<
"<tr align=\"center\">" << std::endl;
192 htmlFile <<
"</tr>"<<std::endl;
195 htmlFile<<
"</table>"<<std::endl;
196 htmlFile <<
"</body> " << std::endl;
197 htmlFile <<
"</html> " << std::endl;
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)
virtual void htmlOutput(DQMStore::IBooker &, DQMStore::IGetter &, std::string htmlDir)
virtual bool validHtmlOutput(DQMStore::IBooker &, DQMStore::IGetter &)
std::vector< MonitorElement * > depth
std::vector< std::string > problemnames_
EtaPhiHists * ProblemCellsByDepth
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)
std::vector< MonitorElement * > getAllContents(const std::string &path, uint32_t runNumber=0, uint32_t lumi=0)
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)
int badChannelStatusMask_
TH2F * getTH2F(void) const
void getLogicalMap(const edm::EventSetup &es)