CMS 3D CMS Logo

PedsFullNoiseSummaryFactory.cc
Go to the documentation of this file.
5 #include <iostream>
6 #include <sstream>
7 
8 using namespace sistrip;
9 
10 // -----------------------------------------------------------------------------
11 //
13 
14  PedsFullNoiseAnalysis* anal = dynamic_cast<PedsFullNoiseAnalysis*>( iter->second );
15  if ( !anal ) { return; }
16 
17  std::vector< float > temp(128, 1. * sistrip::invalid_ );
18  std::vector< uint16_t > temp2(128, sistrip::invalid_);
19 
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);
37 
38  // pedestal values
39  peds[0] = anal->peds()[0];
40  peds[1] = anal->peds()[1];
41  // noise values
42  noise[0] = anal->noise()[0];
43  noise[1] = anal->noise()[1];
44  // AD probab
45  adProbab[0] = anal->adProbab()[0];
46  adProbab[1] = anal->adProbab()[1];
47  // KS probab
48  ksProbab[0] = anal->ksProbab()[0];
49  ksProbab[1] = anal->ksProbab()[1];
50  // JB probab
51  jbProbab[0] = anal->jbProbab()[0];
52  jbProbab[1] = anal->jbProbab()[1];
53  // CHI2 probab
54  chi2Probab[0] = anal->chi2Probab()[0];
55  chi2Probab[1] = anal->chi2Probab()[1];
56  // noise RMS
57  chi2Probab[0] = anal->chi2Probab()[0];
58  chi2Probab[1] = anal->chi2Probab()[1];
59  // residual RMS
60  residualRMS[0] = anal->residualRMS()[0];
61  residualRMS[1] = anal->residualRMS()[1];
62  // residual Sigma
63  residualGaus[0] = anal->residualSigmaGaus()[0];
64  residualGaus[1] = anal->residualSigmaGaus()[1];
65  // noise Significance
66  noiseSignificance[0] = anal->noiseSignificance()[0];
67  noiseSignificance[1] = anal->noiseSignificance()[1];
68  // residual mean
69  residualMean[0] = anal->residualMean()[0];
70  residualMean[1] = anal->residualMean()[1];
71  // noise Skweness
72  residualSkewness[0] = anal->residualSkewness()[0];
73  residualSkewness[1] = anal->residualSkewness()[1];
74  // noise Kurtosis
75  residualKurtosis[0] = anal->residualKurtosis()[0];
76  residualKurtosis[1] = anal->residualKurtosis()[1];
77  // noise integral N sigma
78  residualIntegralNsigma[0] = anal->residualIntegralNsigma()[0];
79  residualIntegralNsigma[1] = anal->residualIntegralNsigma()[1];
80  // noise integral N sigma
81  residualIntegral[0] = anal->residualIntegral()[0];
82  residualIntegral[1] = anal->residualIntegral()[1];
83  // bit to indicate if a strip is flagged as bad or not
84  residualIntegral[0] = anal->residualIntegral()[0];
85  residualIntegral[1] = anal->residualIntegral()[1];
86  // bit to indicate if a strip is bad (1) or not (0)
87  badStripBit[0] = anal->badStripBit()[0];
88  badStripBit[1] = anal->badStripBit()[1];
89  // bit to indicate if a strip is dead (1) or not (0)
90  deadStripBit[0] = anal->deadStripBit()[0];
91  deadStripBit[1] = anal->deadStripBit()[1];
92 
93  bool all_strips = false;
94  // Monitor pedestals value for each strip
95  if (mon_ == sistrip::PEDESTALS_ALL_STRIPS ) {
96  all_strips = true;
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];
102  }
103  }
104  // Monitor noise value for each strip
105  else if ( mon_ == sistrip::NOISE_ALL_STRIPS ) {
106  all_strips = true;
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];
112  }
113  }
114  // Monitor pedestals aD probability for each strip
115  else if ( mon_ == sistrip::AD_PROBAB_ALL_STRIPS ) {
116  all_strips = true;
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];
122  }
123  }
124  // Monitor pedestals KS probability for each strip
125  else if ( mon_ == sistrip::KS_PROBAB_ALL_STRIPS ) {
126  all_strips = true;
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];
132  }
133  }
134  // Monitor pedestals JB probability for each strip
135  else if ( mon_ == sistrip::JB_PROBAB_ALL_STRIPS ) {
136  all_strips = true;
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];
142  }
143  }
144  // Monitor pedestals Chi2 probability for each strip
145  else if ( mon_ == sistrip::CHI2_PROBAB_ALL_STRIPS ) {
146  all_strips = true;
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];
152  }
153  }
154  // Monitor pedestals RMS residual for each strip
155  else if ( mon_ == sistrip::RESIDUAL_RMS_ALL_STRIPS) {
156  all_strips = true;
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];
162  }
163  }
164  // Monitor pedestals sigma from gaussian firt for each strip
165  else if ( mon_ == sistrip::RESIDUAL_GAUS_ALL_STRIPS) {
166  all_strips = true;
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];
172  }
173  }
174  // Monitor pedestals noise significance for each strip
175  else if ( mon_ == sistrip::NOISE_SIGNIFICANCE_ALL_STRIPS) {
176  all_strips = true;
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];
182  }
183  }
184  // Monitor mean residual for each strip
185  else if ( mon_ == sistrip::RESIDUAL_MEAN_ALL_STRIPS) {
186  all_strips = true;
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];
192  }
193  }
194  // Monitor skweness for each strip
195  else if ( mon_ == sistrip::RESIDUAL_SKEWNESS_ALL_STRIPS) {
196  all_strips = true;
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];
202  }
203  }
204  // Monitor Kurtosis for each strip
205  else if ( mon_ == sistrip::RESIDUAL_KURTOSIS_ALL_STRIPS) {
206  all_strips = true;
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];
212  }
213  }
214  // Monitor Integral above N sigma for each strip
216  all_strips = true;
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];
222  }
223  }
224  // Monitor integral for each strip
225  else if ( mon_ == sistrip::RESIDUAL_INTEGRAL_ALL_STRIPS) {
226  all_strips = true;
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];
232  }
233  }
234 
235  // Monitor BadStrip bit
236  else if ( mon_ == sistrip::BAD_STRIP_BIT_ALL_STRIPS) {
237  all_strips = true;
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];
243  }
244  }
245  // Dead strip bit
246  else if ( mon_ == sistrip::DEAD_STRIP_BIT_ALL_STRIPS) {
247  all_strips = true;
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];
253  }
254  }
255 
256  // Per APV information: pedsMean
257  else if ( mon_ == sistrip::PEDESTALS_MEAN ) {
258  value[0][0] = anal->pedsMean()[0];
259  value[1][0] = anal->pedsMean()[1];
260  }
261 
262  // Per APV information: pedsSpread
263  else if ( mon_ == sistrip::PEDESTALS_SPREAD ) {
264  value[0][0] = anal->pedsSpread()[0];
265  value[1][0] = anal->pedsSpread()[1];
266  }
267 
268  // Per APV information: pedsMax
269  else if ( mon_ == sistrip::PEDESTALS_MAX ) {
270  value[0][0] = anal->pedsMax()[0];
271  value[1][0] = anal->pedsMax()[1];
272  }
273 
274  // Per APV information: pedsMin
275  else if ( mon_ == sistrip::PEDESTALS_MIN ) {
276  value[0][0] = anal->pedsMin()[0];
277  value[1][0] = anal->pedsMin()[1];
278  }
279 
280  // Per APV information: noiseMean
281  else if ( mon_ == sistrip::NOISE_MEAN ) {
282  value[0][0] = anal->noiseMean()[0];
283  value[1][0] = anal->noiseMean()[1];
284  }
285  // Per APV information: noiseSpread
286  else if ( mon_ == sistrip::NOISE_SPREAD ) {
287  value[0][0] = anal->noiseSpread()[0];
288  value[1][0] = anal->noiseSpread()[1];
289  }
290  // Per APV information: noiseMax
291  else if ( mon_ == sistrip::NOISE_MAX ) {
292  value[0][0] = anal->noiseMax()[0];
293  value[1][0] = anal->noiseMax()[1];
294  }
295  // Per APV information: noiseMin
296  else if ( mon_ == sistrip::NOISE_MIN ) {
297  value[0][0] = anal->noiseMin()[0];
298  value[1][0] = anal->noiseMin()[1];
299  }
300 
301  // BAD channels per APV
302  else if ( mon_ == sistrip::NUM_OF_DEAD ) {
303  value[0][0] = 1. * anal->deadStrip()[0].size();
304  value[1][0] = 1. * anal->deadStrip()[1].size();
305  }
306  else if ( mon_ == sistrip::NUM_OF_BAD ) {
307  value[0][0] = 1. * anal->badStrip()[0].size();
308  value[1][0] = 1. * anal->badStrip()[1].size();
309  }
310  else if ( mon_ == sistrip::NUM_OF_BAD_SHIFTED) {
311  value[0][0] = 1. * anal->shiftedStrip()[0].size();
312  value[1][0] = 1. * anal->shiftedStrip()[1].size();
313  }
314  else if ( mon_ == sistrip::NUM_OF_BAD_LOW_NOISE) {
315  value[0][0] = 1. * anal->lowNoiseStrip()[0].size();
316  value[1][0] = 1. * anal->lowNoiseStrip()[1].size();
317  }
318  else if ( mon_ == sistrip::NUM_OF_BAD_LARGE_NOISE) {
319  value[0][0] = 1. * anal->largeNoiseStrip()[0].size();
320  value[1][0] = 1. * anal->largeNoiseStrip()[1].size();
321  }
322  else if ( mon_ == sistrip::NUM_OF_BAD_LARGE_SIGNIF) {
323  value[0][0] = 1. * anal->largeNoiseSignificance()[0].size();
324  value[1][0] = 1. * anal->largeNoiseSignificance()[1].size();
325  }
326  else if ( mon_ == sistrip::NUM_OF_BAD_FIT_STATUS) {
327  value[0][0] = 1. * anal->badFitStatus()[0].size();
328  value[1][0] = 1. * anal->badFitStatus()[1].size();
329  }
330  else if ( mon_ == sistrip::NUM_OF_BAD_AD_PROBAB) {
331  value[0][0] = 1. * anal->badADProbab()[0].size();
332  value[1][0] = 1. * anal->badADProbab()[1].size();
333  }
334  else if ( mon_ == sistrip::NUM_OF_BAD_KS_PROBAB) {
335  value[0][0] = 1. * anal->badKSProbab()[0].size();
336  value[1][0] = 1. * anal->badKSProbab()[1].size();
337  }
338  else if ( mon_ == sistrip::NUM_OF_BAD_JB_PROBAB) {
339  value[0][0] = 1. * anal->badJBProbab()[0].size();
340  value[1][0] = 1. * anal->badJBProbab()[1].size();
341  }
342  else if ( mon_ == sistrip::NUM_OF_BAD_CHI2_PROBAB) {
343  value[0][0] = 1. * anal->badChi2Probab()[0].size();
344  value[1][0] = 1. * anal->badChi2Probab()[1].size();
345  }
346  else if ( mon_ == sistrip::NUM_OF_BAD_TAIL) {
347  value[0][0] = 1. * anal->badTailStrip()[0].size();
348  value[1][0] = 1. * anal->badTailStrip()[1].size();
349  }
350  else if ( mon_ == sistrip::NUM_OF_BAD_DOUBLE_PEAK) {
351  value[0][0] = 1. * anal->badDoublePeakStrip()[0].size();
352  value[1][0] = 1. * anal->badDoublePeakStrip()[1].size();
353  }
354  else {
356  << "[SummaryPlotFactory::" << __func__ << "]"
357  << " Unexpected monitorable: "
359  return;
360  }
361 
362  if ( !all_strips ) {
363 
366  iter->first,
367  value[0][0] );
368 
371  iter->first,
372  value[1][0] );
373 
374  }
375  else {
376 
377  for ( uint16_t istr = 0; istr < value[0].size(); istr++ ) {
380  iter->first,
381  value[0][istr] );
382  }
383 
384  for ( uint16_t istr = 0; istr < value[1].size(); istr++ ) {
387  iter->first,
388  value[1][istr] );
389  }
390  }
391 }
392 
393 // -----------------------------------------------------------------------------
394 //
396 
397  if ( mon_ == sistrip::PEDESTALS_ALL_STRIPS ) {
398  generator_->axisLabel( "Pedestal value [adc]" );
399  }
400  else if ( mon_ == sistrip::PEDESTALS_MEAN ) {
401  }
402  else if ( mon_ == sistrip::PEDESTALS_SPREAD ) {
403  }
404  else if ( mon_ == sistrip::PEDESTALS_MAX ) {
405  }
406  else if ( mon_ == sistrip::PEDESTALS_MIN ) {
407  }
408  else if ( mon_ == sistrip::NOISE_ALL_STRIPS ) {
409  generator_->axisLabel( "Noise [adc]" );
410  }
411  else if ( mon_ == sistrip::NOISE_MEAN ) {
412  }
413  else if ( mon_ == sistrip::NOISE_SPREAD ) {
414  }
415  else if ( mon_ == sistrip::NOISE_MAX ) {
416  }
417  else if ( mon_ == sistrip::NOISE_MIN ) {
418  }
419  else if( mon_ == sistrip::AD_PROBAB_ALL_STRIPS) {
420  generator_->axisLabel("Anderson-Darling p-value" );
421  }
422  else if( mon_ == sistrip::KS_PROBAB_ALL_STRIPS) {
423  generator_->axisLabel("Kolmogorov-Smirnov p-value" );
424  }
425  else if( mon_ == sistrip::JB_PROBAB_ALL_STRIPS) {
426  generator_->axisLabel("Jacque-Bera p-value" );
427  }
428  else if( mon_ == sistrip::CHI2_PROBAB_ALL_STRIPS) {
429  generator_->axisLabel("Chi2 p-value" );
430  }
431  else if( mon_ == sistrip::RESIDUAL_RMS_ALL_STRIPS) {
432  generator_->axisLabel("Residual RMS [adc]" );
433  }
434  else if( mon_ == sistrip::RESIDUAL_GAUS_ALL_STRIPS) {
435  generator_->axisLabel("Residual Gaus [adc]" );
436  }
437  else if( mon_ == sistrip::NOISE_SIGNIFICANCE_ALL_STRIPS) {
438  generator_->axisLabel("Noise Significance" );
439  }
440  else if( mon_ == sistrip::RESIDUAL_MEAN_ALL_STRIPS) {
441  generator_->axisLabel("Residual Mean [adc]" );
442  }
443  else if( mon_ == sistrip::RESIDUAL_SKEWNESS_ALL_STRIPS) {
444  generator_->axisLabel("Residual Skewness [adc]" );
445  }
446  else if( mon_ == sistrip::RESIDUAL_KURTOSIS_ALL_STRIPS) {
447  generator_->axisLabel("Residual Kurtosis [adc]" );
448  }
450  generator_->axisLabel("Residual Integral at N sigma" );
451  }
452  else if( mon_ == sistrip::RESIDUAL_INTEGRAL_ALL_STRIPS) {
453  generator_->axisLabel("Residual Integral" );
454  }
455  else if( mon_ == sistrip::BAD_STRIP_BIT_ALL_STRIPS) {
456  generator_->axisLabel("Bad Strip Bit" );
457  }
458  else if( mon_ == sistrip::DEAD_STRIP_BIT_ALL_STRIPS) {
459  generator_->axisLabel("Dead Strip Bit" );
460  }
461  else if( mon_ == sistrip::NUM_OF_DEAD) {
462  }
463  else if( mon_ == sistrip::NUM_OF_BAD) {
464  }
465  else if( mon_ == sistrip::NUM_OF_BAD_SHIFTED) {
466  }
467  else if( mon_ == sistrip::NUM_OF_BAD_LOW_NOISE) {
468  }
469  else if( mon_ == sistrip::NUM_OF_BAD_LARGE_NOISE) {
470  }
471  else if( mon_ == sistrip::NUM_OF_BAD_LARGE_SIGNIF) {
472  }
473  else if( mon_ == sistrip::NUM_OF_BAD_FIT_STATUS) {
474  }
475  else if( mon_ == sistrip::NUM_OF_BAD_AD_PROBAB) {
476  }
477  else if( mon_ == sistrip::NUM_OF_BAD_KS_PROBAB) {
478  }
479  else if( mon_ == sistrip::NUM_OF_BAD_JB_PROBAB) {
480  }
481  else if( mon_ == sistrip::NUM_OF_BAD_CHI2_PROBAB) {
482  }
483  else if( mon_ == sistrip::NUM_OF_BAD_TAIL) {
484  }
485  else if( mon_ == sistrip::NUM_OF_BAD_DOUBLE_PEAK) {
486  }
487 
488  else {
490  << "[SummaryPlotFactory::" << __func__ << "]"
491  << " Unexpected SummaryHisto value:"
493  }
494 
495 }
size
Write out results.
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
sistrip classes
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
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_
Definition: Constants.h:16
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