15 if ( !anal ) {
return; }
20 std::vector< std::vector<float> >
value (2, temp);
21 std::vector< std::vector<float> > peds (2, temp);
22 std::vector< std::vector<float> > noise(2, temp);
23 std::vector< std::vector<float> > adProbab(2, temp);
24 std::vector< std::vector<float> > ksProbab(2, temp);
25 std::vector< std::vector<float> > jbProbab(2, temp);
26 std::vector< std::vector<float> > chi2Probab(2, temp);
27 std::vector< std::vector<float> > residualRMS(2, temp);
28 std::vector< std::vector<float> > residualGaus(2, temp);
29 std::vector< std::vector<float> > noiseSignificance(2, temp);
30 std::vector< std::vector<float> > residualMean(2, temp);
31 std::vector< std::vector<float> > residualSkewness(2, temp);
32 std::vector< std::vector<float> > residualKurtosis(2, temp);
33 std::vector< std::vector<float> > residualIntegralNsigma(2, temp);
34 std::vector< std::vector<float> > residualIntegral(2, temp);
35 std::vector< std::vector<uint16_t> > badStripBit(2, temp2);
36 std::vector< std::vector<uint16_t> > deadStripBit(2, temp2);
39 peds[0] = anal->
peds()[0];
40 peds[1] = anal->
peds()[1];
42 noise[0] = anal->
noise()[0];
43 noise[1] = anal->
noise()[1];
93 bool all_strips =
false;
97 uint16_t
bins = peds[0].size();
98 if (peds[0].
size() < peds[1].
size() ) { bins = peds[1].size(); }
99 for( uint16_t iped = 0; iped <
bins; iped++ ) {
100 value[0][iped] = peds[0][iped];
101 value[1][iped] = peds[1][iped];
107 uint16_t
bins = noise[0].size();
108 if ( noise[0].
size() < noise[1].
size() ) { bins = noise[1].size(); }
109 for ( uint16_t inoise = 0; inoise <
bins; inoise++ ) {
110 value[0][inoise] = noise[0][inoise];
111 value[1][inoise] = noise[1][inoise];
117 uint16_t
bins = adProbab[0].size();
118 if ( adProbab[0].
size() < adProbab[1].
size() ) { bins = adProbab[1].size(); }
119 for ( uint16_t iad = 0; iad <
bins; iad++ ) {
120 value[0][iad] = adProbab[0][iad];
121 value[1][iad] = adProbab[1][iad];
127 uint16_t
bins = ksProbab[0].size();
128 if ( ksProbab[0].
size() < ksProbab[1].
size() ) { bins = ksProbab[1].size(); }
129 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
130 value[0][iks] = ksProbab[0][iks];
131 value[1][iks] = ksProbab[1][iks];
137 uint16_t
bins = jbProbab[0].size();
138 if ( jbProbab[0].
size() < jbProbab[1].
size() ) { bins = jbProbab[1].size(); }
139 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
140 value[0][iks] = jbProbab[0][iks];
141 value[1][iks] = jbProbab[1][iks];
147 uint16_t
bins = chi2Probab[0].size();
148 if ( chi2Probab[0].
size() < chi2Probab[1].
size() ) { bins = chi2Probab[1].size(); }
149 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
150 value[0][iks] = chi2Probab[0][iks];
151 value[1][iks] = chi2Probab[1][iks];
157 uint16_t
bins = residualRMS[0].size();
158 if ( residualRMS[0].
size() < residualRMS[1].
size() ) { bins = residualRMS[1].size(); }
159 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
160 value[0][iks] = residualRMS[0][iks];
161 value[1][iks] = residualRMS[1][iks];
167 uint16_t
bins = residualGaus[0].size();
168 if ( residualGaus[0].
size() < residualGaus[1].
size() ) { bins = residualGaus[1].size(); }
169 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
170 value[0][iks] = residualGaus[0][iks];
171 value[1][iks] = residualGaus[1][iks];
177 uint16_t
bins = noiseSignificance[0].size();
178 if (noiseSignificance[0].
size() < noiseSignificance[1].
size() ) { bins = noiseSignificance[1].size(); }
179 for (uint16_t iks = 0; iks <
bins; iks++ ) {
180 value[0][iks] = noiseSignificance[0][iks];
181 value[1][iks] = noiseSignificance[1][iks];
187 uint16_t
bins = residualMean[0].size();
188 if ( residualMean[0].
size() < residualMean[1].
size() ) { bins = residualMean[1].size(); }
189 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
190 value[0][iks] = residualMean[0][iks];
191 value[1][iks] = residualMean[1][iks];
197 uint16_t
bins = residualSkewness[0].size();
198 if ( residualSkewness[0].
size() < residualSkewness[1].
size() ) { bins = residualSkewness[1].size(); }
199 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
200 value[0][iks] = residualSkewness[0][iks];
201 value[1][iks] = residualSkewness[1][iks];
207 uint16_t
bins = residualKurtosis[0].size();
208 if ( residualKurtosis[0].
size() < residualKurtosis[1].
size() ) { bins = residualKurtosis[1].size(); }
209 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
210 value[0][iks] = residualKurtosis[0][iks];
211 value[1][iks] = residualKurtosis[1][iks];
217 uint16_t
bins = residualIntegralNsigma[0].size();
218 if ( residualIntegralNsigma[0].
size() < residualIntegralNsigma[1].
size() ) { bins = residualIntegralNsigma[1].size(); }
219 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
220 value[0][iks] = residualIntegralNsigma[0][iks];
221 value[1][iks] = residualIntegralNsigma[1][iks];
227 uint16_t
bins = residualIntegral[0].size();
228 if ( residualIntegral[0].
size() < residualIntegral[1].
size() ) { bins = residualIntegral[1].size(); }
229 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
230 value[0][iks] = residualIntegral[0][iks];
231 value[1][iks] = residualIntegral[1][iks];
238 uint16_t
bins = badStripBit[0].size();
239 if ( badStripBit[0].
size() < badStripBit[1].
size() ) { bins = badStripBit[1].size(); }
240 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
241 value[0][iks] = 1.*badStripBit[0][iks];
242 value[1][iks] = 1.*badStripBit[1][iks];
248 uint16_t
bins = deadStripBit[0].size();
249 if ( deadStripBit[0].
size() < deadStripBit[1].
size() ) { bins = deadStripBit[1].size(); }
250 for ( uint16_t iks = 0; iks <
bins; iks++ ) {
251 value[0][iks] = 1.*deadStripBit[0][iks];
252 value[1][iks] = 1.*deadStripBit[1][iks];
270 value[0][0] = anal->
pedsMax()[0];
271 value[1][0] = anal->
pedsMax()[1];
276 value[0][0] = anal->
pedsMin()[0];
277 value[1][0] = anal->
pedsMin()[1];
303 value[0][0] = 1. * anal->
deadStrip()[0].size();
304 value[1][0] = 1. * anal->
deadStrip()[1].size();
307 value[0][0] = 1. * anal->
badStrip()[0].size();
308 value[1][0] = 1. * anal->
badStrip()[1].size();
356 <<
"[SummaryPlotFactory::" << __func__ <<
"]" 357 <<
" Unexpected monitorable: " 377 for ( uint16_t istr = 0; istr < value[0].size(); istr++ ) {
384 for ( uint16_t istr = 0; istr < value[1].size(); istr++ ) {
398 generator_->axisLabel(
"Pedestal value [adc]" );
409 generator_->axisLabel(
"Noise [adc]" );
420 generator_->axisLabel(
"Anderson-Darling p-value" );
423 generator_->axisLabel(
"Kolmogorov-Smirnov p-value" );
426 generator_->axisLabel(
"Jacque-Bera p-value" );
429 generator_->axisLabel(
"Chi2 p-value" );
432 generator_->axisLabel(
"Residual RMS [adc]" );
435 generator_->axisLabel(
"Residual Gaus [adc]" );
438 generator_->axisLabel(
"Noise Significance" );
441 generator_->axisLabel(
"Residual Mean [adc]" );
444 generator_->axisLabel(
"Residual Skewness [adc]" );
447 generator_->axisLabel(
"Residual Kurtosis [adc]" );
450 generator_->axisLabel(
"Residual Integral at N sigma" );
453 generator_->axisLabel(
"Residual Integral" );
456 generator_->axisLabel(
"Bad Strip Bit" );
459 generator_->axisLabel(
"Dead Strip Bit" );
490 <<
"[SummaryPlotFactory::" << __func__ <<
"]" 491 <<
" Unexpected SummaryHisto value:"
const VVInt & lowNoiseStrip() const
static std::string monitorable(const sistrip::Monitorable &)
const VVInt & badJBProbab() const
sistrip::Monitorable mon_
const VVFloat & residualKurtosis() const
const VVFloat & chi2Probab() const
const VVFloat & residualSkewness() const
const VVInt & badStripBit() const
const VVFloat & peds() const
const VVFloat & ksProbab() const
const VFloat & noiseMax() const
const VVInt & badADProbab() const
Histogram-based analysis for pedestal run.
const VVInt & deadStrip() const
const VFloat & noiseMin() const
const VVFloat & residualIntegralNsigma() const
void fillMap(const std::string &top_level_dir, const sistrip::Granularity &, const uint32_t &key, const float &value, const float &error=0.)
const VVFloat & adProbab() const
const VFloat & pedsSpread() const
const VFloat & pedsMax() const
const VFloat & pedsMean() const
const VFloat & pedsMin() const
const VVInt & badChi2Probab() const
sistrip::Granularity gran_
const VVInt & deadStripBit() const
const VVInt & shiftedStrip() const
const VVInt & badKSProbab() const
const VVInt & badDoublePeakStrip() const
void extract(Iterator) override
const VVFloat & jbProbab() const
static const char mlSummaryPlots_[]
const VVFloat & noise() const
const VVFloat & noiseSignificance() const
SummaryGenerator * generator_
const VVFloat & residualSigmaGaus() const
const VVFloat & residualIntegral() const
static const uint16_t invalid_
const VVFloat & residualRMS() const
const VVInt & largeNoiseSignificance() const
const VVInt & badTailStrip() const
const VVInt & largeNoiseStrip() const
const VFloat & noiseSpread() const
const VVInt & badFitStatus() const
const VFloat & noiseMean() const
const VVInt & badStrip() const
const VVFloat & residualMean() const