CMS 3D CMS Logo

Public Member Functions | Private Attributes | Friends

PedestalsAnalysis Class Reference

Histogram-based analysis for pedestal run. More...

#include <PedestalsAnalysis.h>

Inheritance diagram for PedestalsAnalysis:
CommissioningAnalysis

List of all members.

Public Member Functions

const VVIntdead () const
bool isValid () const
const VVFloatnoise () const
const VFloatnoiseMax () const
const VFloatnoiseMean () const
const VFloatnoiseMin () const
const VFloatnoiseSpread () const
const VVIntnoisy () const
 PedestalsAnalysis ()
 PedestalsAnalysis (const uint32_t &key)
const VVFloatpeds () const
const VFloatpedsMax () const
const VFloatpedsMean () const
const VFloatpedsMin () const
const VFloatpedsSpread () const
void print (std::stringstream &, uint32_t apv_number=0)
const VVFloatraw () const
const VFloatrawMax () const
const VFloatrawMean () const
const VFloatrawMin () const
const VFloatrawSpread () const
void reset ()
void summary (std::stringstream &) const
virtual ~PedestalsAnalysis ()

Private Attributes

VVInt dead_
bool legacy_
VVFloat noise_
VFloat noiseMax_
VFloat noiseMean_
VFloat noiseMin_
VFloat noiseSpread_
VVInt noisy_
VVFloat peds_
VFloat pedsMax_
VFloat pedsMean_
VFloat pedsMin_
VFloat pedsSpread_
VVFloat raw_
VFloat rawMax_
VFloat rawMean_
VFloat rawMin_
VFloat rawSpread_

Friends

class PedestalsAlgorithm

Detailed Description

Histogram-based analysis for pedestal run.

Author:
M. Wingham, R.Bainbridge

Definition at line 15 of file PedestalsAnalysis.h.


Constructor & Destructor Documentation

PedestalsAnalysis::PedestalsAnalysis ( const uint32_t &  key)
PedestalsAnalysis::PedestalsAnalysis ( )
virtual PedestalsAnalysis::~PedestalsAnalysis ( ) [inline, virtual]

Definition at line 25 of file PedestalsAnalysis.h.

{;}

Member Function Documentation

const PedestalsAnalysis::VVInt & PedestalsAnalysis::dead ( ) const [inline]
bool PedestalsAnalysis::isValid ( void  ) const [virtual]
const PedestalsAnalysis::VVFloat & PedestalsAnalysis::noise ( ) const [inline]

Definition at line 139 of file PedestalsAnalysis.h.

References noise_.

Referenced by PedestalsSummaryFactory::extract(), and PedestalsHistosUsingDb::update().

