13 std::vector<std::string>&
values)
16 auto prefix_str = name.substr(0, (name.find(
":")));
18 auto const temp_str = name.substr(name.find(
":") + 1);
19 split(temp_str, values,
",");
20 for (
auto&
value : values) {
21 value.insert(0, prefix_str);
31 std::vector<std::string>&
values)
34 dir_path = name.substr(0,(name.find(
":")));
36 auto const temp_str = name.substr(name.find(
":") + 1);
37 split(temp_str, values,
",");
47 if (name.find(name) == std::string::npos)
return false;
48 auto prefix_str = name.substr(0, (name.find(
":")));
50 auto const temp_str = name.substr(name.find(
":") + 1);
51 std::vector<std::string>
values;
52 split(temp_str, values,
",");
53 for (
auto const&
value : values) {
54 if (
value.find(me_name) != std::string::npos) {
55 full_path = prefix_str +
value;
72 while (std::string::npos != pos || std::string::npos != lastPos) {
74 tokens.push_back(str.substr(lastPos, pos - lastPos));
77 lastPos = str.find_first_not_of(delimiters, pos);
80 pos = str.find_first_of(delimiters, lastPos);
92 rval = 255; gval = 255; bval = 0;
94 rval = 255; gval = 0; bval = 0;
96 rval = 255; gval = 150; bval = 0;
98 rval = 0; gval = 0; bval = 255;
128 rval = 0; gval = 255;bval = 0;
132 if (((status >> 0) & 0
x1) > 0) {
139 if (((status >> 3) & 0
x1) > 0) {
146 if (((status >> 4) & 0
x1) > 0) {
153 if (((status >> 1) & 0
x1) > 0) {
154 rval = 255; bval = 0;
155 if (((status >> 2) & 0
x1) > 0) gval = 0;
189 std::vector<std::string>& mfolders)
191 if (
auto currDir = dqm_store.
pwd();
192 currDir.find(
"module_") != std::string::npos) {
193 mfolders.push_back(currDir);
196 for (
auto const& subdir : subdirs) {
197 dqm_store.
cd(subdir);
207 std::vector<std::string>& mfolders)
209 if (
auto currDir = ibooker.
pwd();
210 currDir.find(
"module_") != std::string::npos) {
211 mfolders.push_back(currDir);
214 for (
auto const& subdir : subdirs) {
231 std::vector<QReport *> qreports = me->
getQReports();
232 bad_channels =qreports[0]->getBadChannels().size();
255 val = val.substr(val.find(
"=")+1);
266 if (dirName.find(name) == 0) {
270 for (
auto const&
fname : subdirs) {
271 if ((
fname.find(
"Reference") != std::string::npos) ||
272 (
fname.find(
"AlCaReco") != std::string::npos) ||
273 (
fname.find(
"HLT") != std::string::npos) ||
274 (
fname.find(
"IsolatedBunches") != std::string::npos))
277 if (!
goToDir(dqm_store, name)) {
293 if (dirName.find(name) == 0) {
297 for (
auto const&
fname : subdirs) {
298 if ((
fname.find(
"Reference") != std::string::npos) ||
299 (
fname.find(
"AlCaReco") != std::string::npos) ||
300 (
fname.find(
"HLT") != std::string::npos) ||
301 (
fname.find(
"IsolatedBunches") != std::string::npos))
304 if (!
goToDir(ibooker, igetter, name)) {
328 if (tTopo->
tidSide(det_id) == 2) {
330 }
else if (tTopo->
tidSide(det_id) == 1) {
340 if (tTopo->
tecSide(det_id) == 2) {
342 }
else if (tTopo->
tecSide(det_id) == 1) {
353 if (hname.find(
"FractionOfBadChannels") != std::string::npos) flg |= (1<<0);
354 else if (hname.find(
"NumberOfDigi") != std::string::npos) flg |= (1<<1);
355 else if (hname.find(
"NumberOfCluster") != std::string::npos) flg |= (1<<2);
356 else if (hname.find(
"ExcludedFedChannel") != std::string::npos) flg |= (1<<3);
357 else if (hname.find(
"DCSError") != std::string::npos)
364 if (flag == 0) message +=
" No Error";
366 if (((flag >> 0) & 0
x1) > 0) message +=
" Fed BadChannel : ";
367 if (((flag >> 1) & 0
x1) > 0) message +=
" # of Digi : ";
368 if (((flag >> 2) & 0
x1) > 0) message +=
" # of Clusters :";
369 if (((flag >> 3) & 0
x1) > 0) message +=
" Excluded FED Channel ";
370 if (((flag >> 4) & 0
x1) > 0) message +=
" DCSError ";
384 dqm_store.
cd(top_dir);
385 path = dqm_store.
pwd();
390 path = dqm_store.
pwd();
391 path = path.substr(0, path.find(mdir) - 1);
407 path = ibooker.
pwd();
412 path = ibooker.
pwd();
413 path = path.substr(0, path.find(tdir) - 1);
static void setBadModuleFlag(std::string &hname, uint16_t &flg)
std::string valueString() const
static void getModuleFolderList(DQMStore &dqm_store, std::vector< std::string > &m_ids)
static int getMEList(std::string const &name, std::vector< std::string > &values)
bool hasError() 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)
bool hasOtherReport() const
true if at least of one of the tests returned some other (non-ok) status
static void getBadModuleStatus(uint16_t flag, std::string &message)
static void getMEValue(MonitorElement const *me, std::string &val)
unsigned int tidSide(const DetId &id) const
bool dirExists(std::string const &path) const
true if directory exists
bool hasWarning() const
true if at least of one of the quality tests returned a warning
const std::string subdet_tag("SubDet")
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
std::vector< std::string > getSubdirs() const
std::string const & pwd() const
unsigned long long int rval
static void getMEStatusColor(int status, int &rval, int &gval, int &bval)
void cd()
go to top directory (ie. root)
std::string const & pwd()
bool dirExists(std::string const &path)
static void split(std::string const &str, std::vector< std::string > &tokens, std::string const &delimiters=" ")
std::vector< QReport * > getQReports() const
get map of QReports
static void getSubDetectorTag(uint32_t det_id, std::string &subdet_tag, const TrackerTopology *tTopo)
static bool goToDir(DQMStore &dqm_store, std::string const &name)
std::vector< std::string > getSubdirs()
static const int STATUS_OK
static bool checkME(std::string const &element, std::string const &name, std::string &full_path)
static int getMEStatus(MonitorElement const *me)
void goUp()
equivalent to "cd .."
Kind kind() const
Get the type of the monitor element.
static void getTopFolderPath(DQMStore &dqm_store, std::string const &top_dir, std::string &path)
unsigned int tecSide(const DetId &id) const