CMS 3D CMS Logo

OptoScanAnalysis Class Reference

Author:
M.
More...

#include <CondFormats/SiStripObjects/interface/OptoScanAnalysis.h>

Inheritance diagram for OptoScanAnalysis:

CommissioningAnalysis

List of all members.

Public Member Functions

const VFloatbaseSlope () const
 Baseline slope [ADC/I2C].
const VIntbias () 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 VFloatliftOff () const
 Baseline "lift-off" values [mA].
const VFloatlinkNoise () const
 Noise value at "zero light" levels [ADC].
const VFloatmeasGain () 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 VFloatthreshold () const
 Laser thresholds [mA].
const VFloattickHeight () const
 Tick mark heights [ADC].
const VFloatzeroLight () 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


Detailed Description

Author:
M.

Wingham, R.Bainbridge Histogram-based analysis for opto bias/gain scan.

Definition at line 15 of file OptoScanAnalysis.h.


Constructor & Destructor Documentation

OptoScanAnalysis::OptoScanAnalysis ( const uint32_t &  key  ) 

Definition at line 26 of file OptoScanAnalysis.cc.

OptoScanAnalysis::OptoScanAnalysis (  ) 

Definition at line 41 of file OptoScanAnalysis.cc.

virtual OptoScanAnalysis::~OptoScanAnalysis (  )  [inline, virtual]

Definition at line 25 of file OptoScanAnalysis.h.

00025 {;}


Member Function Documentation

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_; }

bool OptoScanAnalysis::isValid ( void   )  const [virtual]

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 }

void OptoScanAnalysis::reset ( void   )  [virtual]

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_.

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_; }


Friends And Related Function Documentation

friend class OptoScanAlgorithm [friend]

Definition at line 27 of file OptoScanAnalysis.h.


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:29:19 2009 for CMSSW by  doxygen 1.5.4