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 59 of file SiStripCondObjBuilderFromDb.h.

Constructor & Destructor Documentation

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

Definition at line 899 of file SiStripCondObjBuilderFromDb.cc.

References detid_, edm::ParameterSet::dump(), Exception, fec_, fed_, sistrip::invalid32_, SiStripFecKey::isValid(), and SiStripFedKey::isValid().

899  :
900  fec_(pset.getUntrackedParameter<uint32_t>("fecCrate", sistrip::invalid_),
901  pset.getUntrackedParameter<uint32_t>("fecSlot", sistrip::invalid_),
902  pset.getUntrackedParameter<uint32_t>("fecRing", sistrip::invalid_),
903  pset.getUntrackedParameter<uint32_t>("ccuAddr", sistrip::invalid_),
904  pset.getUntrackedParameter<uint32_t>("ccuChan", sistrip::invalid_),
905  pset.getUntrackedParameter<uint32_t>("lldChan", sistrip::invalid_),
906  pset.getUntrackedParameter<uint32_t>("i2cAddr", sistrip::invalid_)),
907  fed_(pset.getUntrackedParameter<uint32_t>("fedId", sistrip::invalid_),
908  pset.getUntrackedParameter<uint32_t>("feUnit", sistrip::invalid_),
909  pset.getUntrackedParameter<uint32_t>("feChan", sistrip::invalid_),
910  pset.getUntrackedParameter<uint32_t>("fedApv", sistrip::invalid_)),
911  detid_(pset.getUntrackedParameter<uint32_t>("detid", sistrip::invalid32_))
912 {
914  throw cms::Exception("InvalidPSet") << "None of FEC coordinates/FED coordinates/detids are valid in this PSet!\n" << pset.dump(2);
915  }
916 }
T getUntrackedParameter(std::string const &, T const &) const
std::string dump(unsigned int indent=0) const
static const uint32_t invalid32_
Definition: Constants.h:15
bool isValid() const
static const uint16_t invalid_
Definition: Constants.h:16
bool isValid() const

Member Function Documentation

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

Definition at line 949 of file SiStripCondObjBuilderFromDb.cc.

References detid_, fec_, fed_, SiStripFecKey::terse(), and SiStripFedKey::terse().

949  {
950  std::stringstream ss;
951  fec_.terse(ss);
952  ss << "\n";
953  fed_.terse(ss);
954  ss << "\n";
955  ss << "detid=" << detid_;
956  return ss.str();
957 }
virtual void terse(std::stringstream &ss) const
virtual void terse(std::stringstream &ss) const
bool SiStripCondObjBuilderFromDb::SkipDeviceDescription::isConsistent ( const FedChannelConnection fc) const

Definition at line 918 of file SiStripCondObjBuilderFromDb.cc.

References SiStripFecKey::ccuAddr(), FedChannelConnection::ccuAddr(), SiStripFecKey::ccuChan(), FedChannelConnection::ccuChan(), AlCaHLTBitMon_QueryRunRegistry::comp, FedChannelConnection::detId(), detid_, fec_, SiStripFecKey::fecCrate(), FedChannelConnection::fecCrate(), SiStripFedKey::feChan(), SiStripFecKey::fecRing(), FedChannelConnection::fecRing(), SiStripFecKey::fecSlot(), FedChannelConnection::fecSlot(), fed_, FedChannelConnection::fedCh(), SiStripFedKey::fedId(), FedChannelConnection::fedId(), SiStripFedKey::feUnit(), SiStripFecKey::i2cAddr(), FedChannelConnection::i2cAddr(), sistrip::invalid32_, SiStripFecKey::isValid(), SiStripFedKey::isValid(), SiStripFecKey::lldChan(), and FedChannelConnection::lldChannel().

918  {
919 
920  auto comp = [](uint16_t desc, uint16_t device) { return desc==0 || desc==device; };
921 
922  // use FEC coordinates first if provided
923  if (fec_.isValid()){
924  return comp(fec_.fecCrate(), fc.fecCrate())
925  && comp(fec_.fecSlot(), fc.fecSlot())
926  && comp(fec_.fecRing(), fc.fecRing())
927  && comp(fec_.ccuAddr(), fc.ccuAddr())
928  && comp(fec_.ccuChan(), fc.ccuChan())
929  && comp(fec_.lldChan(), fc.lldChannel())
930  && (comp(fec_.i2cAddr(), fc.i2cAddr(0)) || comp(fec_.i2cAddr(), fc.i2cAddr(1))); // do not distinguish between APV1 and APV2
931  }
932 
933  // then try FED coordinates
934  if (fed_.isValid()){
935  return comp(fed_.fedId(), fc.fedId())
938  // no fedApv in FedChannelConnection -- and we do not distinguish between APV1 and APV2
939  }
940 
941  // last try detids (will skip all APVs on the module)
943  return detid_ == fc.detId();
944  }
945 
946  return false;
947 }
const uint16_t & fecSlot() const
const uint16_t & fecCrate() const
const uint16_t & fecRing() const
const uint16_t & fedCh() const
static const uint32_t invalid32_
Definition: Constants.h:15
const uint16_t & lldChan() const
const uint16_t & fecSlot() const
uint16_t lldChannel() const
const uint16_t & i2cAddr() const
const uint16_t & fedId() const
const uint16_t & fecRing() const
const uint32_t & detId() const
bool isValid() const
const uint16_t & ccuChan() const
const uint16_t & ccuAddr() const
const uint16_t & fecCrate() const
const uint16_t & feUnit() const
const uint16_t & ccuAddr() const
bool isValid() const
const uint16_t & feChan() const
const uint16_t & ccuChan() const
const uint16_t & fedId() const
const uint16_t & i2cAddr(const uint16_t &apv0_or_1) const

Member Data Documentation

uint32_t SiStripCondObjBuilderFromDb::SkipDeviceDescription::detid_
private

Definition at line 72 of file SiStripCondObjBuilderFromDb.h.

Referenced by dump(), isConsistent(), and SkipDeviceDescription().

SiStripFecKey SiStripCondObjBuilderFromDb::SkipDeviceDescription::fec_
private

Definition at line 70 of file SiStripCondObjBuilderFromDb.h.

Referenced by dump(), isConsistent(), and SkipDeviceDescription().

SiStripFedKey SiStripCondObjBuilderFromDb::SkipDeviceDescription::fed_
private

Definition at line 71 of file SiStripCondObjBuilderFromDb.h.

Referenced by dump(), isConsistent(), and SkipDeviceDescription().