15 if ( !anal ) {
return; }
18 std::vector< std::vector<float> >
value( 2, temp );
19 std::vector< std::vector<float> >
error( 2, temp );
20 std::vector< std::vector<float> >
amplitude( 2, temp );
21 std::vector< std::vector<float> > tail( 2, temp );
22 std::vector< std::vector<float> > riseTime( 2, temp );
23 std::vector< std::vector<float> > timeConstant( 2, temp );
24 std::vector< std::vector<float> > turnOn( 2, temp );
25 std::vector< std::vector<float> > maximum( 2, temp );
26 std::vector< std::vector<float> > undershoot( 2, temp );
27 std::vector< std::vector<float> > baseline( 2, temp );
28 std::vector< std::vector<float> > smearing( 2, temp );
29 std::vector< std::vector<float> >
chi2( 2, temp );
32 tail[0] = anal->
tail()[0];
33 tail[1] = anal->
tail()[1];
38 turnOn[0] = anal->
turnOn()[0];
39 turnOn[1] = anal->
turnOn()[1];
40 maximum[0] = anal->
maximum()[0];
41 maximum[1] = anal->
maximum()[1];
48 chi2[0] = anal->
chi2()[0];
49 chi2[1] = anal->
chi2()[1];
67 bool all_strips =
false;
68 bool with_error =
false;
73 uint16_t
bins = amplitude[amplitude[0].size() < amplitude[1].size() ? 1 : 0].size();
74 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
75 value[0][
i] = amplitude[0][
i]/10.;
76 value[1][
i] = amplitude[1][
i]/10.;
94 uint16_t
bins = tail[tail[0].size() < tail[1].size() ? 1 : 0].size();
95 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
96 value[0][
i] = tail[0][
i];
97 value[1][
i] = tail[1][
i];
106 value[0][0] = anal->
tailMin()[0];
107 value[1][0] = anal->
tailMin()[1];
109 value[0][0] = anal->
tailMax()[0];
110 value[1][0] = anal->
tailMax()[1];
115 uint16_t
bins = riseTime[riseTime[0].size() < riseTime[1].size() ? 1 : 0].size();
116 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
117 value[0][
i] = riseTime[0][
i];
118 value[1][
i] = riseTime[1][
i];
136 uint16_t
bins = timeConstant[timeConstant[0].size() < timeConstant[1].size() ? 1 : 0].size();
137 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
138 value[0][
i] = timeConstant[0][
i];
139 value[1][
i] = timeConstant[1][
i];
157 uint16_t
bins = turnOn[turnOn[0].size() < turnOn[1].size() ? 1 : 0].size();
158 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
159 value[0][
i] = turnOn[0][
i];
160 value[1][
i] = turnOn[1][
i];
179 uint16_t
bins = maximum[maximum[0].size() < maximum[1].size() ? 1 : 0].size();
180 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
181 value[0][
i] = maximum[0][
i];
182 value[1][
i] = maximum[1][
i];
201 uint16_t
bins = undershoot[undershoot[0].size() < undershoot[1].size() ? 1 : 0].size();
202 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
203 value[0][
i] = undershoot[0][
i];
204 value[1][
i] = undershoot[1][
i];
223 uint16_t
bins = baseline[baseline[0].size() < baseline[1].size() ? 1 : 0].size();
224 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
225 value[0][
i] = baseline[0][
i];
226 value[1][
i] = baseline[1][
i];
245 uint16_t
bins = smearing[smearing[0].size() < smearing[1].size() ? 1 : 0].size();
246 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
247 value[0][
i] = smearing[0][
i];
248 value[1][
i] = smearing[1][
i];
267 uint16_t
bins = chi2[chi2[0].size() < chi2[1].size() ? 1 : 0].size();
268 for ( uint16_t
i = 0;
i <
bins;
i++ ) {
269 value[0][
i] = chi2[0][
i];
270 value[1][
i] = chi2[1][
i];
275 value[0][0] = anal->
chi2Mean()[0]/100.;
276 value[1][0] = anal->
chi2Mean()[1]/100.;
280 value[0][0] = anal->
chi2Min()[0]/100.;
281 value[1][0] = anal->
chi2Min()[1]/100.;
283 value[0][0] = anal->
chi2Max()[0]/100.;
284 value[1][0] = anal->
chi2Max()[1]/100.;
287 <<
"[SummaryPlotFactory::" << __func__ <<
"]" 288 <<
" Unexpected monitorable: " 319 for ( uint16_t istr = 0; istr < value[0].size(); istr++ ) {
326 for ( uint16_t istr = 0; istr < value[1].size(); istr++ ) {
342 generator_->axisLabel(
"Amplitude (ADC*Nevt/10.)" );
344 generator_->axisLabel(
"Tail (%)" );
346 generator_->axisLabel(
"Rise time (ns)" );
348 generator_->axisLabel(
"Time constant (ns)" );
350 generator_->axisLabel(
"TrunOn (ns)" );
352 generator_->axisLabel(
"Maximum time (ns)" );
354 generator_->axisLabel(
"Undershoot (ADC*Nevt/10.)" );
356 generator_->axisLabel(
"Baseline Amplitude (ADC*Nevt/10.)" );
358 generator_->axisLabel(
"Smearing (ns)" );
360 generator_->axisLabel(
"Chi2/100." );
363 <<
"[SummaryPlotFactory::" << __func__ <<
"]" 364 <<
" Unexpected SummaryHisto value:" const VFloat & maximumMean() const
static std::string monitorable(const sistrip::Monitorable &)
const VFloat & smearingMean() const
const VFloat & turnOnMin() const
const VFloat & undershootMax() const
const VFloat & riseTimeSpread() const
const VVFloat & riseTime() const
sistrip::Monitorable mon_
const uint16_t & fecRing() const
const VFloat & amplitudeMean() const
const VFloat & amplitudeMin() const
const VVFloat & amplitude() const
const VFloat & timeConstantMean() const
const VFloat & chi2Spread() const
const VFloat & smearingSpread() const
const VFloat & baselineMean() const
const VFloat & riseTimeMean() const
const VVFloat & smearing() const
const uint16_t & lldChan() const
const VFloat & maximumMax() const
const uint16_t & fecSlot() const
const VVFloat & timeConstant() const
const uint16_t & i2cAddr() const
const uint32_t & key() const
const VFloat & chi2Min() const
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
const VFloat & chi2Max() const
const VVFloat & baseline() const
void fillMap(const std::string &top_level_dir, const sistrip::Granularity &, const uint32_t &key, const float &value, const float &error=0.)
const VFloat & tailMax() const
const VFloat & riseTimeMin() const
Analysis for calibration runs.
const VFloat & baselineMin() const
const VVFloat & tail() const
const VVFloat & undershoot() const
const VFloat & maximumMin() const
const VFloat & amplitudeMax() const
const VFloat & timeConstantSpread() const
const VFloat & turnOnMean() const
sistrip::Granularity gran_
const VFloat & baselineMax() const
const VFloat & chi2Mean() const
void extract(Iterator) override
const uint16_t & fecCrate() const
const VFloat & baselineSpread() const
static const char mlSummaryPlots_[]
const VVFloat & maximum() const
const VFloat & riseTimeMax() const
const VFloat & undershootMin() const
SummaryGenerator * generator_
const uint16_t & ccuAddr() const
static const uint16_t invalid_
const VFloat & timeConstantMin() const
const VFloat & maximumSpread() const
const VFloat & turnOnSpread() const
const VFloat & smearingMin() const
const VFloat & timeConstantMax() const
const VVFloat & turnOn() const
const VVFloat & chi2() const
const VFloat & turnOnMax() const
const uint16_t & ccuChan() const
const VFloat & tailMean() const
const VFloat & smearingMax() const
const VFloat & tailSpread() const
const VFloat & amplitudeSpread() const
const VFloat & tailMin() const
const VFloat & undershootSpread() const
const VFloat & undershootMean() const