#include <DQM/SiStripCommissioningSummary/interface/CalibrationSummaryFactory.h>
Protected Member Functions | |
void | extract (Iterator) |
void | format () |
Definition at line 6 of file CalibrationSummaryFactory.h.
Definition at line 12 of file CalibrationSummaryFactory.cc.
References CalibrationAnalysis::amplitude(), CalibrationAnalysis::amplitudeMax(), CalibrationAnalysis::amplitudeMean(), CalibrationAnalysis::amplitudeMin(), CalibrationAnalysis::amplitudeSpread(), sistrip::CALIBRATION_AMPLITUDE, sistrip::CALIBRATION_AMPLITUDE_ALLSTRIPS, sistrip::CALIBRATION_AMPLITUDE_MAX, sistrip::CALIBRATION_AMPLITUDE_MIN, sistrip::CALIBRATION_CHI2, sistrip::CALIBRATION_CHI2_ALLSTRIPS, sistrip::CALIBRATION_CHI2_MAX, sistrip::CALIBRATION_CHI2_MIN, sistrip::CALIBRATION_RISETIME, sistrip::CALIBRATION_RISETIME_ALLSTRIPS, sistrip::CALIBRATION_RISETIME_MAX, sistrip::CALIBRATION_RISETIME_MIN, sistrip::CALIBRATION_SMEARING, sistrip::CALIBRATION_SMEARING_ALLSTRIPS, sistrip::CALIBRATION_SMEARING_MAX, sistrip::CALIBRATION_SMEARING_MIN, sistrip::CALIBRATION_TAIL, sistrip::CALIBRATION_TAIL_ALLSTRIPS, sistrip::CALIBRATION_TAIL_MAX, sistrip::CALIBRATION_TAIL_MIN, sistrip::CALIBRATION_TIMECONSTANT, sistrip::CALIBRATION_TIMECONSTANT_ALLSTRIPS, sistrip::CALIBRATION_TIMECONSTANT_MAX, sistrip::CALIBRATION_TIMECONSTANT_MIN, SiStripFecKey::ccuAddr(), SiStripFecKey::ccuChan(), CalibrationAnalysis::chi2(), CalibrationAnalysis::chi2Max(), CalibrationAnalysis::chi2Mean(), CalibrationAnalysis::chi2Min(), CalibrationAnalysis::chi2Spread(), error, SiStripFecKey::fecCrate(), SiStripFecKey::fecRing(), SiStripFecKey::fecSlot(), SummaryGenerator::fillMap(), SummaryPlotFactoryBase::generator_, SummaryPlotFactoryBase::gran_, i, SiStripFecKey::i2cAddr(), sistrip::invalid_, SummaryPlotFactoryBase::level_, SiStripFecKey::lldChan(), sistrip::mlSummaryPlots_, SummaryPlotFactoryBase::mon_, SiStripEnumsAndStrings::monitorable(), CalibrationAnalysis::riseTime(), CalibrationAnalysis::riseTimeMax(), CalibrationAnalysis::riseTimeMean(), CalibrationAnalysis::riseTimeMin(), CalibrationAnalysis::riseTimeSpread(), CalibrationAnalysis::smearing(), CalibrationAnalysis::smearingMax(), CalibrationAnalysis::smearingMean(), CalibrationAnalysis::smearingMin(), CalibrationAnalysis::smearingSpread(), CalibrationAnalysis::tail(), CalibrationAnalysis::tailMax(), CalibrationAnalysis::tailMean(), CalibrationAnalysis::tailMin(), CalibrationAnalysis::tailSpread(), pyDBSRunClass::temp, CalibrationAnalysis::timeConstant(), CalibrationAnalysis::timeConstantMax(), CalibrationAnalysis::timeConstantMean(), CalibrationAnalysis::timeConstantMin(), CalibrationAnalysis::timeConstantSpread(), and value.
00012 { 00013 00014 CalibrationAnalysis* anal = dynamic_cast<CalibrationAnalysis*>( iter->second ); 00015 if ( !anal ) { return; } 00016 00017 std::vector<float> temp(128, 1. * sistrip::invalid_ ); 00018 std::vector< std::vector<float> > value( 2, temp ); 00019 std::vector< std::vector<float> > error( 2, temp ); 00020 std::vector< std::vector<float> > amplitude( 2, temp ); 00021 std::vector< std::vector<float> > tail( 2, temp ); 00022 std::vector< std::vector<float> > riseTime( 2, temp ); 00023 std::vector< std::vector<float> > timeConstant( 2, temp ); 00024 std::vector< std::vector<float> > smearing( 2, temp ); 00025 std::vector< std::vector<float> > chi2( 2, temp ); 00026 amplitude[0] = anal->amplitude()[0]; 00027 amplitude[1] = anal->amplitude()[1]; 00028 tail[0] = anal->tail()[0]; 00029 tail[1] = anal->tail()[1]; 00030 riseTime[0] = anal->riseTime()[0]; 00031 riseTime[1] = anal->riseTime()[1]; 00032 timeConstant[0] = anal->timeConstant()[0]; 00033 timeConstant[1] = anal->timeConstant()[1]; 00034 smearing[0] = anal->smearing()[0]; 00035 smearing[1] = anal->smearing()[1]; 00036 chi2[0] = anal->chi2()[0]; 00037 chi2[1] = anal->chi2()[1]; 00038 00039 SiStripFecKey lldKey = SiStripFecKey(iter->first); 00040 uint32_t key1 = SiStripFecKey(lldKey.fecCrate(), 00041 lldKey.fecSlot(), 00042 lldKey.fecRing(), 00043 lldKey.ccuAddr(), 00044 lldKey.ccuChan(), 00045 lldKey.lldChan(), 00046 lldKey.i2cAddr(lldKey.lldChan(),true)).key(); 00047 uint32_t key2 = SiStripFecKey(lldKey.fecCrate(), 00048 lldKey.fecSlot(), 00049 lldKey.fecRing(), 00050 lldKey.ccuAddr(), 00051 lldKey.ccuChan(), 00052 lldKey.lldChan(), 00053 lldKey.i2cAddr(lldKey.lldChan(),false)).key(); 00054 00055 bool all_strips = false; 00056 bool with_error = false; 00057 if ( mon_ == sistrip::CALIBRATION_AMPLITUDE_ALLSTRIPS) { 00058 all_strips = true; 00059 uint16_t bins = amplitude[amplitude[0].size() < amplitude[1].size() ? 1 : 0].size(); 00060 for ( uint16_t i = 0; i < bins; i++ ) { 00061 value[0][i] = amplitude[0][i]/10.; 00062 value[1][i] = amplitude[1][i]/10.; 00063 } 00064 } else if ( mon_ == sistrip::CALIBRATION_AMPLITUDE) { 00065 with_error = true; 00066 value[0][0] = anal->amplitudeMean()[0]/10.; 00067 value[1][0] = anal->amplitudeMean()[1]/10.; 00068 error[0][0] = anal->amplitudeSpread()[0]/10.; 00069 error[1][0] = anal->amplitudeSpread()[1]/10.; 00070 } else if ( mon_ == sistrip::CALIBRATION_AMPLITUDE_MIN) { 00071 value[0][0] = anal->amplitudeMin()[0]/10.; 00072 value[1][0] = anal->amplitudeMin()[1]/10.; 00073 } else if ( mon_ == sistrip::CALIBRATION_AMPLITUDE_MAX) { 00074 value[0][0] = anal->amplitudeMax()[0]/10.; 00075 value[1][0] = anal->amplitudeMax()[1]/10.; 00076 } else if ( mon_ == sistrip::CALIBRATION_TAIL_ALLSTRIPS) { 00077 all_strips = true; 00078 uint16_t bins = tail[tail[0].size() < tail[1].size() ? 1 : 0].size(); 00079 for ( uint16_t i = 0; i < bins; i++ ) { 00080 value[0][i] = tail[0][i]; 00081 value[1][i] = tail[1][i]; 00082 } 00083 } else if ( mon_ == sistrip::CALIBRATION_TAIL) { 00084 with_error = true; 00085 value[0][0] = anal->tailMean()[0]; 00086 value[1][0] = anal->tailMean()[1]; 00087 error[0][0] = anal->tailSpread()[0]; 00088 error[1][0] = anal->tailSpread()[1]; 00089 } else if ( mon_ == sistrip::CALIBRATION_TAIL_MIN) { 00090 value[0][0] = anal->tailMin()[0]; 00091 value[1][0] = anal->tailMin()[1]; 00092 } else if ( mon_ == sistrip::CALIBRATION_TAIL_MAX) { 00093 value[0][0] = anal->tailMax()[0]; 00094 value[1][0] = anal->tailMax()[1]; 00095 } else if ( mon_ == sistrip::CALIBRATION_RISETIME_ALLSTRIPS) { 00096 all_strips = true; 00097 uint16_t bins = riseTime[riseTime[0].size() < riseTime[1].size() ? 1 : 0].size(); 00098 for ( uint16_t i = 0; i < bins; i++ ) { 00099 value[0][i] = riseTime[0][i]; 00100 value[1][i] = riseTime[1][i]; 00101 } 00102 } else if ( mon_ == sistrip::CALIBRATION_RISETIME) { 00103 with_error = true; 00104 value[0][0] = anal->riseTimeMean()[0]; 00105 value[1][0] = anal->riseTimeMean()[1]; 00106 error[0][0] = anal->riseTimeSpread()[0]; 00107 error[1][0] = anal->riseTimeSpread()[1]; 00108 } else if ( mon_ == sistrip::CALIBRATION_RISETIME_MIN) { 00109 value[0][0] = anal->riseTimeMin()[0]; 00110 value[1][0] = anal->riseTimeMin()[1]; 00111 } else if ( mon_ == sistrip::CALIBRATION_RISETIME_MAX) { 00112 value[0][0] = anal->riseTimeMax()[0]; 00113 value[1][0] = anal->riseTimeMax()[1]; 00114 } else if ( mon_ == sistrip::CALIBRATION_TIMECONSTANT_ALLSTRIPS) { 00115 all_strips = true; 00116 uint16_t bins = timeConstant[timeConstant[0].size() < timeConstant[1].size() ? 1 : 0].size(); 00117 for ( uint16_t i = 0; i < bins; i++ ) { 00118 value[0][i] = timeConstant[0][i]; 00119 value[1][i] = timeConstant[1][i]; 00120 } 00121 } else if ( mon_ == sistrip::CALIBRATION_TIMECONSTANT) { 00122 with_error = true; 00123 value[0][0] = anal->timeConstantMean()[0]; 00124 value[1][0] = anal->timeConstantMean()[1]; 00125 error[0][0] = anal->timeConstantSpread()[0]; 00126 error[1][0] = anal->timeConstantSpread()[1]; 00127 } else if ( mon_ == sistrip::CALIBRATION_TIMECONSTANT_MIN) { 00128 value[0][0] = anal->timeConstantMin()[0]; 00129 value[1][0] = anal->timeConstantMin()[1]; 00130 } else if ( mon_ == sistrip::CALIBRATION_TIMECONSTANT_MAX) { 00131 value[0][0] = anal->timeConstantMax()[0]; 00132 value[1][0] = anal->timeConstantMax()[1]; 00133 } else if ( mon_ == sistrip::CALIBRATION_SMEARING_ALLSTRIPS) { 00134 all_strips = true; 00135 uint16_t bins = smearing[smearing[0].size() < smearing[1].size() ? 1 : 0].size(); 00136 for ( uint16_t i = 0; i < bins; i++ ) { 00137 value[0][i] = smearing[0][i]; 00138 value[1][i] = smearing[1][i]; 00139 } 00140 } else if ( mon_ == sistrip::CALIBRATION_SMEARING) { 00141 with_error = true; 00142 value[0][0] = anal->smearingMean()[0]; 00143 value[1][0] = anal->smearingMean()[1]; 00144 error[0][0] = anal->smearingSpread()[0]; 00145 error[1][0] = anal->smearingSpread()[1]; 00146 } else if ( mon_ == sistrip::CALIBRATION_SMEARING_MIN) { 00147 value[0][0] = anal->smearingMin()[0]; 00148 value[1][0] = anal->smearingMin()[1]; 00149 } else if ( mon_ == sistrip::CALIBRATION_SMEARING_MAX) { 00150 value[0][0] = anal->smearingMax()[0]; 00151 value[1][0] = anal->smearingMax()[1]; 00152 } else if ( mon_ == sistrip::CALIBRATION_CHI2_ALLSTRIPS) { 00153 all_strips = true; 00154 uint16_t bins = chi2[chi2[0].size() < chi2[1].size() ? 1 : 0].size(); 00155 for ( uint16_t i = 0; i < bins; i++ ) { 00156 value[0][i] = chi2[0][i]; 00157 value[1][i] = chi2[1][i]; 00158 } 00159 } else if ( mon_ == sistrip::CALIBRATION_CHI2) { 00160 with_error = true; 00161 value[0][0] = anal->chi2Mean()[0]/100.; 00162 value[1][0] = anal->chi2Mean()[1]/100.; 00163 error[0][0] = anal->chi2Spread()[0]/100.; 00164 error[1][0] = anal->chi2Spread()[1]/100.; 00165 } else if ( mon_ == sistrip::CALIBRATION_CHI2_MIN) { 00166 value[0][0] = anal->chi2Min()[0]/100.; 00167 value[1][0] = anal->chi2Min()[1]/100.; 00168 } else if ( mon_ == sistrip::CALIBRATION_CHI2_MAX) { 00169 value[0][0] = anal->chi2Max()[0]/100.; 00170 value[1][0] = anal->chi2Max()[1]/100.; 00171 } else { 00172 edm::LogWarning(mlSummaryPlots_) 00173 << "[SummaryPlotFactory::" << __func__ << "]" 00174 << " Unexpected monitorable: " 00175 << SiStripEnumsAndStrings::monitorable( SummaryPlotFactoryBase::mon_ ); 00176 return; 00177 } 00178 00179 if ( !all_strips ) { 00180 if( !with_error) { 00181 SummaryPlotFactoryBase::generator_->fillMap( SummaryPlotFactoryBase::level_, 00182 SummaryPlotFactoryBase::gran_, 00183 key1, 00184 value[0][0] ); 00185 00186 SummaryPlotFactoryBase::generator_->fillMap( SummaryPlotFactoryBase::level_, 00187 SummaryPlotFactoryBase::gran_, 00188 key2, 00189 value[1][0] ); 00190 } else { 00191 SummaryPlotFactoryBase::generator_->fillMap( SummaryPlotFactoryBase::level_, 00192 SummaryPlotFactoryBase::gran_, 00193 key1, 00194 value[0][0], 00195 error[0][0]); 00196 00197 SummaryPlotFactoryBase::generator_->fillMap( SummaryPlotFactoryBase::level_, 00198 SummaryPlotFactoryBase::gran_, 00199 key2, 00200 value[1][0], 00201 error[1][0]); 00202 } 00203 } else { 00204 00205 for ( uint16_t istr = 0; istr < value[0].size(); istr++ ) { 00206 SummaryPlotFactoryBase::generator_->fillMap( SummaryPlotFactoryBase::level_, 00207 SummaryPlotFactoryBase::gran_, 00208 key1, 00209 value[0][istr] ); 00210 } 00211 00212 for ( uint16_t istr = 0; istr < value[1].size(); istr++ ) { 00213 SummaryPlotFactoryBase::generator_->fillMap( SummaryPlotFactoryBase::level_, 00214 SummaryPlotFactoryBase::gran_, 00215 key2, 00216 value[1][istr] ); 00217 } 00218 } 00219 }
void CalibrationSummaryFactory::format | ( | ) | [protected, virtual] |
Reimplemented from SummaryPlotFactory< CommissioningAnalysis * >.
Definition at line 223 of file CalibrationSummaryFactory.cc.
References SummaryGenerator::axisLabel(), sistrip::CALIBRATION_AMPLITUDE, sistrip::CALIBRATION_CHI2, sistrip::CALIBRATION_RISETIME, sistrip::CALIBRATION_SMEARING, sistrip::CALIBRATION_TAIL, sistrip::CALIBRATION_TIMECONSTANT, SummaryPlotFactoryBase::generator_, sistrip::mlSummaryPlots_, SummaryPlotFactoryBase::mon_, and SiStripEnumsAndStrings::monitorable().
00223 { 00224 00225 // Histogram formatting 00226 if ( mon_ == sistrip::CALIBRATION_AMPLITUDE ) { 00227 generator_->axisLabel( "Amplitude (ADC*Nevt/10.)" ); 00228 } else if ( mon_ == sistrip::CALIBRATION_TAIL ) { 00229 generator_->axisLabel( "Tail (%)" ); 00230 } else if ( mon_ == sistrip::CALIBRATION_RISETIME ) { 00231 generator_->axisLabel( "Rise time (ns)" ); 00232 } else if ( mon_ == sistrip::CALIBRATION_TIMECONSTANT ) { 00233 generator_->axisLabel( "Time constant (ns)" ); 00234 } else if ( mon_ == sistrip::CALIBRATION_SMEARING ) { 00235 generator_->axisLabel( "Smearing (ns)" ); 00236 } else if ( mon_ == sistrip::CALIBRATION_CHI2 ) { 00237 generator_->axisLabel( "Chi2/100." ); 00238 } else { 00239 edm::LogWarning(mlSummaryPlots_) 00240 << "[SummaryPlotFactory::" << __func__ << "]" 00241 << " Unexpected SummaryHisto value:" 00242 << SiStripEnumsAndStrings::monitorable( SummaryPlotFactoryBase::mon_ ) ; 00243 } 00244 00245 }