13 std::string prefix_str = name.substr(0,(name.find(
":")));
15 std::string temp_str = name.substr(name.find(
":")+1);
16 split(temp_str, values,
",");
17 for (std::vector<std::string>::iterator it = values.begin();
18 it != values.end(); it++) (*it).insert(0,prefix_str);
26 dir_path = name.substr(0,(name.find(
":")));
28 std::string temp_str = name.substr(name.find(
":")+1);
29 split(temp_str, values,
",");
35 if (name.find(name) == std::string::npos)
return false;
36 std::string prefix_str = name.substr(0,(name.find(
":")));
38 std::string temp_str = name.substr(name.find(
":")+1);
39 std::vector<std::string>
values;
40 split(temp_str, values,
",");
41 for (std::vector<std::string>::iterator it = values.begin();
42 it != values.end(); it++) {
43 if ((*it).find(me_name) != std::string::npos) {
44 full_path = prefix_str + (*it);
61 while (std::string::npos != pos || std::string::npos != lastPos) {
63 tokens.push_back(str.substr(lastPos, pos - lastPos));
66 lastPos = str.find_first_not_of(delimiters, pos);
69 pos = str.find_first_of(delimiters, lastPos);
77 rval = 0; gval = 255; bval = 0;
79 rval = 255; gval = 255; bval = 0;
81 rval = 255; gval = 0; bval = 0;
83 rval = 255; gval = 150; bval = 0;
85 rval = 0; gval = 0; bval = 255;
115 rval = 0; gval = 255;bval = 0;
119 if (((status >> 0) & 0x1) > 0) {
120 rval = 150; gval = 0; bval = 0;
124 if (((status >> 3) & 0x1) > 0) {
125 rval = 100; gval = 100; bval = 255;
129 if (((status >> 4) & 0x1) > 0) {
130 rval = 200; gval = 20; bval = 255;
134 if (((status >> 1) & 0x1) > 0) {
135 rval = 255; bval = 0;
136 if (((status >> 2) & 0x1) > 0) gval = 0;
139 rval = 251; gval = 0; bval = 100;
166 if (currDir.find(
"module_") != std::string::npos) {
168 mfolders.push_back(currDir);
170 std::vector<std::string> subdirs = dqm_store->
getSubdirs();
171 for (std::vector<std::string>::const_iterator it = subdirs.begin();
172 it != subdirs.end(); it++) {
188 std::vector<QReport *> qreports = me->
getQReports();
189 bad_channels =qreports[0]->getBadChannels().size();
209 val = val.substr(val.find(
"=")+1);
218 if (dirName.find(name) == 0) {
221 std::vector<std::string> subDirVec = dqm_store->
getSubdirs();
222 for (std::vector<std::string>::const_iterator ic = subDirVec.begin();
223 ic != subDirVec.end(); ic++) {
226 (fname.find(
"Reference") != std::string::npos) ||
227 (fname.find(
"AlCaReco") != std::string::npos) ||
228 (fname.find(
"HLT") != std::string::npos)
230 dqm_store->
cd(fname);
252 if (tTopo->
tidSide(det_id) == 2) {
254 }
else if (tTopo->
tidSide(det_id) == 1) {
267 if (tTopo->
tecSide(det_id) == 2) {
269 }
else if (tTopo->
tecSide(det_id) == 1) {
281 if (hname.find(
"FractionOfBadChannels") != std::string::npos) flg |= (1<<0);
282 else if (hname.find(
"NumberOfDigi") != std::string::npos) flg |= (1<<1);
283 else if (hname.find(
"NumberOfCluster") != std::string::npos) flg |= (1<<2);
284 else if (hname.find(
"ExcludedFedChannel") != std::string::npos) flg |= (1<<3);
285 else if (hname.find(
"DCSError") != std::string::npos) flg |= (1<<4);
291 if (flag == 0) message +=
" No Error";
294 if (((flag >> 0) & 0x1) > 0) message +=
" Fed BadChannel : ";
295 if (((flag >> 1) & 0x1) > 0) message +=
" # of Digi : ";
296 if (((flag >> 2) & 0x1) > 0) message +=
" # of Clusters :";
297 if (((flag >> 3) & 0x1) > 0) message +=
" Excluded FED Channel ";
298 if (((flag >> 4) & 0x1) > 0) message +=
" DCSError ";
305 if (type !=
"SiStrip" && type !=
"Tracking")
return;
308 if (type ==
"SiStrip") {
311 path = dqm_store->
pwd();
316 path = dqm_store->
pwd();
317 path = path.substr(0, path.find(mdir)-1);
321 }
else if (type ==
"Tracking") {
324 dqm_store->
cd(top_dir);
325 path = dqm_store->
pwd();
330 path = dqm_store->
pwd();
331 path = path.substr(0, path.find(tdir)-1);
static void setBadModuleFlag(std::string &hname, uint16_t &flg)
std::vector< std::string > getSubdirs(void) const
static void getMEValue(MonitorElement *me, std::string &val)
void cd(void)
go to top directory (ie. root)
bool hasError(void) const
true if at least of one of the quality tests returned an error
static void getDetectorStatusColor(int status, int &rval, int &gval, int &bval)
static void getBadModuleStatus(uint16_t flag, std::string &message)
static void split(const std::string &str, std::vector< std::string > &tokens, const std::string &delimiters=" ")
static bool checkME(std::string element, std::string name, std::string &full_path)
unsigned int tidSide(const DetId &id) const
bool hasWarning(void) const
true if at least of one of the quality tests returned a warning
const std::string subdet_tag("SubDet")
Kind kind(void) const
Get the type of the monitor element.
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
std::string valueString(void) const
bool dirExists(const std::string &path) const
true if directory exists
unsigned long long int rval
static void getMEStatusColor(int status, int &rval, int &gval, int &bval)
std::vector< QReport * > getQReports(void) const
get map of QReports
static int getMEStatus(MonitorElement *me)
static int getMEList(std::string name, std::vector< std::string > &values)
bool hasOtherReport(void) const
true if at least of one of the tests returned some other (non-ok) status
static void getSubDetectorTag(uint32_t det_id, std::string &subdet_tag, const TrackerTopology *tTopo)
void goUp(void)
equivalent to "cd .."
static const int STATUS_OK
static void getModuleFolderList(DQMStore *dqm_store, std::vector< std::string > &m_ids)
static bool goToDir(DQMStore *dqm_store, std::string name)
unsigned int tecSide(const DetId &id) const
const std::string & pwd(void) const
static void getTopFolderPath(DQMStore *dqm_store, std::string type, std::string &path)