File indexing completed on 2024-04-06 12:08:37
0001 #include "DQM/SiStripCommissioningSummary/interface/DaqScopeModeSummaryFactory.h"
0002 #include "CondFormats/SiStripObjects/interface/DaqScopeModeAnalysis.h"
0003 #include "DataFormats/SiStripCommon/interface/SiStripEnumsAndStrings.h"
0004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0005 #include <iostream>
0006 #include <sstream>
0007
0008 using namespace sistrip;
0009
0010
0011
0012 void DaqScopeModeSummaryFactory::extract(Iterator iter) {
0013 DaqScopeModeAnalysis* anal = dynamic_cast<DaqScopeModeAnalysis*>(iter->second);
0014 if (!anal) {
0015 return;
0016 }
0017
0018 std::vector<float> temp(128, 1. * sistrip::invalid_);
0019 std::vector<std::vector<float> > value(2, temp);
0020 std::vector<std::vector<float> > peds(2, temp);
0021 std::vector<std::vector<float> > noise(2, temp);
0022 peds[0] = anal->peds()[0];
0023 peds[1] = anal->peds()[1];
0024 noise[0] = anal->noise()[0];
0025 noise[1] = anal->noise()[1];
0026 float valueAlt = 1. * sistrip::invalid_;
0027
0028 bool all_strips = false;
0029 if (mon_ == sistrip::PEDESTALS_ALL_STRIPS) {
0030 all_strips = true;
0031 uint16_t bins = peds[0].size();
0032 if (peds[0].size() < peds[1].size()) {
0033 bins = peds[1].size();
0034 }
0035 for (uint16_t iped = 0; iped < bins; iped++) {
0036 value[0][iped] = peds[0][iped];
0037 value[1][iped] = peds[1][iped];
0038 }
0039 } else if (mon_ == sistrip::PEDESTALS_MEAN) {
0040 value[0][0] = anal->pedsMean()[0];
0041 value[1][0] = anal->pedsMean()[1];
0042 } else if (mon_ == sistrip::PEDESTALS_SPREAD) {
0043 value[0][0] = anal->pedsSpread()[0];
0044 value[1][0] = anal->pedsSpread()[1];
0045 } else if (mon_ == sistrip::PEDESTALS_MAX) {
0046 value[0][0] = anal->pedsMax()[0];
0047 value[1][0] = anal->pedsMax()[1];
0048 } else if (mon_ == sistrip::PEDESTALS_MIN) {
0049 value[0][0] = anal->pedsMin()[0];
0050 value[1][0] = anal->pedsMin()[1];
0051 } else if (mon_ == sistrip::NOISE_ALL_STRIPS) {
0052 all_strips = true;
0053 uint16_t bins = noise[0].size();
0054 if (noise[0].size() < noise[1].size()) {
0055 bins = noise[1].size();
0056 }
0057 for (uint16_t inoise = 0; inoise < bins; inoise++) {
0058 value[0][inoise] = noise[0][inoise];
0059 value[1][inoise] = noise[1][inoise];
0060 }
0061 } else if (mon_ == sistrip::NOISE_MEAN) {
0062 value[0][0] = anal->noiseMean()[0];
0063 value[1][0] = anal->noiseMean()[1];
0064 } else if (mon_ == sistrip::NOISE_SPREAD) {
0065 value[0][0] = anal->noiseSpread()[0];
0066 value[1][0] = anal->noiseSpread()[1];
0067 } else if (mon_ == sistrip::NOISE_MAX) {
0068 value[0][0] = anal->noiseMax()[0];
0069 value[1][0] = anal->noiseMax()[1];
0070 } else if (mon_ == sistrip::NOISE_MIN) {
0071 value[0][0] = anal->noiseMin()[0];
0072 value[1][0] = anal->noiseMin()[1];
0073 } else if (mon_ == sistrip::NUM_OF_DEAD) {
0074 value[0][0] = 1. * anal->dead()[0].size();
0075 value[1][0] = 1. * anal->dead()[1].size();
0076 } else if (mon_ == sistrip::NUM_OF_NOISY) {
0077 value[0][0] = 1. * anal->noisy()[0].size();
0078 value[1][0] = 1. * anal->noisy()[1].size();
0079 } else if (mon_ == sistrip::APV_TIMING_BASE) {
0080 valueAlt = anal->base();
0081 } else if (mon_ == sistrip::APV_TIMING_PEAK) {
0082 valueAlt = anal->peak();
0083 } else if (mon_ == sistrip::APV_TIMING_HEIGHT) {
0084 valueAlt = anal->height();
0085 } else {
0086 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactory::" << __func__ << "]"
0087 << " Unexpected monitorable: "
0088 << SiStripEnumsAndStrings::monitorable(SummaryPlotFactoryBase::mon_);
0089 return;
0090 }
0091
0092 if (!all_strips) {
0093 SummaryPlotFactoryBase::generator_->fillMap(
0094 SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[0][0]);
0095
0096 SummaryPlotFactoryBase::generator_->fillMap(
0097 SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[1][0]);
0098
0099 SummaryPlotFactoryBase::generator_->fillMap(
0100 SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, valueAlt);
0101
0102 } else {
0103 for (uint16_t istr = 0; istr < value[0].size(); istr++) {
0104 SummaryPlotFactoryBase::generator_->fillMap(
0105 SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[0][istr]);
0106 }
0107
0108 for (uint16_t istr = 0; istr < value[1].size(); istr++) {
0109 SummaryPlotFactoryBase::generator_->fillMap(
0110 SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[1][istr]);
0111 }
0112 }
0113 }
0114
0115
0116
0117 void DaqScopeModeSummaryFactory::format() {
0118 if (mon_ == sistrip::PEDESTALS_ALL_STRIPS) {
0119 generator_->axisLabel("Pedestal value [adc]");
0120 } else if (mon_ == sistrip::PEDESTALS_MEAN) {
0121 } else if (mon_ == sistrip::PEDESTALS_SPREAD) {
0122 } else if (mon_ == sistrip::PEDESTALS_MAX) {
0123 } else if (mon_ == sistrip::PEDESTALS_MIN) {
0124 } else if (mon_ == sistrip::NOISE_ALL_STRIPS) {
0125 generator_->axisLabel("Noise [adc]");
0126 } else if (mon_ == sistrip::NOISE_MEAN) {
0127 } else if (mon_ == sistrip::NOISE_SPREAD) {
0128 } else if (mon_ == sistrip::NOISE_MAX) {
0129 } else if (mon_ == sistrip::NOISE_MIN) {
0130 } else if (mon_ == sistrip::NUM_OF_DEAD) {
0131 } else if (mon_ == sistrip::NUM_OF_NOISY) {
0132 } else if (SummaryPlotFactoryBase::mon_ == sistrip::APV_TIMING_TIME) {
0133 SummaryPlotFactoryBase::generator_->axisLabel("Timing delay [ns]");
0134 } else if (SummaryPlotFactoryBase::mon_ == sistrip::APV_TIMING_MAX_TIME) {
0135 } else if (SummaryPlotFactoryBase::mon_ == sistrip::APV_TIMING_DELAY) {
0136 } else if (SummaryPlotFactoryBase::mon_ == sistrip::APV_TIMING_ERROR) {
0137 } else if (SummaryPlotFactoryBase::mon_ == sistrip::APV_TIMING_BASE) {
0138 } else if (SummaryPlotFactoryBase::mon_ == sistrip::APV_TIMING_PEAK) {
0139 } else if (SummaryPlotFactoryBase::mon_ == sistrip::APV_TIMING_HEIGHT) {
0140 } else {
0141 edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactory::" << __func__ << "]"
0142 << " Unexpected SummaryHisto value:"
0143 << SiStripEnumsAndStrings::monitorable(SummaryPlotFactoryBase::mon_);
0144 }
0145 }