CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
SiStripFecKey Class Reference

Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25. More...

#include <SiStripFecKey.h>

Inheritance diagram for SiStripFecKey:
SiStripKey

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 override
 
bool isEqual (const SiStripKey &) const override
 
bool isInvalid () const override
 
bool isInvalid (const sistrip::Granularity &) const override
 
bool isValid () const override
 
bool isValid (const sistrip::Granularity &) const override
 
const uint16_t & lldChan () const
 
void print (std::stringstream &ss) const override
 
 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 std::string &directory_path)
 
 SiStripFecKey (const SiStripFecKey &)
 
 SiStripFecKey (const SiStripKey &)
 
 SiStripFecKey (const SiStripKey &, const sistrip::Granularity &)
 
 SiStripFecKey ()
 
void terse (std::stringstream &ss) const override
 
- Public Member Functions inherited from SiStripKey
const uint16_t & channel () const
 
const sistrip::Granularitygranularity () const
 
const uint32_t & key () const
 
const SiStripKeyoperator= (const SiStripKey &)
 
const std::string & path () const
 
 SiStripKey (const uint32_t &key)
 
 SiStripKey (const std::string &directory_path)
 
 SiStripKey (const SiStripKey &)
 
 SiStripKey ()
 
virtual ~SiStripKey ()
 

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 () override
 
void initFromPath () override
 
void initFromValue () override
 
void initGranularity () override
 

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
 

Additional Inherited Members

- Protected Member Functions inherited from SiStripKey
void channel (const uint16_t &)
 
void granularity (const sistrip::Granularity &)
 
void key (const uint32_t &)
 
void path (const std::string &)
 

Detailed Description

Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.

Author
R.Bainbridge

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 45 of file SiStripFecKey.h.

Constructor & Destructor Documentation

◆ SiStripFecKey() [1/7]

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 13 of file SiStripFecKey.cc.

References initFromKey(), initFromPath(), initFromValue(), and initGranularity().

