29 <<
" Constructing object...";
33 for (SiStripConfigDb::DeviceDescriptionsV::const_iterator apv = apvDescriptions.begin(); apv != apvDescriptions.end();
35 apvDescription*
desc =
dynamic_cast<apvDescription*
>(*apv);
41 std::stringstream
bin;
42 bin << std::setw(1) << std::setfill(
'0') <<
addr.fecCrate_;
43 bin <<
"." << std::setw(2) << std::setfill(
'0') <<
addr.fecSlot_;
44 bin <<
"." << std::setw(1) << std::setfill(
'0') <<
addr.fecRing_;
45 bin <<
"." << std::setw(3) << std::setfill(
'0') <<
addr.ccuAddr_;
46 bin <<
"." << std::setw(2) << std::setfill(
'0') <<
addr.ccuChan_;
47 bin <<
"." <<
desc->getAddress();
49 <<
static_cast<uint16_t
>(
desc->getIsha()) <<
" " << static_cast<uint16_t>(
desc->getVfs());
56 <<
" Enabling selective update of FED parameters.";
63 <<
" Destructing object...";
71 <<
" NULL pointer to SiStripConfigDb interface!" 72 <<
" Aborting upload...";
78 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 79 <<
" Nothing has to be uploaded to the SiStripConfigDb for CALIBRATION_SCAN or CALIBRATION_SCAN_DECO run-types" 80 <<
" Aborting upload...";
88 <<
" Uploading ISHA/VFS settings to DB...";
91 <<
" Uploaded ISHA/VFS settings to DB!";
94 <<
" TEST only! No ISHA/VFS settings will be uploaded to DB...";
98 <<
" Upload of ISHA/VFS settings to DB finished!";
106 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 107 <<
" Nothing has to be uploaded to the SiStripConfigDb for CALIBRATION_SCAN or CALIBRATION_SCAN_DECO run-type" 108 <<
" Aborting upload...";
112 SiStripConfigDb::DeviceDescriptionsV::const_iterator idevice;
113 for (idevice =
devices.begin(); idevice !=
devices.end(); idevice++) {
115 if ((*idevice)->getDeviceType() != APV25) {
119 apvDescription*
desc =
dynamic_cast<apvDescription*
>(*idevice);
127 uint16_t ichan = (
desc->getAddress() - 0x20) / 2;
128 uint16_t iapv = (
desc->getAddress() - 0x20) % 2;
140 <<
" NULL pointer to analysis object!";
144 std::stringstream
ss;
145 ss <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 146 <<
" Updating ISHA and VFS setting for FECCrate/FECSlot/FECRing/CCUAddr/LLD/APV " << fec_key.
fecCrate()
148 << fec_key.
ccuChan() <<
"/" << fec_key.
channel() << iapv <<
" from ISHA " 149 <<
static_cast<uint16_t
>(
desc->getIsha()) <<
" and VFS " << static_cast<uint16_t>(
desc->getVfs());
162 ss <<
" to ISHA " <<
static_cast<uint16_t
>(
desc->getIsha()) <<
" and VFS " 163 << static_cast<uint16_t>(
desc->getVfs());
168 <<
" Unable to find FEC key with params FEC/slot/ring/CCU/LLDchan/APV: " 171 << fec_key.
channel() <<
"/" << iapv + 1;
191 for (uint16_t iapv = 0; iapv < 2; ++iapv) {
193 CalibrationAnalysisDescription*
tmp;
194 tmp =
new CalibrationAnalysisDescription(
anal->amplitudeMean()[iapv],
195 anal->tailMean()[iapv],
196 anal->riseTimeMean()[iapv],
197 anal->decayTimeMean()[iapv],
198 anal->smearingMean()[iapv],
199 anal->chi2Mean()[iapv],
220 typedef std::vector<std::string>
Strings;
222 Strings::const_iterator istr =
errors.begin();
223 Strings::const_iterator jstr =
errors.end();
224 for (; istr != jstr; ++istr) {
225 tmp->addComments(*istr);
239 for (uint16_t iapv = 0; iapv < 2; ++iapv) {
241 CalibrationAnalysisDescription*
tmp;
242 tmp =
new CalibrationAnalysisDescription(
anal->tunedAmplitude()[iapv],
243 anal->tunedTail()[iapv],
244 anal->tunedRiseTime()[iapv],
245 anal->tunedDecayTime()[iapv],
246 anal->tunedSmearing()[iapv],
247 anal->tunedChi2()[iapv],
264 anal->tunedISHA()[iapv],
265 anal->tunedVFS()[iapv]);
268 typedef std::vector<std::string>
Strings;
270 Strings::const_iterator istr =
errors.begin();
271 Strings::const_iterator jstr =
errors.end();
272 for (; istr != jstr; ++istr) {
273 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...
EventSelector::Strings Strings
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
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.
Analysis for calibration runs.
bool allowSelectiveUpload_
const uint16_t & i2cAddr() const
SiStripConfigDb *const db() const
Analysis for calibration scans.
DeviceDescriptions::range DeviceDescriptionsRange
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
An interface class to the DeviceFactory.
const uint32_t & key() const
DeviceAddress deviceAddress(const deviceDescription &)
~CalibrationHistosUsingDb() override
CalibrationHistosUsingDb(const edm::ParameterSet &pset, DQMStore *, SiStripConfigDb *const, edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken, const sistrip::RunType &task=sistrip::CALIBRATION)
const uint16_t & fecSlot() const
void create(SiStripConfigDb::AnalysisDescriptionsV &, Analysis) override
std::vector< AnalysisDescription * > AnalysisDescriptionsV
static const char root_[]
void update(SiStripConfigDb::DeviceDescriptionsRange &)
const edm::ParameterSet & pset() const
const SiStripDbParams & dbParams() const
const sistrip::RunType & task() const
DeviceDescriptionsRange getDeviceDescriptions(std::string partition="")
Log< level::Warning, false > LogWarning
void uploadDeviceDescriptions(std::string partition="")
std::string getBasePath(const std::string &path)
const uint16_t & fecRing() const
bool doUploadConf() const
const uint16_t & fecCrate() const
void uploadConfigurations() override