8 using namespace sistrip;
21 std::vector<std::vector<float> >
value(2, temp);
22 std::vector<std::vector<float> > peds(2, temp);
23 std::vector<std::vector<float> >
noise(2, temp);
24 std::vector<std::vector<float> > adProbab(2, temp);
25 std::vector<std::vector<float> > ksProbab(2, temp);
26 std::vector<std::vector<float> > jbProbab(2, temp);
27 std::vector<std::vector<float> > chi2Probab(2, temp);
28 std::vector<std::vector<float> > residualRMS(2, temp);
29 std::vector<std::vector<float> > residualGaus(2, temp);
30 std::vector<std::vector<float> > noiseSignificance(2, temp);
31 std::vector<std::vector<float> > residualMean(2, temp);
32 std::vector<std::vector<float> > residualSkewness(2, temp);
33 std::vector<std::vector<float> > residualKurtosis(2, temp);
34 std::vector<std::vector<float> > residualIntegralNsigma(2, temp);
35 std::vector<std::vector<float> > residualIntegral(2, temp);
36 std::vector<std::vector<uint16_t> > badStripBit(2, temp2);
37 std::vector<std::vector<uint16_t> > deadStripBit(2, temp2);
40 peds[0] = anal->
peds()[0];
41 peds[1] = anal->
peds()[1];
43 noise[0] = anal->
noise()[0];
44 noise[1] = anal->
noise()[1];
94 bool all_strips =
false;
98 uint16_t bins = peds[0].size();
99 if (peds[0].
size() < peds[1].
size()) {
100 bins = peds[1].size();
102 for (uint16_t iped = 0; iped < bins; iped++) {
103 value[0][iped] = peds[0][iped];
104 value[1][iped] = peds[1][iped];
110 uint16_t bins = noise[0].size();
111 if (noise[0].
size() < noise[1].
size()) {
112 bins = noise[1].size();
114 for (uint16_t inoise = 0; inoise < bins; inoise++) {
115 value[0][inoise] = noise[0][inoise];
116 value[1][inoise] = noise[1][inoise];
122 uint16_t bins = adProbab[0].size();
123 if (adProbab[0].
size() < adProbab[1].
size()) {
124 bins = adProbab[1].size();
126 for (uint16_t iad = 0; iad < bins; iad++) {
127 value[0][iad] = adProbab[0][iad];
128 value[1][iad] = adProbab[1][iad];
134 uint16_t bins = ksProbab[0].size();
135 if (ksProbab[0].
size() < ksProbab[1].
size()) {
136 bins = ksProbab[1].size();
138 for (uint16_t iks = 0; iks < bins; iks++) {
139 value[0][iks] = ksProbab[0][iks];
140 value[1][iks] = ksProbab[1][iks];
146 uint16_t bins = jbProbab[0].size();
147 if (jbProbab[0].
size() < jbProbab[1].
size()) {
148 bins = jbProbab[1].size();
150 for (uint16_t iks = 0; iks < bins; iks++) {
151 value[0][iks] = jbProbab[0][iks];
152 value[1][iks] = jbProbab[1][iks];
158 uint16_t bins = chi2Probab[0].size();
159 if (chi2Probab[0].
size() < chi2Probab[1].
size()) {
160 bins = chi2Probab[1].size();
162 for (uint16_t iks = 0; iks < bins; iks++) {
163 value[0][iks] = chi2Probab[0][iks];
164 value[1][iks] = chi2Probab[1][iks];
170 uint16_t bins = residualRMS[0].size();
171 if (residualRMS[0].
size() < residualRMS[1].
size()) {
172 bins = residualRMS[1].size();
174 for (uint16_t iks = 0; iks < bins; iks++) {
175 value[0][iks] = residualRMS[0][iks];
176 value[1][iks] = residualRMS[1][iks];
182 uint16_t bins = residualGaus[0].size();
183 if (residualGaus[0].
size() < residualGaus[1].
size()) {
184 bins = residualGaus[1].size();
186 for (uint16_t iks = 0; iks < bins; iks++) {
187 value[0][iks] = residualGaus[0][iks];
188 value[1][iks] = residualGaus[1][iks];
194 uint16_t bins = noiseSignificance[0].size();
195 if (noiseSignificance[0].
size() < noiseSignificance[1].
size()) {
196 bins = noiseSignificance[1].size();
198 for (uint16_t iks = 0; iks < bins; iks++) {
199 value[0][iks] = noiseSignificance[0][iks];
200 value[1][iks] = noiseSignificance[1][iks];
206 uint16_t bins = residualMean[0].size();
207 if (residualMean[0].
size() < residualMean[1].
size()) {
208 bins = residualMean[1].size();
210 for (uint16_t iks = 0; iks < bins; iks++) {
211 value[0][iks] = residualMean[0][iks];
212 value[1][iks] = residualMean[1][iks];
218 uint16_t bins = residualSkewness[0].size();
219 if (residualSkewness[0].
size() < residualSkewness[1].
size()) {
220 bins = residualSkewness[1].size();
222 for (uint16_t iks = 0; iks < bins; iks++) {
223 value[0][iks] = residualSkewness[0][iks];
224 value[1][iks] = residualSkewness[1][iks];
230 uint16_t bins = residualKurtosis[0].size();
231 if (residualKurtosis[0].
size() < residualKurtosis[1].
size()) {
232 bins = residualKurtosis[1].size();
234 for (uint16_t iks = 0; iks < bins; iks++) {
235 value[0][iks] = residualKurtosis[0][iks];
236 value[1][iks] = residualKurtosis[1][iks];
242 uint16_t bins = residualIntegralNsigma[0].size();
243 if (residualIntegralNsigma[0].
size() < residualIntegralNsigma[1].
size()) {
244 bins = residualIntegralNsigma[1].size();
246 for (uint16_t iks = 0; iks < bins; iks++) {
247 value[0][iks] = residualIntegralNsigma[0][iks];
248 value[1][iks] = residualIntegralNsigma[1][iks];
254 uint16_t bins = residualIntegral[0].size();
255 if (residualIntegral[0].
size() < residualIntegral[1].
size()) {
256 bins = residualIntegral[1].size();
258 for (uint16_t iks = 0; iks < bins; iks++) {
259 value[0][iks] = residualIntegral[0][iks];
260 value[1][iks] = residualIntegral[1][iks];
267 uint16_t bins = badStripBit[0].size();
268 if (badStripBit[0].
size() < badStripBit[1].
size()) {
269 bins = badStripBit[1].size();
271 for (uint16_t iks = 0; iks < bins; iks++) {
272 value[0][iks] = 1. * badStripBit[0][iks];
273 value[1][iks] = 1. * badStripBit[1][iks];
279 uint16_t bins = deadStripBit[0].size();
280 if (deadStripBit[0].
size() < deadStripBit[1].
size()) {
281 bins = deadStripBit[1].size();
283 for (uint16_t iks = 0; iks < bins; iks++) {
284 value[0][iks] = 1. * deadStripBit[0][iks];
285 value[1][iks] = 1. * deadStripBit[1][iks];
303 value[0][0] = anal->
pedsMax()[0];
304 value[1][0] = anal->
pedsMax()[1];
309 value[0][0] = anal->
pedsMin()[0];
310 value[1][0] = anal->
pedsMin()[1];
336 value[0][0] = 1. * anal->
deadStrip()[0].size();
337 value[1][0] = 1. * anal->
deadStrip()[1].size();
339 value[0][0] = 1. * anal->
badStrip()[0].size();
340 value[1][0] = 1. * anal->
badStrip()[1].size();
376 <<
" Unexpected monitorable: "
389 for (uint16_t istr = 0; istr < value[0].size(); istr++) {
394 for (uint16_t istr = 0; istr < value[1].size(); istr++) {
405 generator_->axisLabel(
"Pedestal value [adc]");
411 generator_->axisLabel(
"Noise [adc]");
417 generator_->axisLabel(
"Anderson-Darling p-value");
419 generator_->axisLabel(
"Kolmogorov-Smirnov p-value");
421 generator_->axisLabel(
"Jacque-Bera p-value");
423 generator_->axisLabel(
"Chi2 p-value");
425 generator_->axisLabel(
"Residual RMS [adc]");
427 generator_->axisLabel(
"Residual Gaus [adc]");
429 generator_->axisLabel(
"Noise Significance");
431 generator_->axisLabel(
"Residual Mean [adc]");
433 generator_->axisLabel(
"Residual Skewness [adc]");
435 generator_->axisLabel(
"Residual Kurtosis [adc]");
437 generator_->axisLabel(
"Residual Integral at N sigma");
439 generator_->axisLabel(
"Residual Integral");
441 generator_->axisLabel(
"Bad Strip Bit");
443 generator_->axisLabel(
"Dead Strip Bit");
461 <<
" 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
Log< level::Warning, false > LogWarning
const VFloat & noiseSpread() const
const VVInt & badFitStatus() const
const VFloat & noiseMean() const
tuple size
Write out results.
const VVInt & badStrip() const
const VVFloat & residualMean() const