CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
SiStripCondObjBuilderFromDb::SkipDeviceDescription Class Reference

#include <SiStripCondObjBuilderFromDb.h>

Public Member Functions

std::string dump () const
 
bool isConsistent (const FedChannelConnection &fc) const
 
 SkipDeviceDescription ()
 
 SkipDeviceDescription (const edm::ParameterSet &pset)
 

Private Attributes

uint32_t detid_
 
SiStripFecKey fec_
 
SiStripFedKey fed_
 

Detailed Description

Definition at line 56 of file SiStripCondObjBuilderFromDb.h.

Constructor & Destructor Documentation

◆ SkipDeviceDescription() [1/2]

SiStripCondObjBuilderFromDb::SkipDeviceDescription::SkipDeviceDescription ( )

◆ SkipDeviceDescription() [2/2]

SiStripCondObjBuilderFromDb::SkipDeviceDescription::SkipDeviceDescription ( const edm::ParameterSet pset)

Definition at line 918 of file SiStripCondObjBuilderFromDb.cc.

References detid_, Exception, fec_, fed_, sistrip::invalid32_, SiStripFecKey::isValid(), SiStripFedKey::isValid(), and muonDTDigis_cfi::pset.

919  : fec_(pset.getUntrackedParameter<uint32_t>("fecCrate", sistrip::invalid_),
920  pset.getUntrackedParameter<uint32_t>("fecSlot", sistrip::invalid_),
921  pset.getUntrackedParameter<uint32_t>("fecRing", sistrip::invalid_),
922  pset.getUntrackedParameter<uint32_t>("ccuAddr", sistrip::invalid_),
923  pset.getUntrackedParameter<uint32_t>("ccuChan", sistrip::invalid_),
924  pset.getUntrackedParameter<uint32_t>("lldChan", sistrip::invalid_),
925  pset.getUntrackedParameter<uint32_t>("i2cAddr", sistrip::invalid_)),
926  fed_(pset.getUntrackedParameter<uint32_t>("fedId", sistrip::invalid_),
927  pset.getUntrackedParameter<uint32_t>("feUnit", sistrip::invalid_),
928  pset.getUntrackedParameter<uint32_t>("feChan", sistrip::invalid_),
929  pset.getUntrackedParameter<uint32_t>("fedApv", sistrip::invalid_)),
930  detid_(pset.getUntrackedParameter<uint32_t>("detid", sistrip::invalid32_)) {
931  if (!fec_.isValid() && !fed_.isValid() && detid_ == sistrip::invalid32_) {
932  throw cms::Exception("InvalidPSet") << "None of FEC coordinates/FED coordinates/detids are valid in this PSet!\n"
933  << pset.dump(2);
934  }
935 }
static const uint32_t invalid32_
Definition: Constants.h:15
bool isValid() const override
static const uint16_t invalid_
Definition: Constants.h:16
bool isValid() const override

Member Function Documentation

◆ dump()

std::string SiStripCondObjBuilderFromDb::SkipDeviceDescription::dump ( void  ) const

Definition at line 964 of file SiStripCondObjBuilderFromDb.cc.

References contentValuesCheck::ss.

964  {
965  std::stringstream ss;
966  fec_.terse(ss);
967  ss << "\n";
968  fed_.terse(ss);
969  ss << "\n";
970  ss << "detid=" << detid_;
971  return ss.str();
972 }
void terse(std::stringstream &ss) const override
void terse(std::stringstream &ss) const override

◆ isConsistent()

bool SiStripCondObjBuilderFromDb::SkipDeviceDescription::isConsistent ( const FedChannelConnection fc) const

Definition at line 937 of file SiStripCondObjBuilderFromDb.cc.

References FedChannelConnection::ccuAddr(), FedChannelConnection::ccuChan(), AlCaHLTBitMon_QueryRunRegistry::comp, submitPVResolutionJobs::desc, FedChannelConnection::detId(), FedChannelConnection::fecCrate(), SiStripFedKey::feChan(), FedChannelConnection::fecRing(), FedChannelConnection::fecSlot(), FedChannelConnection::fedCh(), FedChannelConnection::fedId(), SiStripFedKey::feUnit(), FedChannelConnection::i2cAddr(), sistrip::invalid32_, and FedChannelConnection::lldChannel().

937  {
938  auto comp = [](uint16_t desc, uint16_t device) { return desc == 0 || desc == device; };
939 
940  // use FEC coordinates first if provided
941  if (fec_.isValid()) {
942  return comp(fec_.fecCrate(), fc.fecCrate()) && comp(fec_.fecSlot(), fc.fecSlot()) &&
943  comp(fec_.fecRing(), fc.fecRing()) && comp(fec_.ccuAddr(), fc.ccuAddr()) &&
944  comp(fec_.ccuChan(), fc.ccuChan()) && comp(fec_.lldChan(), fc.lldChannel()) &&
945  (comp(fec_.i2cAddr(), fc.i2cAddr(0)) ||
946  comp(fec_.i2cAddr(), fc.i2cAddr(1))); // do not distinguish between APV1 and APV2
947  }
948 
949  // then try FED coordinates
950  if (fed_.isValid()) {
951  return comp(fed_.fedId(), fc.fedId()) && comp(fed_.feUnit(), SiStripFedKey::feUnit(fc.fedCh())) &&
953  // no fedApv in FedChannelConnection -- and we do not distinguish between APV1 and APV2
954  }
955 
956  // last try detids (will skip all APVs on the module)
957  if (detid_ != sistrip::invalid32_) {
958  return detid_ == fc.detId();
959  }
960 
961  return false;
962 }
const uint16_t & fecCrate() const
const uint16_t & ccuAddr() const
const uint16_t & feChan() const
const uint16_t & ccuAddr() const
const uint16_t & feUnit() const
static const uint32_t invalid32_
Definition: Constants.h:15
const uint16_t & ccuChan() const
const uint16_t & i2cAddr(const uint16_t &apv0_or_1) const
const uint16_t & fecSlot() const
const uint16_t & lldChan() const
const uint16_t & i2cAddr() const
const uint16_t & ccuChan() const
const uint16_t & fedId() const
const uint16_t & fecRing() const
const uint32_t & detId() const
const uint16_t & fedId() const
bool isValid() const override
const uint16_t & fecSlot() const
const uint16_t & fedCh() const
const uint16_t & fecRing() const
const uint16_t & fecCrate() const
bool isValid() const override

Member Data Documentation

◆ detid_

uint32_t SiStripCondObjBuilderFromDb::SkipDeviceDescription::detid_
private

Definition at line 69 of file SiStripCondObjBuilderFromDb.h.

Referenced by SkipDeviceDescription().

◆ fec_

SiStripFecKey SiStripCondObjBuilderFromDb::SkipDeviceDescription::fec_
private

Definition at line 67 of file SiStripCondObjBuilderFromDb.h.

Referenced by SkipDeviceDescription().

◆ fed_

SiStripFedKey SiStripCondObjBuilderFromDb::SkipDeviceDescription::fed_
private

Definition at line 68 of file SiStripCondObjBuilderFromDb.h.

Referenced by SkipDeviceDescription().