Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25. More...
#include <SiStripFecKey.h>
Public Member Functions | |
const uint16_t & | ccuAddr () const |
const uint16_t & | ccuChan () const |
const uint16_t & | fecCrate () const |
const uint16_t & | fecRing () const |
const uint16_t & | fecSlot () const |
const uint16_t & | i2cAddr () const |
bool | isConsistent (const SiStripKey &) const |
bool | isEqual (const SiStripKey &) const |
bool | isInvalid () const |
bool | isInvalid (const sistrip::Granularity &) const |
bool | isValid () const |
bool | isValid (const sistrip::Granularity &) const |
const uint16_t & | lldChan () const |
virtual void | print (std::stringstream &ss) const |
SiStripFecKey () | |
SiStripFecKey (const uint16_t &fec_crate, const uint16_t &fec_slot=0, const uint16_t &fec_ring=0, const uint16_t &ccu_addr=0, const uint16_t &ccu_chan=0, const uint16_t &lld_chan=0, const uint16_t &i2c_addr=0) | |
SiStripFecKey (const uint32_t &fec_key) | |
SiStripFecKey (const SiStripKey &) | |
SiStripFecKey (const SiStripKey &, const sistrip::Granularity &) | |
SiStripFecKey (const std::string &directory_path) | |
SiStripFecKey (const SiStripFecKey &) | |
virtual void | terse (std::stringstream &ss) const |
Static Public Member Functions | |
static bool | firstApvOfPair (const uint16_t &i2c_addr) |
static uint16_t | hybridPos (const uint16_t &i2c_addr) |
static uint16_t | i2cAddr (const uint16_t &hybrid_pos) |
static uint16_t | i2cAddr (const uint16_t &lld_chan, const bool &first_apv_of_pair) |
static uint16_t | lldChan (const uint16_t &i2c_addr) |
Private Member Functions | |
void | initFromKey () |
void | initFromPath () |
void | initFromValue () |
void | initGranularity () |
Private Attributes | |
uint16_t | ccuAddr_ |
uint16_t | ccuChan_ |
uint16_t | fecCrate_ |
uint16_t | fecRing_ |
uint16_t | fecSlot_ |
uint16_t | i2cAddr_ |
uint16_t | lldChan_ |
Static Private Attributes | |
static const uint16_t | ccuAddrMask_ = 0xFF |
static const uint16_t | ccuAddrOffset_ = 10 |
static const uint16_t | ccuChanMask_ = 0x1F |
static const uint16_t | ccuChanOffset_ = 5 |
static const uint16_t | fecCrateMask_ = 0x07 |
static const uint16_t | fecCrateOffset_ = 27 |
static const uint16_t | fecRingMask_ = 0x0F |
static const uint16_t | fecRingOffset_ = 18 |
static const uint16_t | fecSlotMask_ = 0x1F |
static const uint16_t | fecSlotOffset_ = 22 |
static const uint16_t | i2cAddrMask_ = 0x03 |
static const uint16_t | i2cAddrOffset_ = 0 |
static const uint16_t | lldChanMask_ = 0x07 |
static const uint16_t | lldChanOffset_ = 2 |
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
The class allows to encode the position within a 32-bit "key" and, conversely, unpack a 32-bit key to provide the position.
The class provides the following member data:
Member data (integer in type only) with values of 0xFFFF signifies "invalid" (ie, FecSlot = 0xFFFF means "invalid FEC slot"). Data with null values signifies "all" (ie, FecSlot = 0 means "all FEC slots").
The class generates a "directory path" string according to the member data. This can be used to organise histograms / other data types when using DQM / root. Conversely, the member data can also be built using the directory path when provided as a constructor argument.
The class also provides the "granularity" to which the FEC key is unambiguous (ie, not "invalid" or "null") in defining a position within the control system.
Definition at line 46 of file SiStripFecKey.h.
SiStripFecKey::SiStripFecKey | ( | const uint16_t & | fec_crate, |
const uint16_t & | fec_slot = 0 , |
||
const uint16_t & | fec_ring = 0 , |
||
const uint16_t & | ccu_addr = 0 , |
||
const uint16_t & | ccu_chan = 0 , |
||
const uint16_t & | lld_chan = 0 , |
||
const uint16_t & | i2c_addr = 0 |
||
) |
Constructor using crate, FEC, ring, CCU, module and channel.
Definition at line 14 of file SiStripFecKey.cc.
References initFromKey(), initFromPath(), initFromValue(), and initGranularity().
: SiStripKey(), fecCrate_(fec_crate), fecSlot_(fec_slot), fecRing_(fec_ring), ccuAddr_(ccu_addr), ccuChan_(ccu_chan), lldChan_(lld_chan), i2cAddr_(i2c_addr) { // order is important! initFromValue(); initFromKey(); initFromPath(); initGranularity(); }
SiStripFecKey::SiStripFecKey | ( | const uint32_t & | fec_key | ) |
Constructor using 32-bit "FEC key".
Definition at line 39 of file SiStripFecKey.cc.
References initFromKey(), initFromPath(), initFromValue(), and initGranularity().
: SiStripKey(fec_key), fecCrate_(sistrip::invalid_), fecSlot_(sistrip::invalid_), fecRing_(sistrip::invalid_), ccuAddr_(sistrip::invalid_), ccuChan_(sistrip::invalid_), lldChan_(sistrip::invalid_), i2cAddr_(sistrip::invalid_) { // order is important! initFromKey(); initFromValue(); initFromPath(); initGranularity(); }
SiStripFecKey::SiStripFecKey | ( | const std::string & | directory_path | ) |
Constructor using directory path.
Definition at line 58 of file SiStripFecKey.cc.
References initFromKey(), initFromPath(), initFromValue(), and initGranularity().
: SiStripKey(path), fecCrate_(sistrip::invalid_), fecSlot_(sistrip::invalid_), fecRing_(sistrip::invalid_), ccuAddr_(sistrip::invalid_), ccuChan_(sistrip::invalid_), lldChan_(sistrip::invalid_), i2cAddr_(sistrip::invalid_) { // order is important! initFromPath(); initFromValue(); initFromKey(); initGranularity(); }
SiStripFecKey::SiStripFecKey | ( | const SiStripFecKey & | input | ) |
Copy constructor.
Definition at line 77 of file SiStripFecKey.cc.
References SiStripKey::granularity(), SiStripKey::key(), and SiStripKey::path().
SiStripFecKey::SiStripFecKey | ( | const SiStripKey & | input | ) |
Copy constructor using base class.
Definition at line 94 of file SiStripFecKey.cc.
References ccuAddr(), ccuAddr_, ccuChan(), ccuChan_, fecCrate(), fecCrate_, fecRing(), fecRing_, fecSlot(), fecSlot_, SiStripKey::granularity(), i2cAddr(), i2cAddr_, LaserDQM_cfg::input, SiStripKey::key(), lldChan(), lldChan_, SiStripKey::path(), and groupFilesInBlocks::temp.
: SiStripKey(), fecCrate_(sistrip::invalid_), fecSlot_(sistrip::invalid_), fecRing_(sistrip::invalid_), ccuAddr_(sistrip::invalid_), ccuChan_(sistrip::invalid_), lldChan_(sistrip::invalid_), i2cAddr_(sistrip::invalid_) { SiStripKey& temp = const_cast<SiStripKey&>(input); SiStripFecKey& fec_key = dynamic_cast<SiStripFecKey&>(temp); if ( (&fec_key) ) { key(fec_key.key()); path(fec_key.path()); granularity(fec_key.granularity()); fecCrate_ = fec_key.fecCrate(); fecSlot_ = fec_key.fecSlot(); fecRing_ = fec_key.fecRing(); ccuAddr_ = fec_key.ccuAddr(); ccuChan_ = fec_key.ccuChan(); lldChan_ = fec_key.lldChan(); i2cAddr_ = fec_key.i2cAddr(); } }
SiStripFecKey::SiStripFecKey | ( | const SiStripKey & | input, |
const sistrip::Granularity & | gran | ||
) |
Copy to level specified by granularity.
Definition at line 122 of file SiStripFecKey.cc.
References sistrip::APV, sistrip::CCU_ADDR, sistrip::CCU_CHAN, ccuAddr(), ccuAddr_, ccuChan(), ccuChan_, sistrip::FEC_CRATE, sistrip::FEC_RING, sistrip::FEC_SLOT, fecCrate(), fecCrate_, fecRing(), fecRing_, fecSlot(), fecSlot_, i2cAddr(), i2cAddr_, initFromKey(), initFromPath(), initFromValue(), initGranularity(), LaserDQM_cfg::input, sistrip::LLD_CHAN, lldChan(), lldChan_, and groupFilesInBlocks::temp.
: SiStripKey(), fecCrate_(0), fecSlot_(0), fecRing_(0), ccuAddr_(0), ccuChan_(0), lldChan_(0), i2cAddr_(0) { SiStripKey& temp = const_cast<SiStripKey&>(input); SiStripFecKey& fec_key = dynamic_cast<SiStripFecKey&>(temp); if ( (&fec_key) ) { if ( gran == sistrip::FEC_CRATE || gran == sistrip::FEC_SLOT || gran == sistrip::FEC_RING || gran == sistrip::CCU_ADDR || gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV ) { fecCrate_ = fec_key.fecCrate(); } if ( gran == sistrip::FEC_SLOT || gran == sistrip::FEC_RING || gran == sistrip::CCU_ADDR || gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV ) { fecSlot_ = fec_key.fecSlot(); } if ( gran == sistrip::FEC_RING || gran == sistrip::CCU_ADDR || gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV ) { fecRing_ = fec_key.fecRing(); } if ( gran == sistrip::CCU_ADDR || gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV ) { ccuAddr_ = fec_key.ccuAddr(); } if ( gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV ) { ccuChan_ = fec_key.ccuChan(); } if ( gran == sistrip::LLD_CHAN || gran == sistrip::APV ) { lldChan_ = fec_key.lldChan(); } if ( gran == sistrip::APV ) { i2cAddr_ = fec_key.i2cAddr(); } initFromValue(); initFromKey(); initFromPath(); initGranularity(); } }
SiStripFecKey::SiStripFecKey | ( | ) |
Default constructor
Definition at line 185 of file SiStripFecKey.cc.
const uint16_t & SiStripFecKey::ccuAddr | ( | ) | const [inline] |
Returns CCU module.
Definition at line 208 of file SiStripFecKey.h.
References ccuAddr_.
Referenced by SiStripModule::addApv(), SiStripModule::addDevices(), CommissioningHistosUsingDb::buildDetInfo(), SiStripModule::ccuAddr(), CommissioningHistosUsingDb::deviceIsPresent(), CalibrationSummaryFactory::extract(), SummaryGeneratorControlView::fill(), SiStripCommissioningSource::fillCablingHistos(), FastFedCablingAnalysis::header(), CommissioningAnalysis::header(), FedTimingHistograms::histoAnalysis(), ApvTimingHistograms::histoAnalysis(), isConsistent(), isEqual(), print(), SiStripModule::print(), SiStripFecKey(), PedsOnlyAnalysis::summary(), PedsFullNoiseAnalysis::summary(), VpspScanAnalysis::summary(), PedestalsAnalysis::summary(), NoiseAnalysis::summary(), OptoScanAnalysis::summary(), CommissioningAnalysis::summary(), terse(), SiStripModule::terse(), OptoScanHistosUsingDb::update(), LatencyHistosUsingDb::update(), ApvTimingHistosUsingDb::update(), VpspScanHistosUsingDb::update(), and FineDelayHistosUsingDb::update().
{ return ccuAddr_; }
const uint16_t & SiStripFecKey::ccuChan | ( | ) | const [inline] |
Returns Front-End module.
Definition at line 209 of file SiStripFecKey.h.
References ccuChan_.
Referenced by SiStripModule::addApv(), SiStripModule::addDevices(), CommissioningHistosUsingDb::buildDetInfo(), SiStripModule::ccuChan(), CommissioningHistosUsingDb::deviceIsPresent(), CalibrationSummaryFactory::extract(), SummaryGeneratorControlView::fill(), SiStripCommissioningSource::fillCablingHistos(), FastFedCablingAnalysis::header(), CommissioningAnalysis::header(), FedTimingHistograms::histoAnalysis(), ApvTimingHistograms::histoAnalysis(), isEqual(), print(), SiStripModule::print(), SiStripFecKey(), PedsOnlyAnalysis::summary(), PedsFullNoiseAnalysis::summary(), VpspScanAnalysis::summary(), PedestalsAnalysis::summary(), NoiseAnalysis::summary(), OptoScanAnalysis::summary(), CommissioningAnalysis::summary(), terse(), SiStripModule::terse(), OptoScanHistosUsingDb::update(), LatencyHistosUsingDb::update(), ApvTimingHistosUsingDb::update(), VpspScanHistosUsingDb::update(), and FineDelayHistosUsingDb::update().
{ return ccuChan_; }
const uint16_t & SiStripFecKey::fecCrate | ( | ) | const [inline] |
Returns VME crate.
Definition at line 205 of file SiStripFecKey.h.
References fecCrate_.
Referenced by SiStripModule::addApv(), SiStripModule::addDevices(), CommissioningHistosUsingDb::buildDetInfo(), CommissioningHistosUsingDb::deviceIsPresent(), CalibrationSummaryFactory::extract(), SiStripModule::fecCrate(), SummaryGeneratorControlView::fill(), SiStripCommissioningSource::fillCablingHistos(), FastFedCablingAnalysis::header(), CommissioningAnalysis::header(), FedTimingHistograms::histoAnalysis(), ApvTimingHistograms::histoAnalysis(), isConsistent(), isEqual(), print(), SiStripModule::print(), SiStripConfigDb::printAnalysisDescriptions(), SiStripConfigDb::printDeviceDescriptions(), SiStripFecKey(), PedsOnlyAnalysis::summary(), PedsFullNoiseAnalysis::summary(), VpspScanAnalysis::summary(), PedestalsAnalysis::summary(), NoiseAnalysis::summary(), OptoScanAnalysis::summary(), CommissioningAnalysis::summary(), terse(), SiStripModule::terse(), OptoScanHistosUsingDb::update(), LatencyHistosUsingDb::update(), ApvTimingHistosUsingDb::update(), VpspScanHistosUsingDb::update(), and FineDelayHistosUsingDb::update().
{ return fecCrate_; }
const uint16_t & SiStripFecKey::fecRing | ( | ) | const [inline] |
Returns FEC control ring.
Definition at line 207 of file SiStripFecKey.h.
References fecRing_.
Referenced by SiStripModule::addApv(), SiStripModule::addDevices(), CommissioningHistosUsingDb::buildDetInfo(), CommissioningHistosUsingDb::deviceIsPresent(), CalibrationSummaryFactory::extract(), SiStripModule::fecRing(), SummaryGeneratorControlView::fill(), SiStripCommissioningSource::fillCablingHistos(), FastFedCablingAnalysis::header(), CommissioningAnalysis::header(), FedTimingHistograms::histoAnalysis(), ApvTimingHistograms::histoAnalysis(), isConsistent(), isEqual(), print(), SiStripModule::print(), SiStripConfigDb::printAnalysisDescriptions(), SiStripConfigDb::printDeviceDescriptions(), SiStripFecKey(), PedsOnlyAnalysis::summary(), PedsFullNoiseAnalysis::summary(), VpspScanAnalysis::summary(), PedestalsAnalysis::summary(), NoiseAnalysis::summary(), OptoScanAnalysis::summary(), CommissioningAnalysis::summary(), terse(), SiStripModule::terse(), OptoScanHistosUsingDb::update(), LatencyHistosUsingDb::update(), ApvTimingHistosUsingDb::update(), VpspScanHistosUsingDb::update(), and FineDelayHistosUsingDb::update().
{ return fecRing_; }
const uint16_t & SiStripFecKey::fecSlot | ( | ) | const [inline] |
Returns FEC identifier (VME slot).
Definition at line 206 of file SiStripFecKey.h.
References fecSlot_.
Referenced by SiStripModule::addApv(), SiStripModule::addDevices(), CommissioningHistosUsingDb::buildDetInfo(), CommissioningHistosUsingDb::deviceIsPresent(), CalibrationSummaryFactory::extract(), SiStripModule::fecSlot(), SummaryGeneratorControlView::fill(), SiStripCommissioningSource::fillCablingHistos(), FastFedCablingAnalysis::header(), CommissioningAnalysis::header(), FedTimingHistograms::histoAnalysis(), ApvTimingHistograms::histoAnalysis(), isConsistent(), isEqual(), print(), SiStripModule::print(), SiStripConfigDb::printAnalysisDescriptions(), SiStripConfigDb::printDeviceDescriptions(), SiStripFecKey(), PedsOnlyAnalysis::summary(), PedsFullNoiseAnalysis::summary(), VpspScanAnalysis::summary(), PedestalsAnalysis::summary(), NoiseAnalysis::summary(), OptoScanAnalysis::summary(), CommissioningAnalysis::summary(), terse(), SiStripModule::terse(), OptoScanHistosUsingDb::update(), LatencyHistosUsingDb::update(), ApvTimingHistosUsingDb::update(), VpspScanHistosUsingDb::update(), and FineDelayHistosUsingDb::update().
{ return fecSlot_; }
bool SiStripFecKey::firstApvOfPair | ( | const uint16_t & | i2c_addr | ) | [static] |
Identifies if first APV of pair for given I2C addr (32-37).
Definition at line 242 of file SiStripFecKey.cc.
References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.
Referenced by initFromKey().
{ if ( i2c_addr < sistrip::APV_I2C_MIN || i2c_addr > sistrip::APV_I2C_MAX ) { return sistrip::invalid_; } return ( ( ( i2c_addr - sistrip::APV_I2C_MIN ) % 2 ) == 0 ); }
uint16_t SiStripFecKey::hybridPos | ( | const uint16_t & | i2c_addr | ) | [static] |
Returns hybrid position (1-6) for a given I2C addr (32-37).
Definition at line 198 of file SiStripFecKey.cc.
References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.
{ if ( i2c_addr < sistrip::APV_I2C_MIN || i2c_addr > sistrip::APV_I2C_MAX ) { return sistrip::invalid_; } return ( i2c_addr - sistrip::APV_I2C_MIN + 1 ); }
uint16_t SiStripFecKey::i2cAddr | ( | const uint16_t & | hybrid_pos | ) | [static] |
Returns I2C addr (32-37) for a given hybrid position (1-6).
Definition at line 208 of file SiStripFecKey.cc.
References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.
{ if ( !hybrid_pos || hybrid_pos > ( sistrip::APV_I2C_MAX - sistrip::APV_I2C_MIN + 1 ) ) { return sistrip::invalid_; } return ( hybrid_pos + sistrip::APV_I2C_MIN - 1 ); }
uint16_t SiStripFecKey::i2cAddr | ( | const uint16_t & | lld_chan, |
const bool & | first_apv_of_pair | ||
) | [static] |
Returns I2C addr (32-37) for LLD chan (1-3) and APV pos.
Definition at line 220 of file SiStripFecKey.cc.
References sistrip::APV_I2C_MIN, sistrip::APVS_PER_CHAN, sistrip::invalid_, sistrip::LLD_CHAN_MAX, and sistrip::LLD_CHAN_MIN.
{ if ( lld_chan < sistrip::LLD_CHAN_MIN || lld_chan > sistrip::LLD_CHAN_MAX ) { return sistrip::invalid_; } return ( sistrip::APV_I2C_MIN + lld_chan * sistrip::APVS_PER_CHAN - (first_apv?2:1) ); }
const uint16_t & SiStripFecKey::i2cAddr | ( | ) | const [inline] |
Returns I2C address ("invalid" if inconsistent with LLD chan.
Definition at line 211 of file SiStripFecKey.h.
References i2cAddr_.
Referenced by SiStripFedCablingBuilderFromDb::buildFecCablingFromDevices(), PedestalsHistosUsingDb::create(), PedsFullNoiseHistosUsingDb::create(), FastFedCablingHistosUsingDb::create(), VpspScanHistosUsingDb::create(), PedsOnlyHistosUsingDb::create(), NoiseHistosUsingDb::create(), CalibrationHistosUsingDb::create(), ApvTimingHistosUsingDb::create(), OptoScanHistosUsingDb::create(), CalibrationSummaryFactory::extract(), initFromKey(), isConsistent(), isEqual(), print(), SiStripFecKey(), PedsOnlyAnalysis::summary(), PedsFullNoiseAnalysis::summary(), PedestalsAnalysis::summary(), NoiseAnalysis::summary(), terse(), and FastFedCablingHistosUsingDb::update().
{ return i2cAddr_; }
void SiStripFecKey::initFromKey | ( | ) | [private, virtual] |
Reimplemented from SiStripKey.
Definition at line 426 of file SiStripFecKey.cc.
References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, sistrip::CCU_ADDR_MAX, sistrip::CCU_ADDR_MIN, sistrip::CCU_CHAN_MAX, sistrip::CCU_CHAN_MIN, ccuAddr_, ccuAddrMask_, ccuAddrOffset_, ccuChan_, ccuChanMask_, ccuChanOffset_, sistrip::CRATE_SLOT_MAX, sistrip::CRATE_SLOT_MIN, sistrip::FEC_CRATE_MAX, sistrip::FEC_CRATE_MIN, sistrip::FEC_RING_MAX, sistrip::FEC_RING_MIN, fecCrate_, fecCrateMask_, fecCrateOffset_, fecRing_, fecRingMask_, fecRingOffset_, fecSlot_, fecSlotMask_, fecSlotOffset_, firstApvOfPair(), i2cAddr(), i2cAddr_, i2cAddrMask_, i2cAddrOffset_, sistrip::invalid32_, sistrip::invalid_, SiStripKey::key(), sistrip::LLD_CHAN_MAX, sistrip::LLD_CHAN_MIN, lldChan(), lldChan_, lldChanMask_, and lldChanOffset_.
Referenced by SiStripFecKey().
{ if ( key() == sistrip::invalid32_ ) { // ---------- Set FecKey based on member data ---------- // Initialise to null value key(0); // Extract FEC crate if ( fecCrate_ >= sistrip::FEC_CRATE_MIN && fecCrate_ <= sistrip::FEC_CRATE_MAX ) { key( key() | (fecCrate_<<fecCrateOffset_) ); } else if ( fecCrate_ == 0 ) { key( key() | (fecCrate_<<fecCrateOffset_) ); } else { key( key() | (fecCrateMask_<<fecCrateOffset_) ); } // Extract FEC slot if ( fecSlot_ >= sistrip::CRATE_SLOT_MIN && fecSlot_ <= sistrip::CRATE_SLOT_MAX ) { key( key() | (fecSlot_<<fecSlotOffset_) ); } else if ( fecSlot_ == 0 ) { key( key() | (fecSlot_<<fecSlotOffset_) ); } else { key( key() | (fecSlotMask_<<fecSlotOffset_) ); } // Extract FEC ring if ( fecRing_ >= sistrip::FEC_RING_MIN && fecRing_ <= sistrip::FEC_RING_MAX ) { key( key() | (fecRing_<<fecRingOffset_) ); } else if ( fecRing_ == 0 ) { key( key() | (fecRing_<<fecRingOffset_) ); } else { key( key() | (fecRingMask_<<fecRingOffset_) ); } // Extract CCU addr if ( ccuAddr_ >= sistrip::CCU_ADDR_MIN && ccuAddr_ <= sistrip::CCU_ADDR_MAX ) { key( key() | (ccuAddr_<<ccuAddrOffset_) ); } else if ( ccuAddr_ == 0 ) { key( key() | (ccuAddr_<<ccuAddrOffset_) ); } else { key( key() | (ccuAddrMask_<<ccuAddrOffset_) ); } // Extract CCU chan if ( ccuChan_ >= sistrip::CCU_CHAN_MIN && ccuChan_ <= sistrip::CCU_CHAN_MAX ) { key( key() | ( (ccuChan_-(sistrip::CCU_CHAN_MIN-1)) << ccuChanOffset_ ) ); } else if ( ccuChan_ == 0 ) { key( key() | (ccuChan_<<ccuChanOffset_) ); } else { key( key() | (ccuChanMask_<<ccuChanOffset_) ); } // Extract LLD channel if ( lldChan_ >= sistrip::LLD_CHAN_MIN && lldChan_ <= sistrip::LLD_CHAN_MAX ) { key( key() | (lldChan_<<lldChanOffset_) ); } else if ( lldChan_ == 0 ) { key( key() | (lldChan_<<lldChanOffset_) ); } else { key( key() | (lldChanMask_<<lldChanOffset_) ); } // Extract APV I2C address if ( i2cAddr_ >= sistrip::APV_I2C_MIN && i2cAddr_ <= sistrip::APV_I2C_MAX ) { key( key() | ( ( firstApvOfPair( i2cAddr_ ) ? 1 : 2 ) << i2cAddrOffset_ ) ); // key encodes APV number (1 or 2) if ( lldChan_ && lldChan( i2cAddr_ ) != lldChan_ ) { i2cAddr_ = sistrip::invalid_; key( key() | (i2cAddrMask_<<i2cAddrOffset_) ); } } else if ( i2cAddr_ == 0 ) { key( key() | (i2cAddr_<<i2cAddrOffset_) ); } else { key( key() | (i2cAddrMask_<<i2cAddrOffset_) ); } } else { // ---------- Set member data based on FEC key ---------- fecCrate_ = ( key()>>fecCrateOffset_ ) & fecCrateMask_; fecSlot_ = ( key()>>fecSlotOffset_ ) & fecSlotMask_; fecRing_ = ( key()>>fecRingOffset_ ) & fecRingMask_; ccuAddr_ = ( key()>>ccuAddrOffset_ ) & ccuAddrMask_; ccuChan_ = ( key()>>ccuChanOffset_ ) & ccuChanMask_; lldChan_ = ( key()>>lldChanOffset_ ) & lldChanMask_; i2cAddr_ = ( key()>>i2cAddrOffset_ ) & i2cAddrMask_; if ( fecCrate_ == fecCrateMask_ ) { fecCrate_ = sistrip::invalid_; } if ( fecSlot_ == fecSlotMask_ ) { fecSlot_ = sistrip::invalid_; } if ( fecRing_ == fecRingMask_ ) { fecRing_ = sistrip::invalid_; } if ( ccuAddr_ == ccuAddrMask_ ) { ccuAddr_ = sistrip::invalid_; } if ( ccuChan_ == ccuChanMask_ ) { ccuChan_ = sistrip::invalid_; } else if ( ccuChan_ ) { ccuChan_ += (sistrip::CCU_CHAN_MIN-1); } if ( lldChan_ == lldChanMask_ ) { lldChan_ = sistrip::invalid_; } if ( i2cAddr_ == i2cAddrMask_ ) { i2cAddr_ = sistrip::invalid_; } else if ( i2cAddr_ && lldChan_ != lldChanMask_ ) { i2cAddr_ = i2cAddr( lldChan_, 2-i2cAddr_ ); } } }
void SiStripFecKey::initFromPath | ( | ) | [private, virtual] |
Reimplemented from SiStripKey.
Definition at line 537 of file SiStripFecKey.cc.
References sistrip::apv_, sistrip::ccuAddr_, ccuAddr_, ccuChan_, sistrip::ccuChan_, sistrip::controlView_, dir, sistrip::dir_, fecCrate_, sistrip::fecCrate_, sistrip::fecRing_, fecRing_, fecSlot_, sistrip::fecSlot_, spr::find(), i2cAddr_, sistrip::lldChan_, lldChan_, sistrip::null_, SiStripKey::path(), sistrip::root_, and groupFilesInBlocks::temp.
Referenced by SiStripFecKey().
{ if ( path() == sistrip::null_ ) { // ---------- Set directory path based on member data ---------- std::stringstream dir; dir << sistrip::root_ << sistrip::dir_ << sistrip::controlView_ << sistrip::dir_; // Add FEC crate if ( fecCrate_ ) { dir << sistrip::fecCrate_ << fecCrate_ << sistrip::dir_; // Add FEC slot if ( fecSlot_ ) { dir << sistrip::fecSlot_ << fecSlot_ << sistrip::dir_; // Add FEC ring if ( fecRing_ ) { dir << sistrip::fecRing_ << fecRing_ << sistrip::dir_; // Add CCU address if ( ccuAddr_ ) { dir << sistrip::ccuAddr_ << ccuAddr_ << sistrip::dir_; // Add CCU channel if ( ccuChan_ ) { dir << sistrip::ccuChan_ << ccuChan_ << sistrip::dir_; // Add LLD channel if ( lldChan_ ) { dir << sistrip::lldChan_ << lldChan_ << sistrip::dir_; // Add APV I2C address if ( i2cAddr_ ) { dir << sistrip::apv_ << i2cAddr_ << sistrip::dir_; } } } } } } } std::string temp( dir.str() ); path( temp ); } else { // ---------- Set member data based on directory path ---------- fecCrate_ = 0; fecSlot_ = 0; fecRing_ = 0; ccuAddr_ = 0; ccuChan_ = 0; lldChan_ = 0; i2cAddr_ = 0; // Check if root is found if ( path().find( sistrip::root_ ) == std::string::npos ) { std::string temp = path(); path( std::string(sistrip::root_) + sistrip::dir_ + temp ); } size_t curr = 0; // current string position size_t next = 0; // next string position next = path().find( sistrip::controlView_, curr ); // Extract view curr = next; if ( curr != std::string::npos ) { next = path().find( sistrip::fecCrate_, curr ); std::string control_view( path(), curr+(sizeof(sistrip::controlView_) - 1), next-(sizeof(sistrip::dir_) - 1)-curr ); // Extract FEC crate curr = next; if ( curr != std::string::npos ) { next = path().find( sistrip::fecSlot_, curr ); std::string fec_crate( path(), curr+(sizeof(sistrip::fecCrate_) - 1), next-(sizeof(sistrip::dir_) - 1)-curr ); fecCrate_ = std::atoi( fec_crate.c_str() ); // Extract FEC slot curr = next; if ( curr != std::string::npos ) { next = path().find( sistrip::fecRing_, curr ); std::string fec_slot( path(), curr+(sizeof(sistrip::fecSlot_) - 1), next-(sizeof(sistrip::dir_) - 1)-curr ); fecSlot_ = std::atoi( fec_slot.c_str() ); // Extract FEC ring curr = next; if ( curr != std::string::npos ) { next = path().find( sistrip::ccuAddr_, curr ); std::string fec_ring( path(), curr+(sizeof(sistrip::fecRing_) - 1), next-(sizeof(sistrip::dir_) - 1)-curr ); fecRing_ = std::atoi( fec_ring.c_str() ); // Extract CCU address curr = next; if ( curr != std::string::npos ) { next = path().find( sistrip::ccuChan_, curr ); std::string ccu_addr( path(), curr+(sizeof(sistrip::ccuAddr_) - 1), next-(sizeof(sistrip::dir_) - 1)-curr ); ccuAddr_ = std::atoi( ccu_addr.c_str() ); // Extract CCU channel curr = next; if ( curr != std::string::npos ) { next = path().find( sistrip::lldChan_, curr ); std::string ccu_chan( path(), curr+(sizeof(sistrip::ccuChan_) - 1), next-(sizeof(sistrip::dir_) - 1)-curr ); ccuChan_ = std::atoi( ccu_chan.c_str() ); // Extract LLD channel curr = next; if ( curr != std::string::npos ) { next = path().find( sistrip::apv_, curr ); std::string lld_chan( path(), curr+(sizeof(sistrip::lldChan_) - 1), next-(sizeof(sistrip::dir_) - 1)-curr ); lldChan_ = std::atoi( lld_chan.c_str() ); // Extract I2C address curr = next; if ( curr != std::string::npos ) { next = std::string::npos; std::string i2c_addr( path(), curr+(sizeof(sistrip::apv_) - 1), next-curr ); i2cAddr_ = std::atoi( i2c_addr.c_str() ); } } } } } } } } else { std::stringstream ss; ss << sistrip::root_ << sistrip::dir_; //ss << sistrip::root_ << sistrip::dir_ //<< sistrip::unknownView_ << sistrip::dir_; std::string temp( ss.str() ); path( temp ); } } }
void SiStripFecKey::initFromValue | ( | ) | [private, virtual] |
Reimplemented from SiStripKey.
Definition at line 360 of file SiStripFecKey.cc.
References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, sistrip::CCU_ADDR_MAX, sistrip::CCU_ADDR_MIN, sistrip::CCU_CHAN_MAX, sistrip::CCU_CHAN_MIN, ccuAddr_, ccuChan_, sistrip::CRATE_SLOT_MAX, sistrip::CRATE_SLOT_MIN, sistrip::FEC_CRATE_MAX, sistrip::FEC_CRATE_MIN, sistrip::FEC_RING_MAX, sistrip::FEC_RING_MIN, fecCrate_, fecRing_, fecSlot_, i2cAddr_, i2cAddrMask_, i2cAddrOffset_, sistrip::invalid_, SiStripKey::key(), sistrip::LLD_CHAN_MAX, sistrip::LLD_CHAN_MIN, lldChan(), and lldChan_.
Referenced by SiStripFecKey().
{ // FEC crate if ( fecCrate_ >= sistrip::FEC_CRATE_MIN && fecCrate_ <= sistrip::FEC_CRATE_MAX ) { fecCrate_ = fecCrate_; } else if ( fecCrate_ == 0 ) { fecCrate_ = 0; } else { fecCrate_ = sistrip::invalid_; } // FEC slot if ( fecSlot_ >= sistrip::CRATE_SLOT_MIN && fecSlot_ <= sistrip::CRATE_SLOT_MAX ) { fecSlot_ = fecSlot_; } else if ( fecSlot_ == 0 ) { fecSlot_ = 0; } else { fecSlot_ = sistrip::invalid_; } // FEC ring if ( fecRing_ >= sistrip::FEC_RING_MIN && fecRing_ <= sistrip::FEC_RING_MAX ) { fecRing_ = fecRing_; } else if ( fecRing_ == 0 ) { fecRing_ = 0; } else { fecRing_ = sistrip::invalid_; } // CCU addr if ( ccuAddr_ >= sistrip::CCU_ADDR_MIN && ccuAddr_ <= sistrip::CCU_ADDR_MAX ) { ccuAddr_ = ccuAddr_; } else if ( ccuAddr_ == 0 ) { ccuAddr_ = 0; } else { ccuAddr_ = sistrip::invalid_; } // CCU chan if ( ccuChan_ >= sistrip::CCU_CHAN_MIN && ccuChan_ <= sistrip::CCU_CHAN_MAX ) { ccuChan_ = ccuChan_; } else if ( ccuChan_ == 0 ) { ccuChan_ = 0; } else { ccuChan_ = sistrip::invalid_; } // LLD channel if ( lldChan_ >= sistrip::LLD_CHAN_MIN && lldChan_ <= sistrip::LLD_CHAN_MAX ) { lldChan_ = lldChan_; } else if ( lldChan_ == 0 ) { lldChan_ = 0; } else { lldChan_ = sistrip::invalid_; } // APV I2C address if ( i2cAddr_ >= sistrip::APV_I2C_MIN && i2cAddr_ <= sistrip::APV_I2C_MAX ) { i2cAddr_ = i2cAddr_; if ( lldChan_ && lldChan( i2cAddr_ ) != lldChan_ ) { i2cAddr_ = sistrip::invalid_; key( key() | (i2cAddrMask_<<i2cAddrOffset_) ); } } else if ( i2cAddr_ == 0 ) { i2cAddr_ = 0; } else { i2cAddr_ = sistrip::invalid_; } }
void SiStripFecKey::initGranularity | ( | ) | [private, virtual] |
Reimplemented from SiStripKey.
Definition at line 700 of file SiStripFecKey.cc.
References sistrip::APV, sistrip::CCU_ADDR, sistrip::CCU_CHAN, ccuAddr_, ccuChan_, SiStripKey::channel(), sistrip::FEC_CRATE, sistrip::FEC_RING, sistrip::FEC_SLOT, sistrip::FEC_SYSTEM, fecCrate_, fecRing_, fecSlot_, SiStripKey::granularity(), i2cAddr_, sistrip::invalid_, sistrip::LLD_CHAN, lldChan_, and sistrip::UNKNOWN_GRAN.
Referenced by SiStripFecKey().
{ granularity( sistrip::FEC_SYSTEM ); channel(0); if ( fecCrate_ && fecCrate_ != sistrip::invalid_ ) { granularity( sistrip::FEC_CRATE ); channel(fecCrate_); if ( fecSlot_ && fecSlot_ != sistrip::invalid_ ) { granularity( sistrip::FEC_SLOT ); channel(fecSlot_); if ( fecRing_ && fecRing_ != sistrip::invalid_ ) { granularity( sistrip::FEC_RING ); channel(fecRing_); if ( ccuAddr_ && ccuAddr_ != sistrip::invalid_ ) { granularity( sistrip::CCU_ADDR ); channel(ccuAddr_); if ( ccuChan_ && ccuChan_ != sistrip::invalid_ ) { granularity( sistrip::CCU_CHAN ); channel(ccuChan_); if ( lldChan_ && lldChan_ != sistrip::invalid_ ) { granularity( sistrip::LLD_CHAN ); channel(lldChan_); if ( i2cAddr_ && i2cAddr_ != sistrip::invalid_ ) { granularity( sistrip::APV ); channel(i2cAddr_); } else if ( i2cAddr_ == sistrip::invalid_ ) { granularity( sistrip::UNKNOWN_GRAN ); channel(sistrip::invalid_); } } else if ( lldChan_ == sistrip::invalid_ ) { granularity( sistrip::UNKNOWN_GRAN ); channel(sistrip::invalid_); } } else if ( ccuChan_ == sistrip::invalid_ ) { granularity( sistrip::UNKNOWN_GRAN ); channel(sistrip::invalid_); } } else if ( ccuAddr_ == sistrip::invalid_ ) { granularity( sistrip::UNKNOWN_GRAN ); channel(sistrip::invalid_); } } else if ( fecRing_ == sistrip::invalid_ ) { granularity( sistrip::UNKNOWN_GRAN ); channel(sistrip::invalid_); } } else if ( fecSlot_ == sistrip::invalid_ ) { granularity( sistrip::UNKNOWN_GRAN ); channel(sistrip::invalid_); } } else if ( fecCrate_ == sistrip::invalid_ ) { granularity( sistrip::UNKNOWN_GRAN ); channel(sistrip::invalid_); } }
bool SiStripFecKey::isConsistent | ( | const SiStripKey & | key | ) | const [virtual] |
"Consistent" means identical and/or null (ie, "all") data.
Reimplemented from SiStripKey.
Definition at line 269 of file SiStripFecKey.cc.
References ccuAddr(), ccuAddr_, fecCrate(), fecCrate_, fecRing(), fecRing_, fecSlot(), fecSlot_, i2cAddr(), i2cAddr_, LaserDQM_cfg::input, isEqual(), SiStripKey::key(), lldChan(), lldChan_, and groupFilesInBlocks::temp.
{ SiStripKey& temp = const_cast<SiStripKey&>(key); SiStripFecKey& input = dynamic_cast<SiStripFecKey&>(temp); if ( !(&input) ) { return false; } if ( isEqual(input) ) { return true; } else if ( ( fecCrate_ == 0 || input.fecCrate() == 0 ) && ( fecSlot_ == 0 || input.fecSlot() == 0 ) && ( fecRing_ == 0 || input.fecRing() == 0 ) && ( ccuAddr_ == 0 || input.ccuAddr() == 0 ) && ( lldChan_ == 0 || input.lldChan() == 0 ) && ( i2cAddr_ == 0 || input.i2cAddr() == 0 ) ) { return true; } else { return false; } }
bool SiStripFecKey::isEqual | ( | const SiStripKey & | key | ) | const [virtual] |
Identifies key objects with identical member data.
Reimplemented from SiStripKey.
Definition at line 252 of file SiStripFecKey.cc.
References ccuAddr(), ccuAddr_, ccuChan(), ccuChan_, fecCrate(), fecCrate_, fecRing(), fecRing_, fecSlot(), fecSlot_, i2cAddr(), i2cAddr_, LaserDQM_cfg::input, SiStripKey::key(), lldChan(), lldChan_, and groupFilesInBlocks::temp.
Referenced by isConsistent().
{ SiStripKey& temp = const_cast<SiStripKey&>(key); SiStripFecKey& input = dynamic_cast<SiStripFecKey&>(temp); if ( !(&input) ) { return false; } if ( fecCrate_ == input.fecCrate() && fecSlot_ == input.fecSlot() && fecRing_ == input.fecRing() && ccuAddr_ == input.ccuAddr() && ccuChan_ == input.ccuChan() && lldChan_ == input.lldChan() && i2cAddr_ == input.i2cAddr() ) { return true; } else { return false; } }
bool SiStripFecKey::isInvalid | ( | ) | const [virtual] |
Identifies all member data as being "invalid".
Reimplemented from SiStripKey.
Definition at line 323 of file SiStripFecKey.cc.
References sistrip::APV.
Referenced by CommissioningHistosUsingDb::detInfo().
{ return isInvalid(sistrip::APV); }
bool SiStripFecKey::isInvalid | ( | const sistrip::Granularity & | gran | ) | const [virtual] |
All member data to level of "Granularity" are invalid. If sistrip::Granularity is "undefined", returns true.
Reimplemented from SiStripKey.
Definition at line 329 of file SiStripFecKey.cc.
References sistrip::APV, sistrip::CCU_ADDR, sistrip::CCU_CHAN, ccuAddr_, ccuChan_, sistrip::FEC_CRATE, sistrip::FEC_RING, sistrip::FEC_SYSTEM, fecCrate_, fecRing_, fecSlot_, i2cAddr_, sistrip::invalid_, sistrip::LLD_CHAN, lldChan_, sistrip::UNDEFINED_GRAN, and sistrip::UNKNOWN_GRAN.
{ if ( gran == sistrip::FEC_SYSTEM ) { return false; } else if ( gran == sistrip::UNDEFINED_GRAN || gran == sistrip::UNKNOWN_GRAN ) { return false; } if ( fecCrate_ == sistrip::invalid_ ) { if ( gran == sistrip::FEC_CRATE ) { return true; } if ( fecSlot_ == sistrip::invalid_ ) { if ( gran == sistrip::FEC_RING ) { return true; } if ( fecRing_ == sistrip::invalid_ ) { if ( gran == sistrip::FEC_RING ) { return true; } if ( ccuAddr_ == sistrip::invalid_ ) { if ( gran == sistrip::CCU_ADDR ) { return true; } if ( ccuChan_ == sistrip::invalid_ ) { if ( gran == sistrip::CCU_CHAN ) { return true; } if ( lldChan_ == sistrip::invalid_ ) { if ( gran == sistrip::LLD_CHAN ) { return true; } if ( i2cAddr_ == sistrip::invalid_ ) { if ( gran == sistrip::APV ) { return true; } } } } } } } } return false; }
bool SiStripFecKey::isValid | ( | void | ) | const [virtual] |
Identifies all member data as being "valid" or "all" (null).
Reimplemented from SiStripKey.
Definition at line 286 of file SiStripFecKey.cc.
References sistrip::APV.
Referenced by CommissioningHistosUsingDb::buildDetInfo(), SummaryGeneratorControlView::fill(), FastFedCablingAnalysis::header(), and print().
{ return isValid(sistrip::APV); }
bool SiStripFecKey::isValid | ( | const sistrip::Granularity & | gran | ) | const [virtual] |
All member data to level of "Granularity" are "valid". If sistrip::Granularity is "undefined", returns false.
Reimplemented from SiStripKey.
Definition at line 292 of file SiStripFecKey.cc.
References sistrip::APV, sistrip::CCU_ADDR, sistrip::CCU_CHAN, ccuAddr_, ccuChan_, sistrip::FEC_CRATE, sistrip::FEC_RING, sistrip::FEC_SYSTEM, fecCrate_, fecRing_, fecSlot_, i2cAddr_, sistrip::invalid_, sistrip::LLD_CHAN, lldChan_, sistrip::UNDEFINED_GRAN, and sistrip::UNKNOWN_GRAN.
{ if ( gran == sistrip::FEC_SYSTEM ) { return true; } else if ( gran == sistrip::UNDEFINED_GRAN || gran == sistrip::UNKNOWN_GRAN ) { return false; } if ( fecCrate_ != sistrip::invalid_ ) { if ( gran == sistrip::FEC_CRATE ) { return true; } if ( fecSlot_ != sistrip::invalid_ ) { if ( gran == sistrip::FEC_RING ) { return true; } if ( fecRing_ != sistrip::invalid_ ) { if ( gran == sistrip::FEC_RING ) { return true; } if ( ccuAddr_ != sistrip::invalid_ ) { if ( gran == sistrip::CCU_ADDR ) { return true; } if ( ccuChan_ != sistrip::invalid_ ) { if ( gran == sistrip::CCU_CHAN ) { return true; } if ( lldChan_ != sistrip::invalid_ ) { if ( gran == sistrip::LLD_CHAN ) { return true; } if ( i2cAddr_ != sistrip::invalid_ ) { if ( gran == sistrip::APV ) { return true; } } } } } } } } return false; }
uint16_t SiStripFecKey::lldChan | ( | const uint16_t & | i2c_addr | ) | [static] |
Returns LLD channel (1-3) for a given APV I2C addr (32-37).
Definition at line 231 of file SiStripFecKey.cc.
References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.
{ if ( i2c_addr == 0 ) { return 0; } else if ( i2c_addr < sistrip::APV_I2C_MIN || i2c_addr > sistrip::APV_I2C_MAX ) { return sistrip::invalid_; } return ( ( i2c_addr - sistrip::APV_I2C_MIN ) / 2 + 1 ); }
const uint16_t & SiStripFecKey::lldChan | ( | ) | const [inline] |
Returns LLD channel.
Definition at line 210 of file SiStripFecKey.h.
References lldChan_.
Referenced by SiStripConfigDb::deviceAddress(), CalibrationSummaryFactory::extract(), CommissioningHistograms::extractHistograms(), FastFedCablingAnalysis::header(), CommissioningAnalysis::header(), ApvTimingHistograms::histoAnalysis(), initFromKey(), initFromValue(), isConsistent(), isEqual(), print(), SiStripFecKey(), PedsOnlyAnalysis::summary(), PedsFullNoiseAnalysis::summary(), VpspScanAnalysis::summary(), NoiseAnalysis::summary(), PedestalsAnalysis::summary(), OptoScanAnalysis::summary(), CommissioningAnalysis::summary(), FastFedCablingAnalysis::summary(), and terse().
{ return lldChan_; }
void SiStripFecKey::print | ( | std::stringstream & | ss | ) | const [virtual] |
A terse summary of the key
Reimplemented from SiStripKey.
Definition at line 784 of file SiStripFecKey.cc.
References ccuAddr(), ccuChan(), SiStripKey::channel(), fecCrate(), fecRing(), fecSlot(), SiStripKey::granularity(), i2cAddr(), isValid(), SiStripKey::key(), lldChan(), and SiStripKey::path().
Referenced by operator<<().
{ ss << " [SiStripFecKey::print]" << std::endl << std::hex << " FEC key : 0x" << std::setfill('0') << std::setw(8) << key() << std::endl << std::setfill(' ') << std::dec << " FEC VME crate : " << fecCrate() << std::endl << " FEC VME slot : " << fecSlot() << std::endl << " FEC control ring : " << fecRing() << std::endl << " CCU I2C address : " << ccuAddr() << std::endl << " CCU chan (FE module) : " << ccuChan() << std::endl << " LaserDriver channel : " << lldChan() << std::endl << " APV I2C address : " << i2cAddr() << std::endl << " Directory : " << path() << std::endl << " Granularity : " << SiStripEnumsAndStrings::granularity( granularity() ) << std::endl << " Channel : " << channel() << std::endl << " isValid : " << isValid(); }
void SiStripFecKey::terse | ( | std::stringstream & | ss | ) | const [virtual] |
A terse summary of the key
Reimplemented from SiStripKey.
Definition at line 758 of file SiStripFecKey.cc.
References ccuAddr(), ccuChan(), fecCrate(), fecRing(), fecSlot(), i2cAddr(), and lldChan().
Referenced by FastFedCablingHistosUsingDb::connections().
{ ss << "FEC:crate/slot/ring/CCU/module/LLD/I2C= " << fecCrate() << "/" << fecSlot() << "/" << fecRing() << "/" << ccuAddr() << "/" << ccuChan() << "/" << lldChan() << "/" << i2cAddr(); // ss << " FecKey" // //<< "=0x" // //<< std::hex // //<< std::setfill('0') << std::setw(8) << key() << std::setfill(' ') // //<< std::dec // //<< ", " << ( isValid() ? "Valid" : "Invalid" ) // << ", Crate=" << fecCrate() // << ", Slot=" << fecSlot() // << ", Ring=" << fecRing() // << ", CCU=" << ccuAddr() // << ", module=" << ccuChan() // << ", LLD=" << lldChan() // << ", I2C=" << i2cAddr(); }
uint16_t SiStripFecKey::ccuAddr_ [private] |
CCU module [0,1-126,invalid].
Definition at line 172 of file SiStripFecKey.h.
Referenced by ccuAddr(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().
const uint16_t SiStripFecKey::ccuAddrMask_ = 0xFF [static, private] |
Definition at line 196 of file SiStripFecKey.h.
Referenced by initFromKey().
const uint16_t SiStripFecKey::ccuAddrOffset_ = 10 [static, private] |
Definition at line 187 of file SiStripFecKey.h.
Referenced by initFromKey().
uint16_t SiStripFecKey::ccuChan_ [private] |
FE module [0,16-31,invalid].
Definition at line 175 of file SiStripFecKey.h.
Referenced by ccuChan(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().
const uint16_t SiStripFecKey::ccuChanMask_ = 0x1F [static, private] |
Definition at line 197 of file SiStripFecKey.h.
Referenced by initFromKey().
const uint16_t SiStripFecKey::ccuChanOffset_ = 5 [static, private] |
Definition at line 188 of file SiStripFecKey.h.
Referenced by initFromKey().
uint16_t SiStripFecKey::fecCrate_ [private] |
FEC crate [0,1-4,invalid].
Definition at line 163 of file SiStripFecKey.h.
Referenced by fecCrate(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().
const uint16_t SiStripFecKey::fecCrateMask_ = 0x07 [static, private] |
Definition at line 193 of file SiStripFecKey.h.
Referenced by initFromKey().
const uint16_t SiStripFecKey::fecCrateOffset_ = 27 [static, private] |
Definition at line 184 of file SiStripFecKey.h.
Referenced by initFromKey().
uint16_t SiStripFecKey::fecRing_ [private] |
FEC ring [0,1-8,invalid].
Definition at line 169 of file SiStripFecKey.h.
Referenced by fecRing(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().
const uint16_t SiStripFecKey::fecRingMask_ = 0x0F [static, private] |
Definition at line 195 of file SiStripFecKey.h.
Referenced by initFromKey().
const uint16_t SiStripFecKey::fecRingOffset_ = 18 [static, private] |
Definition at line 186 of file SiStripFecKey.h.
Referenced by initFromKey().
uint16_t SiStripFecKey::fecSlot_ [private] |
FEC slot [0,2-21,invalid].
Definition at line 166 of file SiStripFecKey.h.
Referenced by fecSlot(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().
const uint16_t SiStripFecKey::fecSlotMask_ = 0x1F [static, private] |
Definition at line 194 of file SiStripFecKey.h.
Referenced by initFromKey().
const uint16_t SiStripFecKey::fecSlotOffset_ = 22 [static, private] |
Definition at line 185 of file SiStripFecKey.h.
Referenced by initFromKey().
uint16_t SiStripFecKey::i2cAddr_ [private] |
APV I2C address [0,32-37,invalid].
Definition at line 181 of file SiStripFecKey.h.
Referenced by i2cAddr(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().
const uint16_t SiStripFecKey::i2cAddrMask_ = 0x03 [static, private] |
Definition at line 199 of file SiStripFecKey.h.
Referenced by initFromKey(), and initFromValue().
const uint16_t SiStripFecKey::i2cAddrOffset_ = 0 [static, private] |
Definition at line 190 of file SiStripFecKey.h.
Referenced by initFromKey(), and initFromValue().
uint16_t SiStripFecKey::lldChan_ [private] |
LLD channel [0,1-3,invalid].
Definition at line 178 of file SiStripFecKey.h.
Referenced by initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), lldChan(), and SiStripFecKey().
const uint16_t SiStripFecKey::lldChanMask_ = 0x07 [static, private] |
Definition at line 198 of file SiStripFecKey.h.
Referenced by initFromKey().
const uint16_t SiStripFecKey::lldChanOffset_ = 2 [static, private] |
Definition at line 189 of file SiStripFecKey.h.
Referenced by initFromKey().