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 921 of file SiStripCondObjBuilderFromDb.cc.

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

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

Member Function Documentation

◆ dump()

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

Definition at line 967 of file SiStripCondObjBuilderFromDb.cc.

967  {
968  std::stringstream ss;
969  fec_.terse(ss);
970  ss << "\n";
971  fed_.terse(ss);
972  ss << "\n";
973  ss << "detid=" << detid_;
974  return ss.str();
975 }

References contentValuesCheck::ss.

◆ isConsistent()

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

Definition at line 940 of file SiStripCondObjBuilderFromDb.cc.

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

References AlCaHLTBitMon_QueryRunRegistry::comp, benchmark_cfg::fc, SiStripFedKey::feChan(), SiStripFedKey::feUnit(), and sistrip::invalid32_.

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

sistrip::invalid32_
static const uint32_t invalid32_
Definition: Constants.h:15
SiStripFedKey::isValid
bool isValid() const override
Definition: SiStripFedKey.cc:157
SiStripFecKey::lldChan
const uint16_t & lldChan() const
Definition: SiStripFecKey.h:203
SiStripCondObjBuilderFromDb::SkipDeviceDescription::fed_
SiStripFedKey fed_
Definition: SiStripCondObjBuilderFromDb.h:68
SiStripFecKey::fecCrate
const uint16_t & fecCrate() const
Definition: SiStripFecKey.h:198
AlCaHLTBitMon_QueryRunRegistry.comp
comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
SiStripFecKey::terse
void terse(std::stringstream &ss) const override
Definition: SiStripFecKey.cc:709
SiStripFecKey::fecRing
const uint16_t & fecRing() const
Definition: SiStripFecKey.h:200
benchmark_cfg.fc
fc
Definition: benchmark_cfg.py:15
SiStripFedKey::terse
void terse(std::stringstream &ss) const override
Definition: SiStripFedKey.cc:459
SiStripFecKey::ccuChan
const uint16_t & ccuChan() const
Definition: SiStripFecKey.h:202
SiStripFedKey::feUnit
const uint16_t & feUnit() const
Definition: SiStripFedKey.h:189
sistrip::invalid_
static const uint16_t invalid_
Definition: Constants.h:16
SiStripCondObjBuilderFromDb::SkipDeviceDescription::detid_
uint32_t detid_
Definition: SiStripCondObjBuilderFromDb.h:69
SiStripFecKey::i2cAddr
const uint16_t & i2cAddr() const
Definition: SiStripFecKey.h:204
Exception
Definition: hltDiff.cc:246
SiStripFecKey::ccuAddr
const uint16_t & ccuAddr() const
Definition: SiStripFecKey.h:201
SiStripCondObjBuilderFromDb::SkipDeviceDescription::fec_
SiStripFecKey fec_
Definition: SiStripCondObjBuilderFromDb.h:67
SiStripFecKey::fecSlot
const uint16_t & fecSlot() const
Definition: SiStripFecKey.h:199
SiStripFedKey::fedId
const uint16_t & fedId() const
Definition: SiStripFedKey.h:188
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
SiStripFedKey::feChan
const uint16_t & feChan() const
Definition: SiStripFedKey.h:190
SiStripFecKey::isValid
bool isValid() const override
Definition: SiStripFecKey.cc:244