12 auto prefix_str = name.substr(0, (name.find(
':')));
14 auto const temp_str = name.substr(name.find(
':') + 1);
15 split(temp_str, values,
",");
16 for (
auto&
value : values) {
17 value.insert(0, prefix_str);
26 dir_path = name.substr(0, (name.find(
':')));
28 auto const temp_str = name.substr(name.find(
':') + 1);
29 split(temp_str, values,
",");
35 if (name.find(name) == std::string::npos)
37 auto prefix_str = name.substr(0, (name.find(
':')));
39 auto const temp_str = name.substr(name.find(
':') + 1);
40 std::vector<std::string>
values;
41 split(temp_str, values,
",");
42 for (
auto const&
value : values) {
43 if (
value.find(me_name) != std::string::npos) {
44 full_path = prefix_str +
value;
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);
131 if (((status >> 0) & 0x1) > 0) {
138 if (((status >> 3) & 0x1) > 0) {
145 if (((status >> 4) & 0x1) > 0) {
152 if (((status >> 1) & 0x1) > 0) {
155 if (((status >> 2) & 0x1) > 0)
188 if (
auto currDir = dqm_store.
pwd(); currDir.find(
"module_") != std::string::npos) {
189 mfolders.push_back(currDir);
192 for (
auto const& subdir : subdirs) {
193 dqm_store.
cd(subdir);
202 std::vector<std::string>& mfolders) {
203 if (
auto currDir = ibooker.
pwd(); currDir.find(
"module_") != std::string::npos) {
204 mfolders.push_back(currDir);
207 for (
auto const& subdir : subdirs) {
222 std::vector<QReport*> qreports = me->
getQReports();
223 bad_channels = qreports[0]->getBadChannels().size();
255 if (dirName.find(name) == 0) {
259 for (
auto const&
fname : subdirs) {
260 if ((
fname.find(
"Reference") != std::string::npos) || (
fname.find(
"AlCaReco") != std::string::npos) ||
261 (
fname.find(
"HLT") != std::string::npos) || (
fname.find(
"IsolatedBunches") != std::string::npos))
264 if (!
goToDir(dqm_store, name)) {
276 if (dirName.find(name) == 0) {
280 for (
auto const&
fname : subdirs) {
281 if ((
fname.find(
"Reference") != std::string::npos) || (
fname.find(
"AlCaReco") != std::string::npos) ||
282 (
fname.find(
"HLT") != std::string::npos) || (
fname.find(
"IsolatedBunches") != std::string::npos))
285 if (!
goToDir(ibooker, igetter, name)) {
305 if (tTopo->
tidSide(det_id) == 2) {
307 }
else if (tTopo->
tidSide(det_id) == 1) {
317 if (tTopo->
tecSide(det_id) == 2) {
319 }
else if (tTopo->
tecSide(det_id) == 1) {
329 if (hname.find(
"FractionOfBadChannels") != std::string::npos)
331 else if (hname.find(
"NumberOfDigi") != std::string::npos)
333 else if (hname.find(
"NumberOfCluster") != std::string::npos)
335 else if (hname.find(
"ExcludedFedChannel") != std::string::npos)
337 else if (hname.find(
"DCSError") != std::string::npos)
345 message +=
" No Error";
347 if (((flag >> 0) & 0x1) > 0)
348 message +=
" Fed BadChannel : ";
349 if (((flag >> 1) & 0x1) > 0)
350 message +=
" # of Digi : ";
351 if (((flag >> 2) & 0x1) > 0)
352 message +=
" # of Clusters :";
353 if (((flag >> 3) & 0x1) > 0)
354 message +=
" Excluded FED Channel ";
355 if (((flag >> 4) & 0x1) > 0)
356 message +=
" DCSError ";
366 dqm_store.
cd(top_dir);
367 path = dqm_store.
pwd();
372 path = dqm_store.
pwd();
373 path = path.substr(0, path.find(mdir) - 1);
387 path = ibooker.
pwd();
392 path = ibooker.
pwd();
393 path = path.substr(0, path.find(tdir) - 1);
static void setBadModuleFlag(std::string &hname, uint16_t &flg)
static constexpr auto TEC
static void getModuleFolderList(DQMStore &dqm_store, std::vector< std::string > &m_ids)
static int getMEList(std::string const &name, std::vector< std::string > &values)
virtual DQM_DEPRECATED std::vector< std::string > getSubdirs() const
virtual std::string pwd()
virtual int64_t getIntValue() const
static void getDetectorStatusColor(int status, int &rval, int &gval, int &bval)
Kind kind() const
Get the type of the monitor element.
virtual bool dirExists(std::string const &path) const
std::string pwd() override
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)
bool hasWarning() const
true if at least of one of the quality tests returned a warning
std::vector< MonitorElementData::QReport * > getQReports() const
get map of QReports
unsigned int tidSide(const DetId &id) const
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) ...
static constexpr auto TOB
static constexpr auto TIB
static void getMEStatusColor(int status, int &rval, int &gval, int &bval)
bool hasError() const
true if at least of one of the quality tests returned an error
static void split(std::string const &str, std::vector< std::string > &tokens, std::string const &delimiters=" ")
static void getSubDetectorTag(uint32_t det_id, std::string &subdet_tag, const TrackerTopology *tTopo)
virtual double getFloatValue() const
static bool goToDir(DQMStore &dqm_store, std::string const &name)
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)
static constexpr auto TID
static void getTopFolderPath(DQMStore &dqm_store, std::string const &top_dir, std::string &path)
unsigned int tecSide(const DetId &id) const