File indexing completed on 2024-04-06 12:08:38
0001 #include "DQM/SiStripCommissioningSummary/interface/SummaryPlot.h"
0002 #include "DataFormats/SiStripCommon/interface/SiStripEnumsAndStrings.h"
0003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0004
0005 using namespace sistrip;
0006
0007
0008
0009 SummaryPlot::SummaryPlot(const std::string& monitorable,
0010 const std::string& presentation,
0011 const std::string& granularity,
0012 const std::string& level)
0013 : mon_(sistrip::UNKNOWN_MONITORABLE),
0014 pres_(sistrip::UNKNOWN_PRESENTATION),
0015 view_(sistrip::UNKNOWN_VIEW),
0016 gran_(sistrip::UNKNOWN_GRAN),
0017 level_(""),
0018 isValid_(false) {
0019
0020 mon_ = SiStripEnumsAndStrings::monitorable(monitorable);
0021 pres_ = SiStripEnumsAndStrings::presentation(presentation);
0022 gran_ = SiStripEnumsAndStrings::granularity(granularity);
0023 level_ = level;
0024
0025
0026 check();
0027 isValid_ = true;
0028
0029
0030 if (mon_ == sistrip::UNKNOWN_MONITORABLE || mon_ == sistrip::UNDEFINED_MONITORABLE) {
0031 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlot::" << __func__ << "]"
0032 << " Unexpected monitorable \"" << SiStripEnumsAndStrings::monitorable(mon_)
0033 << "\" based on input string \"" << monitorable << "\"";
0034 isValid_ = false;
0035 }
0036
0037 if (pres_ == sistrip::UNKNOWN_PRESENTATION || pres_ == sistrip::UNDEFINED_PRESENTATION) {
0038 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlot::" << __func__ << "]"
0039 << " Unexpected presentation \"" << SiStripEnumsAndStrings::presentation(pres_)
0040 << "\" based on input string \"" << presentation << "\"";
0041 isValid_ = false;
0042 }
0043
0044 if (view_ == sistrip::UNKNOWN_VIEW || view_ == sistrip::UNDEFINED_VIEW) {
0045 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlot::" << __func__ << "]"
0046 << " Unexpected view \"" << SiStripEnumsAndStrings::view(level_)
0047 << "\" based on input string \"" << level << "\"";
0048 isValid_ = false;
0049 }
0050
0051 if (level_.empty() || level_.find(sistrip::unknownView_) != std::string::npos ||
0052 level_.find(sistrip::undefinedView_) != std::string::npos) {
0053 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlot::" << __func__ << "]"
0054 << " Unexpected top-level directory: \"" << level_ << "\"";
0055 isValid_ = false;
0056 }
0057
0058 if (gran_ == sistrip::UNKNOWN_GRAN || (gran_ == sistrip::UNDEFINED_GRAN && pres_ != sistrip::HISTO_1D)) {
0059 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlot::" << __func__ << "]"
0060 << " Unexpected granularity: \"" << SiStripEnumsAndStrings::granularity(gran_)
0061 << "\" based on input string \"" << granularity << "\"";
0062 isValid_ = false;
0063 }
0064 }
0065
0066
0067
0068 SummaryPlot::SummaryPlot(const SummaryPlot& input)
0069 : mon_(input.monitorable()),
0070 pres_(input.presentation()),
0071 view_(input.view()),
0072 gran_(input.granularity()),
0073 level_(input.level()),
0074 isValid_(input.isValid()) {
0075 ;
0076 }
0077
0078
0079
0080 SummaryPlot::SummaryPlot()
0081 : mon_(sistrip::UNKNOWN_MONITORABLE),
0082 pres_(sistrip::UNKNOWN_PRESENTATION),
0083 view_(sistrip::UNKNOWN_VIEW),
0084 gran_(sistrip::UNKNOWN_GRAN),
0085 level_(""),
0086 isValid_(false) {
0087 ;
0088 }
0089
0090
0091
0092 void SummaryPlot::reset() {
0093 mon_ = sistrip::UNKNOWN_MONITORABLE;
0094 pres_ = sistrip::UNKNOWN_PRESENTATION;
0095 view_ = sistrip::UNKNOWN_VIEW;
0096 gran_ = sistrip::UNKNOWN_GRAN;
0097 level_ = "";
0098 isValid_ = false;
0099 }
0100
0101
0102
0103 void SummaryPlot::check() {
0104
0105 if (!level_.empty()) {
0106 std::string slash = level_.substr(level_.size() - 1, 1);
0107 if (slash == sistrip::dir_) {
0108 level_ = level_.substr(0, level_.size() - 1);
0109 }
0110 }
0111
0112
0113 sistrip::View check = SiStripEnumsAndStrings::view(level_);
0114 view_ = check;
0115 if (check == sistrip::UNKNOWN_VIEW || check == sistrip::UNDEFINED_VIEW) {
0116 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlot::" << __func__ << "]"
0117 << " Unexpected view \"" << SiStripEnumsAndStrings::view(check) << "\"";
0118 }
0119
0120
0121 if (level_.find(sistrip::root_) == std::string::npos) {
0122 if (check == sistrip::UNKNOWN_VIEW) {
0123 level_ = std::string(sistrip::root_) + sistrip::dir_ + sistrip::unknownView_ + sistrip::dir_ + level_;
0124 } else if (check == sistrip::UNDEFINED_VIEW) {
0125 level_ = std::string(sistrip::root_) + sistrip::dir_ + sistrip::undefinedView_ + sistrip::dir_ + level_;
0126 } else {
0127 level_ = std::string(sistrip::root_) + sistrip::dir_ + level_;
0128 }
0129 }
0130 }
0131
0132
0133
0134 void SummaryPlot::print(std::stringstream& ss) const {
0135 ss << "[SummaryPlot::" << __func__ << "]" << std::endl
0136 << " Monitorable: " << SiStripEnumsAndStrings::monitorable(mon_) << std::endl
0137 << " Presentation: " << SiStripEnumsAndStrings::presentation(pres_) << std::endl
0138 << " View: " << SiStripEnumsAndStrings::view(view_) << std::endl
0139 << " TopLevelDir: " << level_ << std::endl
0140 << " Granularity: " << SiStripEnumsAndStrings::granularity(gran_) << std::endl;
0141 }
0142
0143
0144
0145 std::ostream& operator<<(std::ostream& os, const SummaryPlot& summary) {
0146 std::stringstream ss;
0147 summary.print(ss);
0148 os << ss.str();
0149 return os;
0150 }