21 <<
" Constructing object...";
33 <<
" Destructing object...";
43 <<
" NULL pointer to SiStripConfigDb interface!" 44 <<
" Aborting upload...";
53 <<
" Uploading VPSP settings to DB...";
56 <<
" Uploaded VPSP settings to DB!";
59 <<
" TEST only! No VPSP settings will be uploaded to DB...";
62 <<
" Upload of VPSP settings to DB finished!";
69 SiStripConfigDb::DeviceDescriptionsV::const_iterator idevice;
70 for (idevice =
devices.begin(); idevice !=
devices.end(); idevice++) {
72 if ((*idevice)->getDeviceType() != APV25) {
77 apvDescription*
desc =
dynamic_cast<apvDescription*
>(*idevice);
86 uint16_t ichan = (
desc->getAddress() - 0x20) / 2;
87 uint16_t iapv = (
desc->getAddress() - 0x20) % 2;
98 <<
" NULL pointer to analysis object!";
102 std::stringstream
ss;
103 ss <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]" 104 <<
" Updating VPSP setting for crate/FEC/slot/ring/CCU/LLD/APV " << fec_key.
fecCrate() <<
"/" 106 << fec_key.
channel() << iapv <<
" from " <<
static_cast<uint16_t
>(
desc->getVpsp());
113 ss <<
" to " <<
static_cast<uint16_t
>(
desc->getVpsp());
119 <<
" Unable to find FEC key with params FEC/slot/ring/CCU/LLDchan/APV: " 122 << fec_key.
channel() <<
"/" << iapv + 1;
139 for (uint16_t iapv = 0; iapv < 2; ++iapv) {
141 VpspScanAnalysisDescription*
tmp;
142 tmp =
new VpspScanAnalysisDescription(
anal->vpsp()[iapv],
143 anal->adcLevel()[iapv],
144 anal->fraction()[iapv],
145 anal->topEdge()[iapv],
146 anal->bottomEdge()[iapv],
147 anal->topLevel()[iapv],
148 anal->bottomLevel()[iapv],
165 typedef std::vector<std::string>
Strings;
167 Strings::const_iterator istr =
errors.begin();
168 Strings::const_iterator jstr =
errors.end();
169 for (; istr != jstr; ++istr) {
170 tmp->addComments(*istr);
const uint16_t & channel() const
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
Analyses::iterator Analysis
Analyses & data(bool getMaskedData=false)
const uint16_t & ccuAddr() const
A container class for generic run and event-related info, information required by the commissioning a...
bool deviceIsPresent(const SiStripFecKey &)
const uint16_t & ccuChan() const
static const char mlDqmClient_[]
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
void update(SiStripConfigDb::DeviceDescriptionsRange)
Log< level::Error, false > LogError
const_iterator_range partitions() const
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
const uint16_t & i2cAddr() const
SiStripConfigDb *const db() const
DeviceDescriptions::range DeviceDescriptionsRange
An interface class to the DeviceFactory.
const uint32_t & key() const
bool allowSelectiveUpload_
~VpspScanHistosUsingDb() override
DeviceAddress deviceAddress(const deviceDescription &)
void uploadConfigurations() override
VpspScanHistosUsingDb(const edm::ParameterSet &pset, DQMStore *, SiStripConfigDb *const, edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken)
Histogram-based analysis for VPSP scan.
const uint16_t & fecSlot() const
std::vector< AnalysisDescription * > AnalysisDescriptionsV
const edm::ParameterSet & pset() const
const SiStripDbParams & dbParams() const
DeviceDescriptionsRange getDeviceDescriptions(std::string partition="")
Log< level::Warning, false > LogWarning
void uploadDeviceDescriptions(std::string partition="")
const uint16_t & fecRing() const
bool doUploadConf() const
const uint16_t & fecCrate() const
void create(SiStripConfigDb::AnalysisDescriptionsV &, Analysis) override