20  : SiStripKey(),
21  fecCrate_(fec_crate),
22  fecSlot_(fec_slot),
23  fecRing_(fec_ring),
24  ccuAddr_(ccu_addr),
25  ccuChan_(ccu_chan),
26  lldChan_(lld_chan),
27  i2cAddr_(i2c_addr) {
28  // order is important!
29  initFromValue();
30  initFromKey();
31  initFromPath();
33 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
void initGranularity() override
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
void initFromPath() override
uint16_t i2cAddr_
void initFromValue() override
void initFromKey() override

◆ SiStripFecKey() [2/7]

SiStripFecKey::SiStripFecKey ( const uint32_t &  fec_key)

Constructor using 32-bit "FEC key".

Definition at line 37 of file SiStripFecKey.cc.

References initFromKey(), initFromPath(), initFromValue(), and initGranularity().

38  : SiStripKey(fec_key),
46  // order is important!
47  initFromKey();
48  initFromValue();
49  initFromPath();
51 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
void initGranularity() override
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
void initFromPath() override
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16
void initFromValue() override
void initFromKey() override

◆ SiStripFecKey() [3/7]

SiStripFecKey::SiStripFecKey ( const std::string &  directory_path)

Constructor using directory path.

Definition at line 55 of file SiStripFecKey.cc.

References initFromKey(), initFromPath(), initFromValue(), and initGranularity().

56  : SiStripKey(path),
64  // order is important!
65  initFromPath();
66  initFromValue();
67  initFromKey();
69 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
void initGranularity() override
uint16_t lldChan_
uint16_t fecCrate_
const std::string & path() const
Definition: SiStripKey.h:121
uint16_t fecRing_
void initFromPath() override
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16
void initFromValue() override
void initFromKey() override

◆ SiStripFecKey() [4/7]

SiStripFecKey::SiStripFecKey ( const SiStripFecKey input)

Copy constructor.

Definition at line 73 of file SiStripFecKey.cc.

References SiStripKey::granularity(), input, SiStripKey::key(), and SiStripKey::path().

74  : SiStripKey(),
75  fecCrate_(input.fecCrate()),
76  fecSlot_(input.fecSlot()),
77  fecRing_(input.fecRing()),
78  ccuAddr_(input.ccuAddr()),
79  ccuChan_(input.ccuChan()),
80  lldChan_(input.lldChan()),
81  i2cAddr_(input.i2cAddr()) {
82  key(input.key());
83  path(input.path());
84  granularity(input.granularity());
85 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
uint16_t fecCrate_
const std::string & path() const
Definition: SiStripKey.h:121
uint16_t fecRing_
static std::string const input
Definition: EdmProvDump.cc:50
const uint32_t & key() const
Definition: SiStripKey.h:120
uint16_t i2cAddr_
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122

◆ SiStripFecKey() [5/7]

SiStripFecKey::SiStripFecKey ( const SiStripKey input)

Copy constructor using base class.

Definition at line 89 of file SiStripFecKey.cc.

References ccuAddr(), ccuAddr_, ccuChan(), ccuChan_, fecCrate(), fecCrate_, fecRing(), fecRing_, fecSlot(), fecSlot_, SiStripKey::granularity(), i2cAddr(), i2cAddr_, input, SiStripKey::key(), lldChan(), lldChan_, and SiStripKey::path().

90  : SiStripKey(),
98  const SiStripFecKey& fec_key = dynamic_cast<const SiStripFecKey&>(input);
99  key(fec_key.key());
100  path(fec_key.path());
101  granularity(fec_key.granularity());
102  fecCrate_ = fec_key.fecCrate();
103  fecSlot_ = fec_key.fecSlot();
104  fecRing_ = fec_key.fecRing();
105  ccuAddr_ = fec_key.ccuAddr();
106  ccuChan_ = fec_key.ccuChan();
107  lldChan_ = fec_key.lldChan();
108  i2cAddr_ = fec_key.i2cAddr();
109 }
uint16_t ccuAddr_
const uint16_t & ccuAddr() const
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
const uint16_t & ccuChan() const
uint16_t fecCrate_
const std::string & path() const
Definition: SiStripKey.h:121
uint16_t fecRing_
const uint16_t & lldChan() const
static std::string const input
Definition: EdmProvDump.cc:50
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
Definition: SiStripFecKey.h:45
const uint16_t & i2cAddr() const
const uint32_t & key() const
Definition: SiStripKey.h:120
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16
const uint16_t & fecSlot() const
const uint16_t & fecRing() const
const uint16_t & fecCrate() const
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122

◆ SiStripFecKey() [6/7]

SiStripFecKey::SiStripFecKey ( const SiStripKey input,
const sistrip::Granularity gran 
)

Copy to level specified by granularity.

Definition at line 113 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(), input, sistrip::LLD_CHAN, lldChan(), and lldChan_.

114  : SiStripKey(), fecCrate_(0), fecSlot_(0), fecRing_(0), ccuAddr_(0), ccuChan_(0), lldChan_(0), i2cAddr_(0) {
115  const SiStripFecKey& fec_key = dynamic_cast<const SiStripFecKey&>(input);
116  if (gran == sistrip::FEC_CRATE || gran == sistrip::FEC_SLOT || gran == sistrip::FEC_RING ||
117  gran == sistrip::CCU_ADDR || gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV) {
118  fecCrate_ = fec_key.fecCrate();
119  }
120 
121  if (gran == sistrip::FEC_SLOT || gran == sistrip::FEC_RING || gran == sistrip::CCU_ADDR ||
122  gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV) {
123  fecSlot_ = fec_key.fecSlot();
124  }
125 
126  if (gran == sistrip::FEC_RING || gran == sistrip::CCU_ADDR || gran == sistrip::CCU_CHAN ||
127  gran == sistrip::LLD_CHAN || gran == sistrip::APV) {
128  fecRing_ = fec_key.fecRing();
129  }
130 
131  if (gran == sistrip::CCU_ADDR || gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV) {
132  ccuAddr_ = fec_key.ccuAddr();
133  }
134 
135  if (gran == sistrip::CCU_CHAN || gran == sistrip::LLD_CHAN || gran == sistrip::APV) {
136  ccuChan_ = fec_key.ccuChan();
137  }
138 
139  if (gran == sistrip::LLD_CHAN || gran == sistrip::APV) {
140  lldChan_ = fec_key.lldChan();
141  }
142 
143  if (gran == sistrip::APV) {
144  i2cAddr_ = fec_key.i2cAddr();
145  }
146 
147  initFromValue();
148  initFromKey();
149  initFromPath();
150  initGranularity();
151 }
uint16_t ccuAddr_
const uint16_t & ccuAddr() const
uint16_t fecSlot_
uint16_t ccuChan_
void initGranularity() override
uint16_t lldChan_
const uint16_t & ccuChan() const
uint16_t fecCrate_
uint16_t fecRing_
const uint16_t & lldChan() const
static std::string const input
Definition: EdmProvDump.cc:50
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
Definition: SiStripFecKey.h:45
void initFromPath() override
const uint16_t & i2cAddr() const
uint16_t i2cAddr_
const uint16_t & fecSlot() const
void initFromValue() override
void initFromKey() override
const uint16_t & fecRing() const
const uint16_t & fecCrate() const

◆ SiStripFecKey() [7/7]

SiStripFecKey::SiStripFecKey ( )

Default constructor

Definition at line 155 of file SiStripFecKey.cc.

156  : SiStripKey(),
164  ;
165 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16

Member Function Documentation

◆ ccuAddr()

const uint16_t & SiStripFecKey::ccuAddr ( ) const
inline

◆ ccuChan()

const uint16_t & SiStripFecKey::ccuChan ( ) const
inline

◆ fecCrate()

const uint16_t & SiStripFecKey::fecCrate ( ) const
inline

◆ fecRing()

const uint16_t & SiStripFecKey::fecRing ( ) const
inline

◆ fecSlot()

const uint16_t & SiStripFecKey::fecSlot ( ) const
inline

◆ firstApvOfPair()

bool SiStripFecKey::firstApvOfPair ( const uint16_t &  i2c_addr)
static

Identifies if first APV of pair for given I2C addr (32-37).

Definition at line 207 of file SiStripFecKey.cc.

References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.

Referenced by initFromKey().

207  {
208  if (i2c_addr < sistrip::APV_I2C_MIN || i2c_addr > sistrip::APV_I2C_MAX) {
209  return sistrip::invalid_;
210  }
211  return (((i2c_addr - sistrip::APV_I2C_MIN) % 2) == 0);
212 }
static const uint16_t APV_I2C_MIN
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t APV_I2C_MAX

◆ hybridPos()

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 169 of file SiStripFecKey.cc.

References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.

169  {
170  if (i2c_addr < sistrip::APV_I2C_MIN || i2c_addr > sistrip::APV_I2C_MAX) {
171  return sistrip::invalid_;
172  }
173  return (i2c_addr - sistrip::APV_I2C_MIN + 1);
174 }
static const uint16_t APV_I2C_MIN
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t APV_I2C_MAX

◆ i2cAddr() [1/3]

const uint16_t & SiStripFecKey::i2cAddr ( ) const
inline

◆ i2cAddr() [2/3]

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 178 of file SiStripFecKey.cc.

References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.

178  {
179  if (!hybrid_pos || hybrid_pos > (sistrip::APV_I2C_MAX - sistrip::APV_I2C_MIN + 1)) {
180  return sistrip::invalid_;
181  }
182  return (hybrid_pos + sistrip::APV_I2C_MIN - 1);
183 }
static const uint16_t APV_I2C_MIN
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t APV_I2C_MAX

◆ i2cAddr() [3/3]

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 187 of file SiStripFecKey.cc.

References sistrip::APV_I2C_MIN, sistrip::APVS_PER_CHAN, sistrip::invalid_, and sistrip::LLD_CHAN_MAX.

187  {
188  if (lld_chan < sistrip::LLD_CHAN_MIN || lld_chan > sistrip::LLD_CHAN_MAX) {
189  return sistrip::invalid_;
190  }
191  return (sistrip::APV_I2C_MIN + lld_chan * sistrip::APVS_PER_CHAN - (first_apv ? 2 : 1));
192 }
static const uint16_t APV_I2C_MIN
static const uint16_t LLD_CHAN_MAX
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t APVS_PER_CHAN

◆ initFromKey()

void SiStripFecKey::initFromKey ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 390 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().

390  {
391  if (key() == sistrip::invalid32_) {
392  // ---------- Set FecKey based on member data ----------
393 
394  // Initialise to null value
395  key(0);
396 
397  // Extract FEC crate
399  key(key() | (fecCrate_ << fecCrateOffset_));
400  } else if (fecCrate_ == 0) {
401  key(key() | (fecCrate_ << fecCrateOffset_));
402  } else {
404  }
405 
406  // Extract FEC slot
408  key(key() | (fecSlot_ << fecSlotOffset_));
409  } else if (fecSlot_ == 0) {
410  key(key() | (fecSlot_ << fecSlotOffset_));
411  } else {
413  }
414 
415  // Extract FEC ring
417  key(key() | (fecRing_ << fecRingOffset_));
418  } else if (fecRing_ == 0) {
419  key(key() | (fecRing_ << fecRingOffset_));
420  } else {
422  }
423 
424  // Extract CCU addr
426  key(key() | (ccuAddr_ << ccuAddrOffset_));
427  } else if (ccuAddr_ == 0) {
428  key(key() | (ccuAddr_ << ccuAddrOffset_));
429  } else {
431  }
432 
433  // Extract CCU chan
436  } else if (ccuChan_ == 0) {
437  key(key() | (ccuChan_ << ccuChanOffset_));
438  } else {
440  }
441 
442  // Extract LLD channel
444  key(key() | (lldChan_ << lldChanOffset_));
445  } else if (lldChan_ == 0) {
446  key(key() | (lldChan_ << lldChanOffset_));
447  } else {
449  }
450 
451  // Extract APV I2C address
453  key(key() | ((firstApvOfPair(i2cAddr_) ? 1 : 2) << i2cAddrOffset_)); // key encodes APV number (1 or 2)
454  if (lldChan_ && lldChan(i2cAddr_) != lldChan_) {
457  }
458  } else if (i2cAddr_ == 0) {
459  key(key() | (i2cAddr_ << i2cAddrOffset_));
460  } else {
462  }
463 
464  } else {
465  // ---------- Set member data based on FEC key ----------
466 
474 
475  if (fecCrate_ == fecCrateMask_) {
477  }
478  if (fecSlot_ == fecSlotMask_) {
480  }
481  if (fecRing_ == fecRingMask_) {
483  }
484  if (ccuAddr_ == ccuAddrMask_) {
486  }
487  if (ccuChan_ == ccuChanMask_) {
489  } else if (ccuChan_) {
491  }
492  if (lldChan_ == lldChanMask_) {
494  }
495  if (i2cAddr_ == i2cAddrMask_) {
497  } else if (i2cAddr_ && lldChan_ != lldChanMask_) {
499  }
500  }
501 }
uint16_t ccuAddr_
static const uint16_t ccuChanOffset_
static const uint16_t APV_I2C_MIN
static const uint16_t ccuChanMask_
static const uint16_t i2cAddrOffset_
static const uint16_t CCU_ADDR_MAX
static const uint16_t CCU_CHAN_MAX
uint16_t fecSlot_
static const uint16_t CCU_CHAN_MIN
static const uint32_t invalid32_
Definition: Constants.h:15
uint16_t ccuChan_
static const uint16_t LLD_CHAN_MIN
static const uint16_t LLD_CHAN_MAX
static const uint16_t fecSlotMask_
uint16_t lldChan_
static const uint16_t fecRingOffset_
uint16_t fecCrate_
static const uint16_t FEC_CRATE_MIN
uint16_t fecRing_
static const uint16_t CRATE_SLOT_MAX
const uint16_t & lldChan() const
static const uint16_t fecCrateMask_
static const uint16_t FEC_RING_MAX
static const uint16_t FEC_CRATE_MAX
static bool firstApvOfPair(const uint16_t &i2c_addr)
static const uint16_t lldChanOffset_
static const uint16_t CCU_ADDR_MIN
const uint16_t & i2cAddr() const
const uint32_t & key() const
Definition: SiStripKey.h:120
static const uint16_t FEC_RING_MIN
static const uint16_t lldChanMask_
static const uint16_t CRATE_SLOT_MIN
static const uint16_t fecSlotOffset_
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t ccuAddrMask_
static const uint16_t APV_I2C_MAX
static const uint16_t i2cAddrMask_
static const uint16_t fecRingMask_
static const uint16_t fecCrateOffset_
static const uint16_t ccuAddrOffset_

