#include <CondFormats/SiStripObjects/interface/OptoScanAnalysis.h>
Public Member Functions | |
const VFloat & | baseSlope () const |
Baseline slope [ADC/I2C]. | |
const VInt & | bias () const |
LLD bias value for each gain setting. | |
const uint16_t & | gain () const |
Optimum LLD gain setting. | |
bool | isValid () const |
Identifies if analysis is valid or not. | |
const VFloat & | liftOff () const |
Baseline "lift-off" values [mA]. | |
const VFloat & | linkNoise () const |
Noise value at "zero light" levels [ADC]. | |
const VFloat & | measGain () const |
Measured gains for each setting [V/V]. | |
OptoScanAnalysis () | |
OptoScanAnalysis (const uint32_t &key) | |
void | print (std::stringstream &, uint32_t gain_setting=sistrip::invalid_) |
Prints analysis results. | |
void | reset () |
Resets analysis member data. | |
void | summary (std::stringstream &) const |
Overrides base method. | |
const VFloat & | threshold () const |
Laser thresholds [mA]. | |
const VFloat & | tickHeight () const |
Tick mark heights [ADC]. | |
const VFloat & | zeroLight () const |
"Zero light" levels [ADC] | |
virtual | ~OptoScanAnalysis () |
Static Public Attributes | |
static const uint16_t | defaultBiasSetting_ = sistrip::invalid_ |
Default LLD bias setting if analysis fails. | |
static const uint16_t | defaultGainSetting_ = sistrip::invalid_ |
Default LLD gain setting if analysis fails. | |
static const float | fedAdcGain_ = 1.024 / 1024. |
Peak-to-peak voltage for FED A/D converter [V/ADC]. | |
Private Attributes | |
VFloat | baseSlope_ |
Slope of baseline [ADC/I2C]. | |
VInt | bias_ |
LLD bias value for each gain setting. | |
uint16_t | gain_ |
Optimum LLD gain setting. | |
VFloat | liftOff_ |
Baseline "lift-off" values [mA]. | |
VFloat | linkNoise_ |
Noise value at "zero light" levels [ADC]. | |
VFloat | measGain_ |
Measured gains for each setting [V/V]. | |
VFloat | threshold_ |
Laser thresholds [mA]. | |
VFloat | tickHeight_ |
Tick mark heights [ADC]. | |
VFloat | zeroLight_ |
"Zero light" levels [ADC] | |
Friends | |
class | OptoScanAlgorithm |
Wingham, R.Bainbridge Histogram-based analysis for opto bias/gain scan.
Definition at line 15 of file OptoScanAnalysis.h.
OptoScanAnalysis::OptoScanAnalysis | ( | const uint32_t & | key | ) |
Definition at line 26 of file OptoScanAnalysis.cc.
00027 : CommissioningAnalysis(key,sistrip::optoScanAnalysis_), 00028 gain_(sistrip::invalid_), 00029 bias_(4,sistrip::invalid_), 00030 measGain_(4,sistrip::invalid_), 00031 zeroLight_(4,sistrip::invalid_), 00032 linkNoise_(4,sistrip::invalid_), 00033 liftOff_(4,sistrip::invalid_), 00034 threshold_(4,sistrip::invalid_), 00035 tickHeight_(4,sistrip::invalid_), 00036 baseSlope_(4,sistrip::invalid_) 00037 {;}
OptoScanAnalysis::OptoScanAnalysis | ( | ) |
Definition at line 41 of file OptoScanAnalysis.cc.
00042 : CommissioningAnalysis(sistrip::optoScanAnalysis_), 00043 gain_(sistrip::invalid_), 00044 bias_(4,sistrip::invalid_), 00045 measGain_(4,sistrip::invalid_), 00046 zeroLight_(4,sistrip::invalid_), 00047 linkNoise_(4,sistrip::invalid_), 00048 liftOff_(4,sistrip::invalid_), 00049 threshold_(4,sistrip::invalid_), 00050 tickHeight_(4,sistrip::invalid_), 00051 baseSlope_(4,sistrip::invalid_) 00052 {;}
virtual OptoScanAnalysis::~OptoScanAnalysis | ( | ) | [inline, virtual] |
const OptoScanAnalysis::VFloat & OptoScanAnalysis::baseSlope | ( | ) | const [inline] |
Baseline slope [ADC/I2C].
Definition at line 126 of file OptoScanAnalysis.h.
References baseSlope_.
Referenced by OptoScanHistosUsingDb::create().
00126 { return baseSlope_; }
const OptoScanAnalysis::VInt & OptoScanAnalysis::bias | ( | ) | const [inline] |
LLD bias value for each gain setting.
Definition at line 119 of file OptoScanAnalysis.h.
References bias_.
Referenced by OptoScanHistosUsingDb::create(), OptoScanSummaryFactory::extract(), and OptoScanHistosUsingDb::update().
00119 { return bias_; }
const uint16_t & OptoScanAnalysis::gain | ( | ) | const [inline] |
Optimum LLD gain setting.
Definition at line 118 of file OptoScanAnalysis.h.
References gain_.
Referenced by OptoScanHistosUsingDb::create(), OptoScanSummaryFactory::extract(), summary(), and OptoScanHistosUsingDb::update().
00118 { return gain_; }
Identifies if analysis is valid or not.
Reimplemented from CommissioningAnalysis.
Definition at line 71 of file OptoScanAnalysis.cc.
References bias_, empty, gain_, CommissioningAnalysis::getErrorCodes(), and sistrip::maximum_.
Referenced by OptoScanHistosUsingDb::create(), OptoScanHistograms::histoAnalysis(), print(), and summary().
00071 { 00072 return ( gain_ < sistrip::maximum_ && 00073 bias_[gain_] < sistrip::maximum_ && 00074 getErrorCodes().empty() ); 00075 }
const OptoScanAnalysis::VFloat & OptoScanAnalysis::liftOff | ( | ) | const [inline] |
Baseline "lift-off" values [mA].
Definition at line 123 of file OptoScanAnalysis.h.
References liftOff_.
Referenced by OptoScanHistosUsingDb::create(), and OptoScanSummaryFactory::extract().
00123 { return liftOff_; }
const OptoScanAnalysis::VFloat & OptoScanAnalysis::linkNoise | ( | ) | const [inline] |
Noise value at "zero light" levels [ADC].
Definition at line 122 of file OptoScanAnalysis.h.
References linkNoise_.
Referenced by OptoScanHistosUsingDb::create(), and OptoScanSummaryFactory::extract().
00122 { return linkNoise_; }
const OptoScanAnalysis::VFloat & OptoScanAnalysis::measGain | ( | ) | const [inline] |
Measured gains for each setting [V/V].
Definition at line 120 of file OptoScanAnalysis.h.
References measGain_.
Referenced by OptoScanHistosUsingDb::create(), and OptoScanSummaryFactory::extract().
00120 { return measGain_; }
void OptoScanAnalysis::print | ( | std::stringstream & | ss, | |
uint32_t | gain_setting = sistrip::invalid_ | |||
) | [virtual] |
Prints analysis results.
Implements CommissioningAnalysis.
Definition at line 139 of file OptoScanAnalysis.cc.
References baseSlope_, bias_, empty, lat::endl(), gain_, CommissioningAnalysis::getErrorCodes(), CommissioningAnalysis::header(), isValid(), liftOff_, linkNoise_, measGain_, sistrip::mlCommissioning_, CommissioningAnalysis::myName(), threshold_, tickHeight_, and zeroLight_.
00139 { 00140 00141 if ( gain >= 4 ) { gain = gain_; } 00142 00143 if ( gain >= bias_.size() ) { 00144 edm::LogWarning(mlCommissioning_) 00145 << "[" << myName() << "::" << __func__ << "]" 00146 << " Unexpected gain setting: " << gain; 00147 return; 00148 } 00149 00150 header( ss ); 00151 ss << std::fixed << std::setprecision(2) 00152 << " Optimum LLD gain setting : " << gain_ << std::endl 00153 << " LLD gain setting : " << gain << std::endl 00154 << " LLD bias setting : " << bias_[gain] << std::endl 00155 << " Measured gain [V/V] : " << measGain_[gain] << std::endl 00156 << " Zero light level [ADC] : " << zeroLight_[gain] << std::endl 00157 << " Link noise [ADC] : " << linkNoise_[gain] << std::endl 00158 << " Baseline 'lift off' [mA] : " << liftOff_[gain] << std::endl 00159 << " Laser threshold [mA] : " << threshold_[gain] << std::endl 00160 << " Tick mark height [ADC] : " << tickHeight_[gain] << std::endl 00161 << " Baseline slope [ADC/I2C] : " << baseSlope_[gain] << std::endl 00162 << std::boolalpha 00163 << " isValid : " << isValid() << std::endl 00164 << std::noboolalpha 00165 << " Error codes (found " 00166 << std::setw(2) << std::setfill(' ') << getErrorCodes().size() 00167 << ") : "; 00168 if ( getErrorCodes().empty() ) { ss << "(none)"; } 00169 else { 00170 VString::const_iterator istr = getErrorCodes().begin(); 00171 VString::const_iterator jstr = getErrorCodes().end(); 00172 for ( ; istr != jstr; ++istr ) { ss << *istr << " "; } 00173 } 00174 ss << std::endl; 00175 00176 }
Resets analysis member data.
Implements CommissioningAnalysis.
Definition at line 56 of file OptoScanAnalysis.cc.
References baseSlope_, bias_, gain_, sistrip::invalid_, liftOff_, linkNoise_, measGain_, threshold_, tickHeight_, and zeroLight_.
00056 { 00057 gain_ = sistrip::invalid_; 00058 bias_ = VInt(4,sistrip::invalid_); 00059 measGain_ = VFloat(4,sistrip::invalid_); 00060 zeroLight_ = VFloat(4,sistrip::invalid_); 00061 linkNoise_ = VFloat(4,sistrip::invalid_); 00062 liftOff_ = VFloat(4,sistrip::invalid_); 00063 threshold_ = VFloat(4,sistrip::invalid_); 00064 tickHeight_ = VFloat(4,sistrip::invalid_); 00065 baseSlope_ = VFloat(4,sistrip::invalid_); 00066 }
void OptoScanAnalysis::summary | ( | std::stringstream & | ss | ) | const [virtual] |
Overrides base method.
Reimplemented from CommissioningAnalysis.
Definition at line 79 of file OptoScanAnalysis.cc.
References sistrip::extrainfo::baselineRms_, SiStripFecKey::ccuAddr(), SiStripFecKey::ccuChan(), sistrip::controlView_, sistrip::extrainfo::digital_, sistrip::dir_, sistrip::dqmRoot_, lat::endl(), sistrip::EXPERT_HISTO, SiStripFecKey::fecCrate(), CommissioningAnalysis::fecKey(), SiStripFecKey::fecRing(), SiStripFecKey::fecSlot(), sistrip::FED_KEY, CommissioningAnalysis::fedKey(), gain(), sistrip::extrainfo::gain_, isValid(), SiStripKey::key(), sistrip::LLD_CHAN, SiStripFecKey::lldChan(), CommissioningAnalysis::myName(), path(), SiStripEnumsAndStrings::runType(), and indexGen::title.
00079 { 00080 00081 SiStripFecKey fec_key( fecKey() ); 00082 SiStripFedKey fed_key( fedKey() ); 00083 00084 sistrip::RunType type = SiStripEnumsAndStrings::runType( myName() ); 00085 00086 std::stringstream extra1,extra2,extra3; 00087 extra1 << sistrip::extrainfo::gain_ << gain() << sistrip::extrainfo::digital_ << "0"; 00088 extra2 << sistrip::extrainfo::gain_ << gain() << sistrip::extrainfo::digital_ << "1"; 00089 extra3 << sistrip::extrainfo::gain_ << gain() << sistrip::extrainfo::baselineRms_; 00090 00091 std::string title1 = SiStripHistoTitle( sistrip::EXPERT_HISTO, 00092 type, 00093 sistrip::FED_KEY, 00094 fed_key.key(), 00095 sistrip::LLD_CHAN, 00096 fec_key.lldChan(), 00097 extra1.str() ).title(); 00098 std::string title2 = SiStripHistoTitle( sistrip::EXPERT_HISTO, 00099 type, 00100 sistrip::FED_KEY, 00101 fed_key.key(), 00102 sistrip::LLD_CHAN, 00103 fec_key.lldChan(), 00104 extra2.str() ).title(); 00105 std::string title3 = SiStripHistoTitle( sistrip::EXPERT_HISTO, 00106 type, 00107 sistrip::FED_KEY, 00108 fed_key.key(), 00109 sistrip::LLD_CHAN, 00110 fec_key.lldChan(), 00111 extra3.str() ).title(); 00112 00113 ss << " Summary" 00114 << ":" 00115 << ( isValid() ? "Valid" : "Invalid" ) 00116 << ":" 00117 << sistrip::controlView_ << ":" 00118 << fec_key.fecCrate() << "/" 00119 << fec_key.fecSlot() << "/" 00120 << fec_key.fecRing() << "/" 00121 << fec_key.ccuAddr() << "/" 00122 << fec_key.ccuChan() 00123 << ":" 00124 << sistrip::dqmRoot_ << sistrip::dir_ 00125 << "Collate" << sistrip::dir_ 00126 << SiStripFecKey( fec_key.fecCrate(), 00127 fec_key.fecSlot(), 00128 fec_key.fecRing(), 00129 fec_key.ccuAddr(), 00130 fec_key.ccuChan() ).path() 00131 << ":" 00132 << title1 << ";" << title2 << ";" << title3 00133 << std::endl; 00134 00135 }
const OptoScanAnalysis::VFloat & OptoScanAnalysis::threshold | ( | ) | const [inline] |
Laser thresholds [mA].
Definition at line 124 of file OptoScanAnalysis.h.
References threshold_.
Referenced by OptoScanHistosUsingDb::create(), and OptoScanSummaryFactory::extract().
00124 { return threshold_; }
const OptoScanAnalysis::VFloat & OptoScanAnalysis::tickHeight | ( | ) | const [inline] |
Tick mark heights [ADC].
Definition at line 125 of file OptoScanAnalysis.h.
References tickHeight_.
Referenced by OptoScanHistosUsingDb::create(), and OptoScanSummaryFactory::extract().
00125 { return tickHeight_; }
const OptoScanAnalysis::VFloat & OptoScanAnalysis::zeroLight | ( | ) | const [inline] |
"Zero light" levels [ADC]
Definition at line 121 of file OptoScanAnalysis.h.
References zeroLight_.
Referenced by OptoScanHistosUsingDb::create(), and OptoScanSummaryFactory::extract().
00121 { return zeroLight_; }
friend class OptoScanAlgorithm [friend] |
Definition at line 27 of file OptoScanAnalysis.h.
VFloat OptoScanAnalysis::baseSlope_ [private] |
Slope of baseline [ADC/I2C].
Definition at line 112 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), baseSlope(), print(), and reset().
VInt OptoScanAnalysis::bias_ [private] |
LLD bias value for each gain setting.
Definition at line 91 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), bias(), isValid(), print(), and reset().
const uint16_t OptoScanAnalysis::defaultBiasSetting_ = sistrip::invalid_ [static] |
Default LLD bias setting if analysis fails.
Definition at line 78 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse().
const uint16_t OptoScanAnalysis::defaultGainSetting_ = sistrip::invalid_ [static] |
Default LLD gain setting if analysis fails.
Definition at line 75 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse().
const float OptoScanAnalysis::fedAdcGain_ = 1.024 / 1024. [static] |
Peak-to-peak voltage for FED A/D converter [V/ADC].
Definition at line 81 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse().
uint16_t OptoScanAnalysis::gain_ [private] |
Optimum LLD gain setting.
Definition at line 88 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), gain(), isValid(), print(), and reset().
VFloat OptoScanAnalysis::liftOff_ [private] |
Baseline "lift-off" values [mA].
Definition at line 103 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), liftOff(), print(), and reset().
VFloat OptoScanAnalysis::linkNoise_ [private] |
Noise value at "zero light" levels [ADC].
Definition at line 100 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), linkNoise(), print(), and reset().
VFloat OptoScanAnalysis::measGain_ [private] |
Measured gains for each setting [V/V].
Definition at line 94 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), measGain(), print(), and reset().
VFloat OptoScanAnalysis::threshold_ [private] |
Laser thresholds [mA].
Definition at line 106 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), print(), reset(), and threshold().
VFloat OptoScanAnalysis::tickHeight_ [private] |
Tick mark heights [ADC].
Definition at line 109 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), print(), reset(), and tickHeight().
VFloat OptoScanAnalysis::zeroLight_ [private] |
"Zero light" levels [ADC]
Definition at line 97 of file OptoScanAnalysis.h.
Referenced by OptoScanAlgorithm::analyse(), print(), reset(), and zeroLight().