{ return noise_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::noiseMax ( ) const [inline]

Definition at line 154 of file PedestalsAnalysis.h.

References noiseMax_.

Referenced by PedestalsHistosUsingDb::create(), and PedestalsSummaryFactory::extract().

{ return noiseMax_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::noiseMean ( ) const [inline]

Definition at line 147 of file PedestalsAnalysis.h.

References noiseMean_.

Referenced by PedestalsHistosUsingDb::create(), and PedestalsSummaryFactory::extract().

{ return noiseMean_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::noiseMin ( ) const [inline]

Definition at line 155 of file PedestalsAnalysis.h.

References noiseMin_.

Referenced by PedestalsHistosUsingDb::create(), and PedestalsSummaryFactory::extract().

{ return noiseMin_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::noiseSpread ( ) const [inline]

Definition at line 148 of file PedestalsAnalysis.h.

References noiseSpread_.

Referenced by PedestalsHistosUsingDb::create(), and PedestalsSummaryFactory::extract().

{ return noiseSpread_; }
const PedestalsAnalysis::VVInt & PedestalsAnalysis::noisy ( ) const [inline]
const PedestalsAnalysis::VVFloat & PedestalsAnalysis::peds ( ) const [inline]

Definition at line 138 of file PedestalsAnalysis.h.

References peds_.

Referenced by PedestalsSummaryFactory::extract(), and PedestalsHistosUsingDb::update().

{ return peds_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::pedsMax ( ) const [inline]

Definition at line 152 of file PedestalsAnalysis.h.

References pedsMax_.

Referenced by PedestalsHistosUsingDb::create(), and PedestalsSummaryFactory::extract().

{ return pedsMax_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::pedsMean ( ) const [inline]

Definition at line 145 of file PedestalsAnalysis.h.

References pedsMean_.

Referenced by PedestalsHistosUsingDb::create(), and PedestalsSummaryFactory::extract().

{ return pedsMean_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::pedsMin ( ) const [inline]
const PedestalsAnalysis::VFloat & PedestalsAnalysis::pedsSpread ( ) const [inline]

Definition at line 146 of file PedestalsAnalysis.h.

References pedsSpread_.

Referenced by PedestalsHistosUsingDb::create(), and PedestalsSummaryFactory::extract().

{ return pedsSpread_; }
void PedestalsAnalysis::print ( std::stringstream &  ss,
uint32_t  apv_number = 0 
) [virtual]

Prints analysis results.

Implements CommissioningAnalysis.

Definition at line 200 of file PedestalsAnalysis.cc.

References dead_, relativeConstraints::empty, CommissioningAnalysis::getErrorCodes(), CommissioningAnalysis::header(), isValid(), sistrip::mlCommissioning_, CommissioningAnalysis::myName(), noise_, noiseMax_, noiseMean_, noiseMin_, noiseSpread_, noisy_, peds_, pedsMax_, pedsMean_, pedsMin_, pedsSpread_, raw_, rawMax_, rawMean_, rawMin_, rawSpread_, and findQualityFiles::size.

                                                                  { 

  if ( iapv == 1 || iapv == 2 ) { iapv--; }
  else { iapv = 0; }
  
  if ( peds_[iapv].size() < 128 ||
       noise_[iapv].size() < 128 ||
       raw_[iapv].size() < 128 ) { 
    edm::LogWarning(mlCommissioning_)
      << "[" << myName() << "::" << __func__ << "]"
      << " Unexpected number of pedestal/noise values: " 
      << peds_[iapv].size() << ", " 
      << noise_[iapv].size() << ", " 
      << raw_[iapv].size();
    return;
  }
  
  header( ss );
  ss << " Monitorables for APV number     : " << iapv;
  if ( iapv == 0 ) { ss << " (first of pair)"; }
  else if ( iapv == 1 ) { ss << " (second of pair)"; } 
  ss << std::endl;
  ss << std::fixed << std::setprecision(2);
  ss << " Example peds/noise for strips   : "
     << "     0,     31,     63,    127" << std::endl
     << "  Peds                     [ADC] : " 
     << std::setw(6) << peds_[iapv][0] << ", " 
     << std::setw(6) << peds_[iapv][31] << ", " 
     << std::setw(6) << peds_[iapv][63] << ", " 
     << std::setw(6) << peds_[iapv][127] << std::endl
     << "  Noise                    [ADC] : " 
     << std::setw(6) << noise_[iapv][0] << ", " 
     << std::setw(6) << noise_[iapv][31] << ", " 
     << std::setw(6) << noise_[iapv][63] << ", " 
     << std::setw(6) << noise_[iapv][127] << std::endl
     << "  Raw noise                [ADC] : " 
     << std::setw(6) << raw_[iapv][0] << ", " 
     << std::setw(6) << raw_[iapv][31] << ", " 
     << std::setw(6) << raw_[iapv][63] << ", " 
     << std::setw(6) << raw_[iapv][127] << std::endl
     << " Dead strips (<5s)       [strip] : (" << dead_[iapv].size() << " in total) ";
  for ( uint16_t ii = 0; ii < dead_[iapv].size(); ii++ ) { 
    ss << dead_[iapv][ii] << " "; }
  
  ss << std::endl;
  ss << " Noisy strips (>5s)      [strip] : (" << noisy_[iapv].size() << " in total) ";
  for ( uint16_t ii = 0; ii < noisy_[iapv].size(); ii++ ) { 
    ss << noisy_[iapv][ii] << " "; 
  } 
  ss << std::endl;
  ss << " Mean peds +/- spread      [ADC] : " << pedsMean_[iapv] << " +/- " << pedsSpread_[iapv] << std::endl 
     << " Min/Max pedestal          [ADC] : " << pedsMin_[iapv] << " <-> " << pedsMax_[iapv] << std::endl
     << " Mean noise +/- spread     [ADC] : " << noiseMean_[iapv] << " +/- " << noiseSpread_[iapv] << std::endl 
     << " Min/Max noise             [ADC] : " << noiseMin_[iapv] << " <-> " << noiseMax_[iapv] << std::endl
     << " Mean raw noise +/- spread [ADC] : " << rawMean_[iapv] << " +/- " << rawSpread_[iapv] << std::endl 
     << " Min/Max raw noise         [ADC] : " << rawMin_[iapv] << " <-> " << rawMax_[iapv] << std::endl
     << " Normalised noise                : " << "(yet to be implemented...)" << std::endl
     << std::boolalpha 
     << " isValid                         : " << isValid()  << std::endl
     << std::noboolalpha
     << " Error codes (found "
     << std::setw(2) << std::setfill(' ') << getErrorCodes().size() 
     << ")          : ";
  if ( getErrorCodes().empty() ) { ss << "(none)"; }
  else { 
    VString::const_iterator istr = getErrorCodes().begin();
    VString::const_iterator jstr = getErrorCodes().end();
    for ( ; istr != jstr; ++istr ) { ss << *istr << " "; }
  }
  ss << std::endl;
}
const PedestalsAnalysis::VVFloat & PedestalsAnalysis::raw ( ) const [inline]

Definition at line 140 of file PedestalsAnalysis.h.

References raw_.

{ return raw_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::rawMax ( ) const [inline]

Definition at line 156 of file PedestalsAnalysis.h.

References rawMax_.

Referenced by PedestalsHistosUsingDb::create().

{ return rawMax_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::rawMean ( ) const [inline]

Definition at line 149 of file PedestalsAnalysis.h.

References rawMean_.

Referenced by PedestalsHistosUsingDb::create().

{ return rawMean_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::rawMin ( ) const [inline]

Definition at line 157 of file PedestalsAnalysis.h.

References rawMin_.

Referenced by PedestalsHistosUsingDb::create().

{ return rawMin_; }
const PedestalsAnalysis::VFloat & PedestalsAnalysis::rawSpread ( ) const [inline]

Definition at line 150 of file PedestalsAnalysis.h.

References rawSpread_.

Referenced by PedestalsHistosUsingDb::create().

{ return rawSpread_; }
void PedestalsAnalysis::reset ( void  ) [virtual]
void PedestalsAnalysis::summary ( std::stringstream &  ss) const [virtual]

Overrides base method.

Reimplemented from CommissioningAnalysis.

Definition at line 126 of file PedestalsAnalysis.cc.

References sistrip::APV, SiStripFecKey::ccuAddr(), SiStripFecKey::ccuChan(), sistrip::extrainfo::commonMode_, sistrip::controlView_, sistrip::dir_, sistrip::dqmRoot_, sistrip::EXPERT_HISTO, funct::false, SiStripFecKey::fecCrate(), CommissioningAnalysis::fecKey(), SiStripFecKey::fecRing(), SiStripFecKey::fecSlot(), sistrip::FED_KEY, CommissioningAnalysis::fedKey(), SiStripFecKey::i2cAddr(), isValid(), SiStripKey::key(), legacy_, sistrip::LLD_CHAN, SiStripFecKey::lldChan(), CommissioningAnalysis::myName(), path(), sistrip::extrainfo::pedestals_, sistrip::extrainfo::pedsAndCmSubNoise_, sistrip::extrainfo::pedsAndRawNoise_, sistrip::extrainfo::rawNoise_, SiStripEnumsAndStrings::runType(), indexGen::title, and funct::true.

                                                           { 

  SiStripFecKey fec_key( fecKey() );
  SiStripFedKey fed_key( fedKey() );
  
  sistrip::RunType type = SiStripEnumsAndStrings::runType( myName() );

  std::stringstream extra1,extra2,extra3;
  if ( legacy_ ) {
    extra1 << sistrip::extrainfo::pedsAndRawNoise_; 
    extra2 << sistrip::extrainfo::pedsAndCmSubNoise_; 
    extra3 << sistrip::extrainfo::commonMode_;
  } else {
    extra1 << sistrip::extrainfo::pedestals_; 
    extra2 << sistrip::extrainfo::rawNoise_; 
    extra3 << sistrip::extrainfo::commonMode_;
  }
  
  std::string title1 = SiStripHistoTitle( sistrip::EXPERT_HISTO, 
                                          type,
                                          sistrip::FED_KEY, 
                                          fed_key.key(),
                                          sistrip::LLD_CHAN, 
                                          fec_key.lldChan(),
                                          extra1.str() ).title();
  std::string title2 = SiStripHistoTitle( sistrip::EXPERT_HISTO, 
                                          type,
                                          sistrip::FED_KEY, 
                                          fed_key.key(),
                                          sistrip::LLD_CHAN, 
                                          fec_key.lldChan(),
                                          extra2.str() ).title();
  std::string title3 = SiStripHistoTitle( sistrip::EXPERT_HISTO, 
                                          type,
                                          sistrip::FED_KEY, 
                                          fed_key.key(),
                                          sistrip::APV, 
                                          SiStripFecKey::i2cAddr( fec_key.lldChan(), true ),
                                          extra3.str() ).title();
  std::string title4 = SiStripHistoTitle( sistrip::EXPERT_HISTO, 
                                          type,
                                          sistrip::FED_KEY, 
                                          fed_key.key(),
                                          sistrip::APV, 
                                          SiStripFecKey::i2cAddr( fec_key.lldChan(), false ),
                                          extra3.str() ).title();
  
  
  ss << " Summary"
     << ":"
     << ( isValid() ? "Valid" : "Invalid" )
     << ":"
     << sistrip::controlView_ << ":"
     << fec_key.fecCrate() << "/" 
     << fec_key.fecSlot() << "/" 
     << fec_key.fecRing() << "/" 
     << fec_key.ccuAddr() << "/" 
     << fec_key.ccuChan() 
     << ":"
     << sistrip::dqmRoot_ << sistrip::dir_ 
     << "Collate" << sistrip::dir_ 
     << SiStripFecKey( fec_key.fecCrate(),
                       fec_key.fecSlot(), 
                       fec_key.fecRing(), 
                       fec_key.ccuAddr(), 
                       fec_key.ccuChan() ).path()
     << ":"
     << title1 << ";" << title2 << ";" << title3 << ";" << title4
     << std::endl;
  
}

Friends And Related Function Documentation

friend class PedestalsAlgorithm [friend]

Definition at line 27 of file PedestalsAnalysis.h.


Member Data Documentation

Dead strips.

Definition at line 88 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), dead(), PedestalsAnalysis(), print(), and reset().

Definition at line 132 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::extract(), reset(), and summary().

Noise values.

Definition at line 80 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), noise(), print(), and reset().

Max noise value.

Definition at line 120 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), noiseMax(), print(), and reset().

Mean noise value.

Definition at line 102 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), noiseMean(), print(), and reset().

Min noise value.

Definition at line 123 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), noiseMin(), print(), and reset().

Rms spread in noise.

Definition at line 105 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), noiseSpread(), print(), and reset().

Noisy strips.

Definition at line 91 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), noisy(), PedestalsAnalysis(), print(), and reset().

Peds values.

Definition at line 77 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), peds(), print(), and reset().

Max peds value.

Definition at line 114 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), pedsMax(), print(), and reset().

Mean peds value.

Definition at line 96 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), pedsMean(), print(), and reset().

Min peds value.

Definition at line 117 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), pedsMin(), print(), and reset().

Rms spread in peds.

Definition at line 99 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), pedsSpread(), print(), and reset().

Raw noise values.

Definition at line 83 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), print(), raw(), and reset().

Max raw noise value.

Definition at line 126 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), print(), rawMax(), and reset().

Mean raw noise value.

Definition at line 108 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), print(), rawMean(), and reset().

Min raw noise value.

Definition at line 129 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), print(), rawMin(), and reset().

Rms spread in raw noise.

Definition at line 111 of file PedestalsAnalysis.h.

Referenced by PedestalsAlgorithm::analyse(), isValid(), print(), rawSpread(), and reset().