◆ initFromPath()

void SiStripFecKey::initFromPath ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 505 of file SiStripFecKey.cc.

References sistrip::apv_, sistrip::ccuAddr_, ccuAddr_, sistrip::ccuChan_, ccuChan_, sistrip::controlView_, DeadROC_duringRun::dir, sistrip::dir_, sistrip::fecCrate_, fecCrate_, sistrip::fecRing_, fecRing_, sistrip::fecSlot_, fecSlot_, spr::find(), i2cAddr_, sistrip::lldChan_, lldChan_, GetRecoTauVFromDQM_MC_cff::next, sistrip::null_, SiStripKey::path(), sistrip::root_, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.

Referenced by SiStripFecKey().

505  {
506  if (path() == sistrip::null_) {
507  // ---------- Set directory path based on member data ----------
508 
509  std::stringstream dir;
510 
512 
513  // Add FEC crate
514  if (fecCrate_) {
516 
517  // Add FEC slot
518  if (fecSlot_) {
520 
521  // Add FEC ring
522  if (fecRing_) {
524 
525  // Add CCU address
526  if (ccuAddr_) {
528 
529  // Add CCU channel
530  if (ccuChan_) {
532 
533  // Add LLD channel
534  if (lldChan_) {
536 
537  // Add APV I2C address
538  if (i2cAddr_) {
540  }
541  }
542  }
543  }
544  }
545  }
546  }
547 
548  std::string temp(dir.str());
549  path(temp);
550 
551  } else {
552  // ---------- Set member data based on directory path ----------
553 
554  fecCrate_ = 0;
555  fecSlot_ = 0;
556  fecRing_ = 0;
557  ccuAddr_ = 0;
558  ccuChan_ = 0;
559  lldChan_ = 0;
560  i2cAddr_ = 0;
561 
562  // Check if root is found
563  if (path().find(sistrip::root_) == std::string::npos) {
564  std::string temp = path();
566  }
567 
568  size_t curr = 0; // current string position
569  size_t next = 0; // next string position
570  next = path().find(sistrip::controlView_, curr);
571 
572  // Extract view
573  curr = next;
574  if (curr != std::string::npos) {
575  next = path().find(sistrip::fecCrate_, curr);
576  std::string control_view(
577  path(), curr + (sizeof(sistrip::controlView_) - 1), next - (sizeof(sistrip::dir_) - 1) - curr);
578 
579  // Extract FEC crate
580  curr = next;
581  if (curr != std::string::npos) {
582  next = path().find(sistrip::fecSlot_, curr);
583  std::string fec_crate(
584  path(), curr + (sizeof(sistrip::fecCrate_) - 1), next - (sizeof(sistrip::dir_) - 1) - curr);
585  fecCrate_ = std::atoi(fec_crate.c_str());
586 
587  // Extract FEC slot
588  curr = next;
589  if (curr != std::string::npos) {
590  next = path().find(sistrip::fecRing_, curr);
591  std::string fec_slot(
592  path(), curr + (sizeof(sistrip::fecSlot_) - 1), next - (sizeof(sistrip::dir_) - 1) - curr);
593  fecSlot_ = std::atoi(fec_slot.c_str());
594 
595  // Extract FEC ring
596  curr = next;
597  if (curr != std::string::npos) {
598  next = path().find(sistrip::ccuAddr_, curr);
599  std::string fec_ring(
600  path(), curr + (sizeof(sistrip::fecRing_) - 1), next - (sizeof(sistrip::dir_) - 1) - curr);
601  fecRing_ = std::atoi(fec_ring.c_str());
602 
603  // Extract CCU address
604  curr = next;
605  if (curr != std::string::npos) {
606  next = path().find(sistrip::ccuChan_, curr);
607  std::string ccu_addr(
608  path(), curr + (sizeof(sistrip::ccuAddr_) - 1), next - (sizeof(sistrip::dir_) - 1) - curr);
609  ccuAddr_ = std::atoi(ccu_addr.c_str());
610 
611  // Extract CCU channel
612  curr = next;
613  if (curr != std::string::npos) {
614  next = path().find(sistrip::lldChan_, curr);
615  std::string ccu_chan(
616  path(), curr + (sizeof(sistrip::ccuChan_) - 1), next - (sizeof(sistrip::dir_) - 1) - curr);
617  ccuChan_ = std::atoi(ccu_chan.c_str());
618 
619  // Extract LLD channel
620  curr = next;
621  if (curr != std::string::npos) {
622  next = path().find(sistrip::apv_, curr);
623  std::string lld_chan(
624  path(), curr + (sizeof(sistrip::lldChan_) - 1), next - (sizeof(sistrip::dir_) - 1) - curr);
625  lldChan_ = std::atoi(lld_chan.c_str());
626 
627  // Extract I2C address
628  curr = next;
629  if (curr != std::string::npos) {
630  next = std::string::npos;
631  std::string i2c_addr(path(), curr + (sizeof(sistrip::apv_) - 1), next - curr);
632  i2cAddr_ = std::atoi(i2c_addr.c_str());
633  }
634  }
635  }
636  }
637  }
638  }
639  }
640  } else {
641  std::stringstream ss;
643  //ss << sistrip::root_ << sistrip::dir_
644  //<< sistrip::unknownView_ << sistrip::dir_;
645  std::string temp(ss.str());
646  path(temp);
647  }
648  }
649 }
uint16_t ccuAddr_
static const char dir_[]
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
uint16_t fecCrate_
const std::string & path() const
Definition: SiStripKey.h:121
uint16_t fecRing_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
static const char fecSlot_[]
static const char ccuChan_[]
static const char ccuAddr_[]
static const char lldChan_[]
static const char controlView_[]
static const char fecCrate_[]
static const char apv_[]
uint16_t i2cAddr_
static const char fecRing_[]
static const char root_[]
static const char null_[]
Definition: Constants.h:22

