Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 13:11:40

0001 #include "DQM/SiStripCommissioningSummary/interface/PedsFullNoiseSummaryFactory.h"
0002 #include "CondFormats/SiStripObjects/interface/PedsFullNoiseAnalysis.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 PedsFullNoiseSummaryFactory::extract(Iterator iter) {
0013   PedsFullNoiseAnalysis* anal = dynamic_cast<PedsFullNoiseAnalysis*>(iter->second);
0014   if (!anal) {
0015     return;
0016   }
0017 
0018   std::vector<float> temp(128, 1. * sistrip::invalid_);
0019   std::vector<uint16_t> temp2(128, sistrip::invalid_);
0020 
0021   std::vector<std::vector<float> > value(2, temp);
0022   std::vector<std::vector<float> > peds(2, temp);
0023   std::vector<std::vector<float> > noise(2, temp);
0024   std::vector<std::vector<float> > adProbab(2, temp);
0025   std::vector<std::vector<float> > ksProbab(2, temp);
0026   std::vector<std::vector<float> > jbProbab(2, temp);
0027   std::vector<std::vector<float> > chi2Probab(2, temp);
0028   std::vector<std::vector<float> > residualRMS(2, temp);
0029   std::vector<std::vector<float> > residualGaus(2, temp);
0030   std::vector<std::vector<float> > noiseSignificance(2, temp);
0031   std::vector<std::vector<float> > residualMean(2, temp);
0032   std::vector<std::vector<float> > residualSkewness(2, temp);
0033   std::vector<std::vector<float> > residualKurtosis(2, temp);
0034   std::vector<std::vector<float> > residualIntegralNsigma(2, temp);
0035   std::vector<std::vector<float> > residualIntegral(2, temp);
0036   std::vector<std::vector<uint16_t> > badStripBit(2, temp2);
0037   std::vector<std::vector<uint16_t> > deadStripBit(2, temp2);
0038 
0039   // pedestal values
0040   peds[0] = anal->peds()[0];
0041   peds[1] = anal->peds()[1];
0042   // noise values
0043   noise[0] = anal->noise()[0];
0044   noise[1] = anal->noise()[1];
0045   // AD probab
0046   adProbab[0] = anal->adProbab()[0];
0047   adProbab[1] = anal->adProbab()[1];
0048   // KS probab
0049   ksProbab[0] = anal->ksProbab()[0];
0050   ksProbab[1] = anal->ksProbab()[1];
0051   // JB probab
0052   jbProbab[0] = anal->jbProbab()[0];
0053   jbProbab[1] = anal->jbProbab()[1];
0054   // CHI2 probab
0055   chi2Probab[0] = anal->chi2Probab()[0];
0056   chi2Probab[1] = anal->chi2Probab()[1];
0057   // noise RMS
0058   chi2Probab[0] = anal->chi2Probab()[0];
0059   chi2Probab[1] = anal->chi2Probab()[1];
0060   // residual RMS
0061   residualRMS[0] = anal->residualRMS()[0];
0062   residualRMS[1] = anal->residualRMS()[1];
0063   // residual Sigma
0064   residualGaus[0] = anal->residualSigmaGaus()[0];
0065   residualGaus[1] = anal->residualSigmaGaus()[1];
0066   // noise Significance
0067   noiseSignificance[0] = anal->noiseSignificance()[0];
0068   noiseSignificance[1] = anal->noiseSignificance()[1];
0069   // residual mean
0070   residualMean[0] = anal->residualMean()[0];
0071   residualMean[1] = anal->residualMean()[1];
0072   // noise Skweness
0073   residualSkewness[0] = anal->residualSkewness()[0];
0074   residualSkewness[1] = anal->residualSkewness()[1];
0075   // noise Kurtosis
0076   residualKurtosis[0] = anal->residualKurtosis()[0];
0077   residualKurtosis[1] = anal->residualKurtosis()[1];
0078   // noise integral N sigma
0079   residualIntegralNsigma[0] = anal->residualIntegralNsigma()[0];
0080   residualIntegralNsigma[1] = anal->residualIntegralNsigma()[1];
0081   // noise integral N sigma
0082   residualIntegral[0] = anal->residualIntegral()[0];
0083   residualIntegral[1] = anal->residualIntegral()[1];
0084   // bit to indicate if a strip is flagged as bad or not
0085   residualIntegral[0] = anal->residualIntegral()[0];
0086   residualIntegral[1] = anal->residualIntegral()[1];
0087   // bit to indicate if a strip is bad (1) or not (0)
0088   badStripBit[0] = anal->badStripBit()[0];
0089   badStripBit[1] = anal->badStripBit()[1];
0090   // bit to indicate if a strip is dead (1) or not (0)
0091   deadStripBit[0] = anal->deadStripBit()[0];
0092   deadStripBit[1] = anal->deadStripBit()[1];
0093 
0094   bool all_strips = false;
0095   // Monitor pedestals value for each strip
0096   if (mon_ == sistrip::PEDESTALS_ALL_STRIPS) {
0097     all_strips = true;
0098     uint16_t bins = peds[0].size();
0099     if (peds[0].size() < peds[1].size()) {
0100       bins = peds[1].size();
0101     }
0102     for (uint16_t iped = 0; iped < bins; iped++) {
0103       value[0][iped] = peds[0][iped];
0104       value[1][iped] = peds[1][iped];
0105     }
0106   }
0107   // Monitor noise value for each strip
0108   else if (mon_ == sistrip::NOISE_ALL_STRIPS) {
0109     all_strips = true;
0110     uint16_t bins = noise[0].size();
0111     if (noise[0].size() < noise[1].size()) {
0112       bins = noise[1].size();
0113     }
0114     for (uint16_t inoise = 0; inoise < bins; inoise++) {
0115       value[0][inoise] = noise[0][inoise];
0116       value[1][inoise] = noise[1][inoise];
0117     }
0118   }
0119   // Monitor pedestals aD probability for each strip
0120   else if (mon_ == sistrip::AD_PROBAB_ALL_STRIPS) {
0121     all_strips = true;
0122     uint16_t bins = adProbab[0].size();
0123     if (adProbab[0].size() < adProbab[1].size()) {
0124       bins = adProbab[1].size();
0125     }
0126     for (uint16_t iad = 0; iad < bins; iad++) {
0127       value[0][iad] = adProbab[0][iad];
0128       value[1][iad] = adProbab[1][iad];
0129     }
0130   }
0131   // Monitor pedestals KS probability for each strip
0132   else if (mon_ == sistrip::KS_PROBAB_ALL_STRIPS) {
0133     all_strips = true;
0134     uint16_t bins = ksProbab[0].size();
0135     if (ksProbab[0].size() < ksProbab[1].size()) {
0136       bins = ksProbab[1].size();
0137     }
0138     for (uint16_t iks = 0; iks < bins; iks++) {
0139       value[0][iks] = ksProbab[0][iks];
0140       value[1][iks] = ksProbab[1][iks];
0141     }
0142   }
0143   // Monitor pedestals JB probability for each strip
0144   else if (mon_ == sistrip::JB_PROBAB_ALL_STRIPS) {
0145     all_strips = true;
0146     uint16_t bins = jbProbab[0].size();
0147     if (jbProbab[0].size() < jbProbab[1].size()) {
0148       bins = jbProbab[1].size();
0149     }
0150     for (uint16_t iks = 0; iks < bins; iks++) {
0151       value[0][iks] = jbProbab[0][iks];
0152       value[1][iks] = jbProbab[1][iks];
0153     }
0154   }
0155   // Monitor pedestals Chi2 probability for each strip
0156   else if (mon_ == sistrip::CHI2_PROBAB_ALL_STRIPS) {
0157     all_strips = true;
0158     uint16_t bins = chi2Probab[0].size();
0159     if (chi2Probab[0].size() < chi2Probab[1].size()) {
0160       bins = chi2Probab[1].size();
0161     }
0162     for (uint16_t iks = 0; iks < bins; iks++) {
0163       value[0][iks] = chi2Probab[0][iks];
0164       value[1][iks] = chi2Probab[1][iks];
0165     }
0166   }
0167   // Monitor pedestals RMS residual for each strip
0168   else if (mon_ == sistrip::RESIDUAL_RMS_ALL_STRIPS) {
0169     all_strips = true;
0170     uint16_t bins = residualRMS[0].size();
0171     if (residualRMS[0].size() < residualRMS[1].size()) {
0172       bins = residualRMS[1].size();
0173     }
0174     for (uint16_t iks = 0; iks < bins; iks++) {
0175       value[0][iks] = residualRMS[0][iks];
0176       value[1][iks] = residualRMS[1][iks];
0177     }
0178   }
0179   // Monitor pedestals sigma from gaussian firt for each strip
0180   else if (mon_ == sistrip::RESIDUAL_GAUS_ALL_STRIPS) {
0181     all_strips = true;
0182     uint16_t bins = residualGaus[0].size();
0183     if (residualGaus[0].size() < residualGaus[1].size()) {
0184       bins = residualGaus[1].size();
0185     }
0186     for (uint16_t iks = 0; iks < bins; iks++) {
0187       value[0][iks] = residualGaus[0][iks];
0188       value[1][iks] = residualGaus[1][iks];
0189     }
0190   }
0191   // Monitor pedestals noise significance for each strip
0192   else if (mon_ == sistrip::NOISE_SIGNIFICANCE_ALL_STRIPS) {
0193     all_strips = true;
0194     uint16_t bins = noiseSignificance[0].size();
0195     if (noiseSignificance[0].size() < noiseSignificance[1].size()) {
0196       bins = noiseSignificance[1].size();
0197     }
0198     for (uint16_t iks = 0; iks < bins; iks++) {
0199       value[0][iks] = noiseSignificance[0][iks];
0200       value[1][iks] = noiseSignificance[1][iks];
0201     }
0202   }
0203   // Monitor mean residual for each strip
0204   else if (mon_ == sistrip::RESIDUAL_MEAN_ALL_STRIPS) {
0205     all_strips = true;
0206     uint16_t bins = residualMean[0].size();
0207     if (residualMean[0].size() < residualMean[1].size()) {
0208       bins = residualMean[1].size();
0209     }
0210     for (uint16_t iks = 0; iks < bins; iks++) {
0211       value[0][iks] = residualMean[0][iks];
0212       value[1][iks] = residualMean[1][iks];
0213     }
0214   }
0215   // Monitor skweness for each strip
0216   else if (mon_ == sistrip::RESIDUAL_SKEWNESS_ALL_STRIPS) {
0217     all_strips = true;
0218     uint16_t bins = residualSkewness[0].size();
0219     if (residualSkewness[0].size() < residualSkewness[1].size()) {
0220       bins = residualSkewness[1].size();
0221     }
0222     for (uint16_t iks = 0; iks < bins; iks++) {
0223       value[0][iks] = residualSkewness[0][iks];
0224       value[1][iks] = residualSkewness[1][iks];
0225     }
0226   }
0227   // Monitor Kurtosis for each strip
0228   else if (mon_ == sistrip::RESIDUAL_KURTOSIS_ALL_STRIPS) {
0229     all_strips = true;
0230     uint16_t bins = residualKurtosis[0].size();
0231     if (residualKurtosis[0].size() < residualKurtosis[1].size()) {
0232       bins = residualKurtosis[1].size();
0233     }
0234     for (uint16_t iks = 0; iks < bins; iks++) {
0235       value[0][iks] = residualKurtosis[0][iks];
0236       value[1][iks] = residualKurtosis[1][iks];
0237     }
0238   }
0239   // Monitor Integral above N sigma for each strip
0240   else if (mon_ == sistrip::RESIDUAL_INTEGRALNSIGMA_ALL_STRIPS) {
0241     all_strips = true;
0242     uint16_t bins = residualIntegralNsigma[0].size();
0243     if (residualIntegralNsigma[0].size() < residualIntegralNsigma[1].size()) {
0244       bins = residualIntegralNsigma[1].size();
0245     }
0246     for (uint16_t iks = 0; iks < bins; iks++) {
0247       value[0][iks] = residualIntegralNsigma[0][iks];
0248       value[1][iks] = residualIntegralNsigma[1][iks];
0249     }
0250   }
0251   // Monitor integral for each strip
0252   else if (mon_ == sistrip::RESIDUAL_INTEGRAL_ALL_STRIPS) {
0253     all_strips = true;
0254     uint16_t bins = residualIntegral[0].size();
0255     if (residualIntegral[0].size() < residualIntegral[1].size()) {
0256       bins = residualIntegral[1].size();
0257     }
0258     for (uint16_t iks = 0; iks < bins; iks++) {
0259       value[0][iks] = residualIntegral[0][iks];
0260       value[1][iks] = residualIntegral[1][iks];
0261     }
0262   }
0263 
0264   // Monitor BadStrip bit
0265   else if (mon_ == sistrip::BAD_STRIP_BIT_ALL_STRIPS) {
0266     all_strips = true;
0267     uint16_t bins = badStripBit[0].size();
0268     if (badStripBit[0].size() < badStripBit[1].size()) {
0269       bins = badStripBit[1].size();
0270     }
0271     for (uint16_t iks = 0; iks < bins; iks++) {
0272       value[0][iks] = 1. * badStripBit[0][iks];
0273       value[1][iks] = 1. * badStripBit[1][iks];
0274     }
0275   }
0276   // Dead strip bit
0277   else if (mon_ == sistrip::DEAD_STRIP_BIT_ALL_STRIPS) {
0278     all_strips = true;
0279     uint16_t bins = deadStripBit[0].size();
0280     if (deadStripBit[0].size() < deadStripBit[1].size()) {
0281       bins = deadStripBit[1].size();
0282     }
0283     for (uint16_t iks = 0; iks < bins; iks++) {
0284       value[0][iks] = 1. * deadStripBit[0][iks];
0285       value[1][iks] = 1. * deadStripBit[1][iks];
0286     }
0287   }
0288 
0289   // Per APV information: pedsMean
0290   else if (mon_ == sistrip::PEDESTALS_MEAN) {
0291     value[0][0] = anal->pedsMean()[0];
0292     value[1][0] = anal->pedsMean()[1];
0293   }
0294 
0295   // Per APV information: pedsSpread
0296   else if (mon_ == sistrip::PEDESTALS_SPREAD) {
0297     value[0][0] = anal->pedsSpread()[0];
0298     value[1][0] = anal->pedsSpread()[1];
0299   }
0300 
0301   // Per APV information: pedsMax
0302   else if (mon_ == sistrip::PEDESTALS_MAX) {
0303     value[0][0] = anal->pedsMax()[0];
0304     value[1][0] = anal->pedsMax()[1];
0305   }
0306 
0307   // Per APV information: pedsMin
0308   else if (mon_ == sistrip::PEDESTALS_MIN) {
0309     value[0][0] = anal->pedsMin()[0];
0310     value[1][0] = anal->pedsMin()[1];
0311   }
0312 
0313   // Per APV information: noiseMean
0314   else if (mon_ == sistrip::NOISE_MEAN) {
0315     value[0][0] = anal->noiseMean()[0];
0316     value[1][0] = anal->noiseMean()[1];
0317   }
0318   // Per APV information: noiseSpread
0319   else if (mon_ == sistrip::NOISE_SPREAD) {
0320     value[0][0] = anal->noiseSpread()[0];
0321     value[1][0] = anal->noiseSpread()[1];
0322   }
0323   // Per APV information: noiseMax
0324   else if (mon_ == sistrip::NOISE_MAX) {
0325     value[0][0] = anal->noiseMax()[0];
0326     value[1][0] = anal->noiseMax()[1];
0327   }
0328   // Per APV information: noiseMin
0329   else if (mon_ == sistrip::NOISE_MIN) {
0330     value[0][0] = anal->noiseMin()[0];
0331     value[1][0] = anal->noiseMin()[1];
0332   }
0333 
0334   // BAD channels per APV
0335   else if (mon_ == sistrip::NUM_OF_DEAD) {
0336     value[0][0] = 1. * anal->deadStrip()[0].size();
0337     value[1][0] = 1. * anal->deadStrip()[1].size();
0338   } else if (mon_ == sistrip::NUM_OF_BAD) {
0339     value[0][0] = 1. * anal->badStrip()[0].size();
0340     value[1][0] = 1. * anal->badStrip()[1].size();
0341   } else if (mon_ == sistrip::NUM_OF_BAD_SHIFTED) {
0342     value[0][0] = 1. * anal->shiftedStrip()[0].size();
0343     value[1][0] = 1. * anal->shiftedStrip()[1].size();
0344   } else if (mon_ == sistrip::NUM_OF_BAD_LOW_NOISE) {
0345     value[0][0] = 1. * anal->lowNoiseStrip()[0].size();
0346     value[1][0] = 1. * anal->lowNoiseStrip()[1].size();
0347   } else if (mon_ == sistrip::NUM_OF_BAD_LARGE_NOISE) {
0348     value[0][0] = 1. * anal->largeNoiseStrip()[0].size();
0349     value[1][0] = 1. * anal->largeNoiseStrip()[1].size();
0350   } else if (mon_ == sistrip::NUM_OF_BAD_LARGE_SIGNIF) {
0351     value[0][0] = 1. * anal->largeNoiseSignificance()[0].size();
0352     value[1][0] = 1. * anal->largeNoiseSignificance()[1].size();
0353   } else if (mon_ == sistrip::NUM_OF_BAD_FIT_STATUS) {
0354     value[0][0] = 1. * anal->badFitStatus()[0].size();
0355     value[1][0] = 1. * anal->badFitStatus()[1].size();
0356   } else if (mon_ == sistrip::NUM_OF_BAD_AD_PROBAB) {
0357     value[0][0] = 1. * anal->badADProbab()[0].size();
0358     value[1][0] = 1. * anal->badADProbab()[1].size();
0359   } else if (mon_ == sistrip::NUM_OF_BAD_KS_PROBAB) {
0360     value[0][0] = 1. * anal->badKSProbab()[0].size();
0361     value[1][0] = 1. * anal->badKSProbab()[1].size();
0362   } else if (mon_ == sistrip::NUM_OF_BAD_JB_PROBAB) {
0363     value[0][0] = 1. * anal->badJBProbab()[0].size();
0364     value[1][0] = 1. * anal->badJBProbab()[1].size();
0365   } else if (mon_ == sistrip::NUM_OF_BAD_CHI2_PROBAB) {
0366     value[0][0] = 1. * anal->badChi2Probab()[0].size();
0367     value[1][0] = 1. * anal->badChi2Probab()[1].size();
0368   } else if (mon_ == sistrip::NUM_OF_BAD_TAIL) {
0369     value[0][0] = 1. * anal->badTailStrip()[0].size();
0370     value[1][0] = 1. * anal->badTailStrip()[1].size();
0371   } else if (mon_ == sistrip::NUM_OF_BAD_DOUBLE_PEAK) {
0372     value[0][0] = 1. * anal->badDoublePeakStrip()[0].size();
0373     value[1][0] = 1. * anal->badDoublePeakStrip()[1].size();
0374   } else {
0375     edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactory::" << __func__ << "]"
0376                                      << " Unexpected monitorable: "
0377                                      << SiStripEnumsAndStrings::monitorable(SummaryPlotFactoryBase::mon_);
0378     return;
0379   }
0380 
0381   if (!all_strips) {
0382     SummaryPlotFactoryBase::generator_->fillMap(
0383         SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[0][0]);
0384 
0385     SummaryPlotFactoryBase::generator_->fillMap(
0386         SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[1][0]);
0387 
0388   } else {
0389     for (uint16_t istr = 0; istr < value[0].size(); istr++) {
0390       SummaryPlotFactoryBase::generator_->fillMap(
0391           SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[0][istr]);
0392     }
0393 
0394     for (uint16_t istr = 0; istr < value[1].size(); istr++) {
0395       SummaryPlotFactoryBase::generator_->fillMap(
0396           SummaryPlotFactoryBase::level_, SummaryPlotFactoryBase::gran_, iter->first, value[1][istr]);
0397     }
0398   }
0399 }
0400 
0401 // -----------------------------------------------------------------------------
0402 //
0403 void PedsFullNoiseSummaryFactory::format() {
0404   if (mon_ == sistrip::PEDESTALS_ALL_STRIPS) {
0405     generator_->axisLabel("Pedestal value [adc]");
0406   } else if (mon_ == sistrip::PEDESTALS_MEAN) {
0407   } else if (mon_ == sistrip::PEDESTALS_SPREAD) {
0408   } else if (mon_ == sistrip::PEDESTALS_MAX) {
0409   } else if (mon_ == sistrip::PEDESTALS_MIN) {
0410   } else if (mon_ == sistrip::NOISE_ALL_STRIPS) {
0411     generator_->axisLabel("Noise [adc]");
0412   } else if (mon_ == sistrip::NOISE_MEAN) {
0413   } else if (mon_ == sistrip::NOISE_SPREAD) {
0414   } else if (mon_ == sistrip::NOISE_MAX) {
0415   } else if (mon_ == sistrip::NOISE_MIN) {
0416   } else if (mon_ == sistrip::AD_PROBAB_ALL_STRIPS) {
0417     generator_->axisLabel("Anderson-Darling p-value");
0418   } else if (mon_ == sistrip::KS_PROBAB_ALL_STRIPS) {
0419     generator_->axisLabel("Kolmogorov-Smirnov p-value");
0420   } else if (mon_ == sistrip::JB_PROBAB_ALL_STRIPS) {
0421     generator_->axisLabel("Jacque-Bera p-value");
0422   } else if (mon_ == sistrip::CHI2_PROBAB_ALL_STRIPS) {
0423     generator_->axisLabel("Chi2 p-value");
0424   } else if (mon_ == sistrip::RESIDUAL_RMS_ALL_STRIPS) {
0425     generator_->axisLabel("Residual RMS [adc]");
0426   } else if (mon_ == sistrip::RESIDUAL_GAUS_ALL_STRIPS) {
0427     generator_->axisLabel("Residual Gaus [adc]");
0428   } else if (mon_ == sistrip::NOISE_SIGNIFICANCE_ALL_STRIPS) {
0429     generator_->axisLabel("Noise Significance");
0430   } else if (mon_ == sistrip::RESIDUAL_MEAN_ALL_STRIPS) {
0431     generator_->axisLabel("Residual Mean [adc]");
0432   } else if (mon_ == sistrip::RESIDUAL_SKEWNESS_ALL_STRIPS) {
0433     generator_->axisLabel("Residual Skewness [adc]");
0434   } else if (mon_ == sistrip::RESIDUAL_KURTOSIS_ALL_STRIPS) {
0435     generator_->axisLabel("Residual Kurtosis [adc]");
0436   } else if (mon_ == sistrip::RESIDUAL_INTEGRALNSIGMA_ALL_STRIPS) {
0437     generator_->axisLabel("Residual Integral at N sigma");
0438   } else if (mon_ == sistrip::RESIDUAL_INTEGRAL_ALL_STRIPS) {
0439     generator_->axisLabel("Residual Integral");
0440   } else if (mon_ == sistrip::BAD_STRIP_BIT_ALL_STRIPS) {
0441     generator_->axisLabel("Bad Strip Bit");
0442   } else if (mon_ == sistrip::DEAD_STRIP_BIT_ALL_STRIPS) {
0443     generator_->axisLabel("Dead Strip Bit");
0444   } else if (mon_ == sistrip::NUM_OF_DEAD) {
0445   } else if (mon_ == sistrip::NUM_OF_BAD) {
0446   } else if (mon_ == sistrip::NUM_OF_BAD_SHIFTED) {
0447   } else if (mon_ == sistrip::NUM_OF_BAD_LOW_NOISE) {
0448   } else if (mon_ == sistrip::NUM_OF_BAD_LARGE_NOISE) {
0449   } else if (mon_ == sistrip::NUM_OF_BAD_LARGE_SIGNIF) {
0450   } else if (mon_ == sistrip::NUM_OF_BAD_FIT_STATUS) {
0451   } else if (mon_ == sistrip::NUM_OF_BAD_AD_PROBAB) {
0452   } else if (mon_ == sistrip::NUM_OF_BAD_KS_PROBAB) {
0453   } else if (mon_ == sistrip::NUM_OF_BAD_JB_PROBAB) {
0454   } else if (mon_ == sistrip::NUM_OF_BAD_CHI2_PROBAB) {
0455   } else if (mon_ == sistrip::NUM_OF_BAD_TAIL) {
0456   } else if (mon_ == sistrip::NUM_OF_BAD_DOUBLE_PEAK) {
0457   }
0458 
0459   else {
0460     edm::LogWarning(mlSummaryPlots_) << "[SummaryPlotFactory::" << __func__ << "]"
0461                                      << " Unexpected SummaryHisto value:"
0462                                      << SiStripEnumsAndStrings::monitorable(SummaryPlotFactoryBase::mon_);
0463   }
0464 }