File indexing completed on 2024-04-06 12:08:38
0001 #include "DQM/SiStripCommissioningSummary/interface/SummaryPlotFactoryBase.h"
0002 #include "DQM/SiStripCommissioningSummary/interface/SummaryGenerator.h"
0003 #include "DataFormats/SiStripCommon/interface/SiStripEnumsAndStrings.h"
0004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0005 #include <iostream>
0006
0007 using namespace sistrip;
0008
0009
0010
0011 SummaryPlotFactoryBase::SummaryPlotFactoryBase()
0012 : mon_(sistrip::UNKNOWN_MONITORABLE),
0013 pres_(sistrip::UNKNOWN_PRESENTATION),
0014 view_(sistrip::UNKNOWN_VIEW),
0015 level_(sistrip::root_),
0016 gran_(sistrip::UNKNOWN_GRAN),
0017 generator_(nullptr) {
0018 ;
0019 }
0020
0021
0022
0023 SummaryPlotFactoryBase::~SummaryPlotFactoryBase() {
0024 if (generator_) {
0025 delete generator_;
0026 }
0027 }
0028
0029
0030
0031 void SummaryPlotFactoryBase::init(const sistrip::Monitorable& mon,
0032 const sistrip::Presentation& pres,
0033 const sistrip::View& view,
0034 const std::string& level,
0035 const sistrip::Granularity& gran) {
0036
0037 if (generator_) {
0038 delete generator_;
0039 generator_ = nullptr;
0040 }
0041 generator_ = SummaryGenerator::instance(view);
0042
0043
0044 if (!generator_) {
0045 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0046 << " NULL pointer to generator object!";
0047 return;
0048 }
0049
0050
0051 generator_->clearMap();
0052
0053
0054 mon_ = mon;
0055 pres_ = pres;
0056 view_ = view;
0057 level_ = level;
0058 gran_ = gran;
0059
0060
0061 if (mon_ == sistrip::UNKNOWN_MONITORABLE || mon_ == sistrip::UNDEFINED_MONITORABLE) {
0062 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0063 << " Unexpected monitorable: " << SiStripEnumsAndStrings::monitorable(mon_);
0064 }
0065
0066 if (pres_ == sistrip::UNKNOWN_PRESENTATION || pres_ == sistrip::UNDEFINED_PRESENTATION) {
0067 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0068 << " Unexpected presentation: " << SiStripEnumsAndStrings::presentation(pres_);
0069 }
0070
0071 if (view_ == sistrip::UNKNOWN_VIEW || view_ == sistrip::UNDEFINED_VIEW) {
0072 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0073 << " Unexpected view: " << SiStripEnumsAndStrings::view(view_);
0074 }
0075
0076 if (level_.empty() || level_.find(sistrip::unknownView_) != std::string::npos ||
0077 level_.find(sistrip::undefinedView_) != std::string::npos) {
0078 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0079 << " Unexpected top-level directory: \"" << level_ << "\"";
0080 }
0081
0082 if ((gran_ == sistrip::UNKNOWN_GRAN || gran_ == sistrip::UNDEFINED_GRAN) && pres != sistrip::HISTO_1D) {
0083 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0084 << " Unexpected granularity: " << SiStripEnumsAndStrings::granularity(gran_);
0085 }
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095 }
0096
0097
0098
0099 void SummaryPlotFactoryBase::fill(TH1& summary_histo) {
0100
0101 if (!generator_) {
0102 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0103 << " NULL pointer to SummaryGenerator object!";
0104 return;
0105 }
0106
0107
0108 if (!generator_->nBins()) {
0109 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0110 << " Zero bins returned by SummaryGenerator!";
0111 return;
0112 }
0113
0114
0115
0116
0117
0118 if (pres_ == sistrip::HISTO_1D) {
0119 generator_->histo1D(summary_histo);
0120 } else if (pres_ == sistrip::HISTO_2D_SUM) {
0121 generator_->histo2DSum(summary_histo);
0122 } else if (pres_ == sistrip::HISTO_2D_SCATTER) {
0123 generator_->histo2DScatter(summary_histo);
0124 } else if (pres_ == sistrip::PROFILE_1D) {
0125 generator_->profile1D(summary_histo);
0126 } else {
0127 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactoryBase::" << __func__ << "]"
0128 << " Unexpected presentation type: "
0129 << SiStripEnumsAndStrings::presentation(pres_);
0130 return;
0131 }
0132
0133
0134 generator_->format(sistrip::UNKNOWN_RUN_TYPE,
0135 mon_,
0136 pres_,
0137 view_,
0138 level_,
0139 gran_,
0140 summary_histo);
0141 }