◆ initFromValue()

void SiStripFecKey::initFromValue ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 346 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().

346  {
347  // FEC crate
350  }
351 
352  // FEC slot
355  }
356 
357  // FEC ring
358  if (not((fecRing_ >= sistrip::FEC_RING_MIN && fecRing_ <= sistrip::FEC_RING_MAX) || (fecRing_ == 0))) {
360  }
361 
362  // CCU addr
363  if (not((ccuAddr_ >= sistrip::CCU_ADDR_MIN && ccuAddr_ <= sistrip::CCU_ADDR_MAX) || (ccuAddr_ == 0))) {
365  }
366 
367  // CCU chan
368  if (not((ccuChan_ >= sistrip::CCU_CHAN_MIN && ccuChan_ <= sistrip::CCU_CHAN_MAX) || (ccuChan_ == 0))) {
370  }
371 
372  // LLD channel
373  if (not((lldChan_ >= sistrip::LLD_CHAN_MIN && lldChan_ <= sistrip::LLD_CHAN_MAX) || (lldChan_ == 0))) {
375  }
376 
377  // APV I2C address
379  if (lldChan_ && lldChan(i2cAddr_) != lldChan_) {
382  }
383  } else if (i2cAddr_ != 0) {
385  }
386 }
uint16_t ccuAddr_
static const uint16_t APV_I2C_MIN
static const uint16_t i2cAddrOffset_
static const uint16_t CCU_ADDR_MAX
static const uint16_t CCU_CHAN_MAX
uint16_t fecSlot_
static const uint16_t CCU_CHAN_MIN
uint16_t ccuChan_
static const uint16_t LLD_CHAN_MIN
static const uint16_t LLD_CHAN_MAX
uint16_t lldChan_
uint16_t fecCrate_
static const uint16_t FEC_CRATE_MIN
uint16_t fecRing_
static const uint16_t CRATE_SLOT_MAX
const uint16_t & lldChan() const
static const uint16_t FEC_RING_MAX
static const uint16_t FEC_CRATE_MAX
static const uint16_t CCU_ADDR_MIN
const uint32_t & key() const
Definition: SiStripKey.h:120
static const uint16_t FEC_RING_MIN
static const uint16_t CRATE_SLOT_MIN
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t APV_I2C_MAX
static const uint16_t i2cAddrMask_

◆ initGranularity()

void SiStripFecKey::initGranularity ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 653 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().

653  {
655  channel(0);
659  if (fecSlot_ && fecSlot_ != sistrip::invalid_) {
661  channel(fecSlot_);
662  if (fecRing_ && fecRing_ != sistrip::invalid_) {
664  channel(fecRing_);
665  if (ccuAddr_ && ccuAddr_ != sistrip::invalid_) {
667  channel(ccuAddr_);
668  if (ccuChan_ && ccuChan_ != sistrip::invalid_) {
670  channel(ccuChan_);
671  if (lldChan_ && lldChan_ != sistrip::invalid_) {
673  channel(lldChan_);
674  if (i2cAddr_ && i2cAddr_ != sistrip::invalid_) {
676  channel(i2cAddr_);
677  } else if (i2cAddr_ == sistrip::invalid_) {
680  }
681  } else if (lldChan_ == sistrip::invalid_) {
684  }
685  } else if (ccuChan_ == sistrip::invalid_) {
688  }
689  } else if (ccuAddr_ == sistrip::invalid_) {
692  }
693  } else if (fecRing_ == sistrip::invalid_) {
696  }
697  } else if (fecSlot_ == sistrip::invalid_) {
700  }
701  } else if (fecCrate_ == sistrip::invalid_) {
704  }
705 }
const uint16_t & channel() const
Definition: SiStripKey.h:123
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122

◆ isConsistent()

bool SiStripFecKey::isConsistent ( const SiStripKey key) const
overridevirtual

"Consistent" means identical and/or null (ie, "all") data.

Reimplemented from SiStripKey.

Definition at line 229 of file SiStripFecKey.cc.

References ccuAddr_, fecCrate_, fecRing_, fecSlot_, i2cAddr_, input, isEqual(), SiStripKey::key(), and lldChan_.

229  {
230  const SiStripFecKey& input = dynamic_cast<const SiStripFecKey&>(key);
231  if (isEqual(input)) {
232  return true;
233  } else if ((fecCrate_ == 0 || input.fecCrate() == 0) && (fecSlot_ == 0 || input.fecSlot() == 0) &&
234  (fecRing_ == 0 || input.fecRing() == 0) && (ccuAddr_ == 0 || input.ccuAddr() == 0) &&
235  (lldChan_ == 0 || input.lldChan() == 0) && (i2cAddr_ == 0 || input.i2cAddr() == 0)) {
236  return true;
237  } else {
238  return false;
239  }
240 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
bool isEqual(const SiStripKey &) const override
static std::string const input
Definition: EdmProvDump.cc:50
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
Definition: SiStripFecKey.h:45
const uint32_t & key() const
Definition: SiStripKey.h:120
uint16_t i2cAddr_

◆ isEqual()

bool SiStripFecKey::isEqual ( const SiStripKey key) const
overridevirtual

Identifies key objects with identical member data.

Reimplemented from SiStripKey.

Definition at line 216 of file SiStripFecKey.cc.

References ccuAddr_, ccuChan_, fecCrate_, fecRing_, fecSlot_, i2cAddr_, input, SiStripKey::key(), and lldChan_.

Referenced by isConsistent().

216  {
217  const SiStripFecKey& input = dynamic_cast<const SiStripFecKey&>(key);
218  if (fecCrate_ == input.fecCrate() && fecSlot_ == input.fecSlot() && fecRing_ == input.fecRing() &&
219  ccuAddr_ == input.ccuAddr() && ccuChan_ == input.ccuChan() && lldChan_ == input.lldChan() &&
220  i2cAddr_ == input.i2cAddr()) {
221  return true;
222  } else {
223  return false;
224  }
225 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
static std::string const input
Definition: EdmProvDump.cc:50
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
Definition: SiStripFecKey.h:45
const uint32_t & key() const
Definition: SiStripKey.h:120
uint16_t i2cAddr_

◆ isInvalid() [1/2]

bool SiStripFecKey::isInvalid ( ) const
overridevirtual

Identifies all member data as being "invalid".

Reimplemented from SiStripKey.

Definition at line 295 of file SiStripFecKey.cc.

References sistrip::APV.

295 { return isInvalid(sistrip::APV); }
bool isInvalid() const override

◆ isInvalid() [2/2]

bool SiStripFecKey::isInvalid ( const sistrip::Granularity gran) const
overridevirtual

All member data to level of "Granularity" are invalid. If sistrip::Granularity is "undefined", returns true.

Reimplemented from SiStripKey.

Definition at line 299 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.

299  {
300  if (gran == sistrip::FEC_SYSTEM) {
301  return false;
302  } else if (gran == sistrip::UNDEFINED_GRAN || gran == sistrip::UNKNOWN_GRAN) {
303  return false;
304  }
305 
306  if (fecCrate_ == sistrip::invalid_) {
307  if (gran == sistrip::FEC_CRATE) {
308  return true;
309  }
310  if (fecSlot_ == sistrip::invalid_) {
311  if (gran == sistrip::FEC_RING) {
312  return true;
313  }
314  if (fecRing_ == sistrip::invalid_) {
315  if (gran == sistrip::FEC_RING) {
316  return true;
317  }
318  if (ccuAddr_ == sistrip::invalid_) {
319  if (gran == sistrip::CCU_ADDR) {
320  return true;
321  }
322  if (ccuChan_ == sistrip::invalid_) {
323  if (gran == sistrip::CCU_CHAN) {
324  return true;
325  }
326  if (lldChan_ == sistrip::invalid_) {
327  if (gran == sistrip::LLD_CHAN) {
328  return true;
329  }
330  if (i2cAddr_ == sistrip::invalid_) {
331  if (gran == sistrip::APV) {
332  return true;
333  }
334  }
335  }
336  }
337  }
338  }
339  }
340  }
341  return false;
342 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16

◆ isValid() [1/2]

bool SiStripFecKey::isValid ( void  ) const
overridevirtual

◆ isValid() [2/2]

bool SiStripFecKey::isValid ( const sistrip::Granularity gran) const
overridevirtual

All member data to level of "Granularity" are "valid". If sistrip::Granularity is "undefined", returns false.

Reimplemented from SiStripKey.

Definition at line 248 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.

Referenced by ntupleDataFormat._Object::_checkIsValid(), and core.AutoHandle.AutoHandle::ReallyLoad().

248  {
249  if (gran == sistrip::FEC_SYSTEM) {
250  return true;
251  } else if (gran == sistrip::UNDEFINED_GRAN || gran == sistrip::UNKNOWN_GRAN) {
252  return false;
253  }
254 
255  if (fecCrate_ != sistrip::invalid_) {
256  if (gran == sistrip::FEC_CRATE) {
257  return true;
258  }
259  if (fecSlot_ != sistrip::invalid_) {
260  if (gran == sistrip::FEC_RING) {
261  return true;
262  }
263  if (fecRing_ != sistrip::invalid_) {
264  if (gran == sistrip::FEC_RING) {
265  return true;
266  }
267  if (ccuAddr_ != sistrip::invalid_) {
268  if (gran == sistrip::CCU_ADDR) {
269  return true;
270  }
271  if (ccuChan_ != sistrip::invalid_) {
272  if (gran == sistrip::CCU_CHAN) {
273  return true;
274  }
275  if (lldChan_ != sistrip::invalid_) {
276  if (gran == sistrip::LLD_CHAN) {
277  return true;
278  }
279  if (i2cAddr_ != sistrip::invalid_) {
280  if (gran == sistrip::APV) {
281  return true;
282  }
283  }
284  }
285  }
286  }
287  }
288  }
289  }
290  return false;
291 }
uint16_t ccuAddr_
uint16_t fecSlot_
uint16_t ccuChan_
uint16_t lldChan_
uint16_t fecCrate_
uint16_t fecRing_
uint16_t i2cAddr_
static const uint16_t invalid_
Definition: Constants.h:16

◆ lldChan() [1/2]

const uint16_t & SiStripFecKey::lldChan ( ) const
inline

◆ lldChan() [2/2]

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 196 of file SiStripFecKey.cc.

References sistrip::APV_I2C_MAX, sistrip::APV_I2C_MIN, and sistrip::invalid_.

196  {
197  if (i2c_addr == 0) {
198  return 0;
199  } else if (i2c_addr < sistrip::APV_I2C_MIN || i2c_addr > sistrip::APV_I2C_MAX) {
200  return sistrip::invalid_;
201  }
202  return ((i2c_addr - sistrip::APV_I2C_MIN) / 2 + 1);
203 }
static const uint16_t APV_I2C_MIN
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t APV_I2C_MAX

◆ print()

void SiStripFecKey::print ( std::stringstream &  ss) const
overridevirtual

A terse summary of the key

Reimplemented from SiStripKey.

Definition at line 729 of file SiStripFecKey.cc.

References ccuAddr(), ccuChan(), SiStripKey::channel(), TauDecayModes::dec, fecCrate(), fecRing(), fecSlot(), SiStripEnumsAndStrings::granularity(), SiStripKey::granularity(), i2cAddr(), isValid(), SiStripKey::key(), lldChan(), SiStripKey::path(), and contentValuesCheck::ss.

729  {
730  ss << " [SiStripFecKey::print]" << std::endl
731  << std::hex << " FEC key : 0x" << std::setfill('0') << std::setw(8) << key() << std::endl
732  << std::setfill(' ') << std::dec << " FEC VME crate : " << fecCrate() << std::endl
733  << " FEC VME slot : " << fecSlot() << std::endl
734  << " FEC control ring : " << fecRing() << std::endl
735  << " CCU I2C address : " << ccuAddr() << std::endl
736  << " CCU chan (FE module) : " << ccuChan() << std::endl
737  << " LaserDriver channel : " << lldChan() << std::endl
738  << " APV I2C address : " << i2cAddr() << std::endl
739  << " Directory : " << path() << std::endl
740  << " Granularity : " << SiStripEnumsAndStrings::granularity(granularity()) << std::endl
741  << " Channel : " << channel() << std::endl
742  << " isValid : " << isValid();
743 }
const uint16_t & channel() const
Definition: SiStripKey.h:123
const uint16_t & ccuAddr() const
const uint16_t & ccuChan() const
const std::string & path() const
Definition: SiStripKey.h:121
static std::string granularity(const sistrip::Granularity &)
const uint16_t & lldChan() const
const uint16_t & i2cAddr() const
const uint32_t & key() const
Definition: SiStripKey.h:120
bool isValid() const override
const uint16_t & fecSlot() const
const uint16_t & fecRing() const
const uint16_t & fecCrate() const
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122

◆ terse()

void SiStripFecKey::terse ( std::stringstream &  ss) const
overridevirtual

A terse summary of the key

Reimplemented from SiStripKey.

Definition at line 709 of file SiStripFecKey.cc.

References ccuAddr(), ccuChan(), fecCrate(), fecRing(), fecSlot(), i2cAddr(), lldChan(), and contentValuesCheck::ss.

Referenced by FastFedCablingHistosUsingDb::connections().

709  {
710  ss << "FEC:crate/slot/ring/CCU/module/LLD/I2C= " << fecCrate() << "/" << fecSlot() << "/" << fecRing() << "/"
711  << ccuAddr() << "/" << ccuChan() << "/" << lldChan() << "/" << i2cAddr();
712  // ss << " FecKey"
713  // //<< "=0x"
714  // //<< std::hex
715  // //<< std::setfill('0') << std::setw(8) << key() << std::setfill(' ')
716  // //<< std::dec
717  // //<< ", " << ( isValid() ? "Valid" : "Invalid" )
718  // << ", Crate=" << fecCrate()
719  // << ", Slot=" << fecSlot()
720  // << ", Ring=" << fecRing()
721  // << ", CCU=" << ccuAddr()
722  // << ", module=" << ccuChan()
723  // << ", LLD=" << lldChan()
724  // << ", I2C=" << i2cAddr();
725 }
const uint16_t & ccuAddr() const
const uint16_t & ccuChan() const
const uint16_t & lldChan() const
const uint16_t & i2cAddr() const
const uint16_t & fecSlot() const
const uint16_t & fecRing() const
const uint16_t & fecCrate() const

Member Data Documentation

◆ ccuAddr_

uint16_t SiStripFecKey::ccuAddr_
private

CCU module [0,1-126,invalid].

Definition at line 166 of file SiStripFecKey.h.

Referenced by ccuAddr(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().

◆ ccuAddrMask_

const uint16_t SiStripFecKey::ccuAddrMask_ = 0xFF
staticprivate

Definition at line 190 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ ccuAddrOffset_

const uint16_t SiStripFecKey::ccuAddrOffset_ = 10
staticprivate

Definition at line 181 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ ccuChan_

uint16_t SiStripFecKey::ccuChan_
private

FE module [0,16-31,invalid].

Definition at line 169 of file SiStripFecKey.h.

Referenced by ccuChan(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().

◆ ccuChanMask_

const uint16_t SiStripFecKey::ccuChanMask_ = 0x1F
staticprivate

Definition at line 191 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ ccuChanOffset_

const uint16_t SiStripFecKey::ccuChanOffset_ = 5
staticprivate

Definition at line 182 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ fecCrate_

uint16_t SiStripFecKey::fecCrate_
private

◆ fecCrateMask_

const uint16_t SiStripFecKey::fecCrateMask_ = 0x07
staticprivate

Definition at line 187 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ fecCrateOffset_

const uint16_t SiStripFecKey::fecCrateOffset_ = 27
staticprivate

Definition at line 178 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ fecRing_

uint16_t SiStripFecKey::fecRing_
private

◆ fecRingMask_

const uint16_t SiStripFecKey::fecRingMask_ = 0x0F
staticprivate

Definition at line 189 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ fecRingOffset_

const uint16_t SiStripFecKey::fecRingOffset_ = 18
staticprivate

Definition at line 180 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ fecSlot_

uint16_t SiStripFecKey::fecSlot_
private

FEC slot [0,2-21,invalid].

Definition at line 160 of file SiStripFecKey.h.

Referenced by fecSlot(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().

◆ fecSlotMask_

const uint16_t SiStripFecKey::fecSlotMask_ = 0x1F
staticprivate

Definition at line 188 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ fecSlotOffset_

const uint16_t SiStripFecKey::fecSlotOffset_ = 22
staticprivate

Definition at line 179 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ i2cAddr_

uint16_t SiStripFecKey::i2cAddr_
private

APV I2C address [0,32-37,invalid].

Definition at line 175 of file SiStripFecKey.h.

Referenced by i2cAddr(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFecKey().

◆ i2cAddrMask_

const uint16_t SiStripFecKey::i2cAddrMask_ = 0x03
staticprivate

Definition at line 193 of file SiStripFecKey.h.

Referenced by initFromKey(), and initFromValue().

◆ i2cAddrOffset_

const uint16_t SiStripFecKey::i2cAddrOffset_ = 0
staticprivate

Definition at line 184 of file SiStripFecKey.h.

Referenced by initFromKey(), and initFromValue().

◆ lldChan_

uint16_t SiStripFecKey::lldChan_
private

LLD channel [0,1-3,invalid].

Definition at line 172 of file SiStripFecKey.h.

Referenced by initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), lldChan(), and SiStripFecKey().

◆ lldChanMask_

const uint16_t SiStripFecKey::lldChanMask_ = 0x07
staticprivate

Definition at line 192 of file SiStripFecKey.h.

Referenced by initFromKey().

◆ lldChanOffset_

const uint16_t SiStripFecKey::lldChanOffset_ = 2
staticprivate

Definition at line 183 of file SiStripFecKey.h.

Referenced by initFromKey().