28 <<
" Constructing object...";
32 for (SiStripConfigDb::DeviceDescriptionsV::const_iterator apv = apvDescriptions.begin(); apv != apvDescriptions.end();
34 apvDescription* desc =
dynamic_cast<apvDescription*
>(*apv);
40 std::stringstream
bin;
41 bin << std::setw(1) << std::setfill(
'0') << addr.
fecCrate_;
42 bin <<
"." << std::setw(2) << std::setfill(
'0') << addr.
fecSlot_;
43 bin <<
"." << std::setw(1) << std::setfill(
'0') << addr.
fecRing_;
44 bin <<
"." << std::setw(3) << std::setfill(
'0') << addr.
ccuAddr_;
45 bin <<
"." << std::setw(2) << std::setfill(
'0') << addr.
ccuChan_;
46 bin <<
"." << desc->getAddress();
48 <<
static_cast<uint16_t
>(desc->getIsha()) <<
" " << static_cast<uint16_t>(desc->getVfs());
55 <<
" Enabling selective update of FED parameters.";
62 <<
" Destructing object...";
70 <<
" NULL pointer to SiStripConfigDb interface!" 71 <<
" Aborting upload...";
77 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 78 <<
" Nothing has to be uploaded to the SiStripConfigDb for CALIBRATION_SCAN or CALIBRATION_SCAN_DECO run-types" 79 <<
" Aborting upload...";
87 <<
" Uploading ISHA/VFS settings to DB...";
90 <<
" Uploaded ISHA/VFS settings to DB!";
93 <<
" TEST only! No ISHA/VFS settings will be uploaded to DB...";
97 <<
" Upload of ISHA/VFS settings to DB finished!";
105 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 106 <<
" Nothing has to be uploaded to the SiStripConfigDb for CALIBRATION_SCAN or CALIBRATION_SCAN_DECO run-type" 107 <<
" Aborting upload...";
111 SiStripConfigDb::DeviceDescriptionsV::const_iterator idevice;
112 for (idevice = devices.begin(); idevice != devices.end(); idevice++) {
114 if ((*idevice)->getDeviceType() != APV25) {
118 apvDescription* desc =
dynamic_cast<apvDescription*
>(*idevice);
126 uint16_t ichan = (desc->getAddress() - 0x20) / 2;
127 uint16_t iapv = (desc->getAddress() - 0x20) % 2;
139 <<
" NULL pointer to analysis object!";
143 std::stringstream
ss;
144 ss <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 145 <<
" Updating ISHA and VFS setting for FECCrate/FECSlot/FECRing/CCUAddr/LLD/APV " << fec_key.
fecCrate()
147 << fec_key.
ccuChan() <<
"/" << fec_key.
channel() << iapv <<
" from ISHA " 148 <<
static_cast<uint16_t
>(desc->getIsha()) <<
" and VFS " << static_cast<uint16_t>(desc->getVfs());
156 desc->setVfs(anal->
bestVFS()[0]);
159 desc->setVfs(anal->
bestVFS()[1]);
161 ss <<
" to ISHA " <<
static_cast<uint16_t
>(desc->getIsha()) <<
" and VFS " 162 << static_cast<uint16_t>(desc->getVfs());
167 <<
" Unable to find FEC key with params FEC/slot/ring/CCU/LLDchan/APV: " 170 << fec_key.
channel() <<
"/" << iapv + 1;
190 for (uint16_t iapv = 0; iapv < 2; ++iapv) {
192 CalibrationAnalysisDescription*
tmp;
193 tmp =
new CalibrationAnalysisDescription(anal->
amplitudeMean()[iapv],
219 typedef std::vector<std::string>
Strings;
221 Strings::const_iterator istr = errors.begin();
222 Strings::const_iterator jstr = errors.end();
223 for (; istr != jstr; ++istr) {
224 tmp->addComments(*istr);
238 for (uint16_t iapv = 0; iapv < 2; ++iapv) {
240 CalibrationAnalysisDescription*
tmp;
241 tmp =
new CalibrationAnalysisDescription(anal->
tunedAmplitude()[iapv],
267 typedef std::vector<std::string>
Strings;
269 Strings::const_iterator istr = errors.begin();
270 Strings::const_iterator jstr = errors.end();
271 for (; istr != jstr; ++istr) {
272 tmp->addComments(*istr);
T getParameter(std::string const &) const
const VFloat & tunedTail()
const VFloat & tunedAmplitude()
const sistrip::RunType & task() const
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
const uint32_t & fedKey() const
Analyses::iterator Analysis
const VFloat & tunedSmearing()
const VFloat & smearingMean()
Analyses & data(bool getMaskedData=false)
const uint16_t & fecRing() const
A container class for generic run and event-related info, information required by the commissioning a...
const edm::ParameterSet & pset() const
bool deviceIsPresent(const SiStripFecKey &)
static const char mlDqmClient_[]
const uint16_t & fecSlot() const
const VFloat & tunedDecayTime()
const uint16_t & i2cAddr() const
const VFloat & chi2Mean()
const uint32_t & key() const
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
const_iterator_range partitions() const
const VBool isValid(const std::string &key)
const VFloat & tailMean()
Analysis for calibration runs.
bool allowSelectiveUpload_
const VFloat & tunedRiseTime()
Analysis for calibration scans.
const VFloat & amplitudeMean()
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.
bool doUploadConf() const
const uint32_t & fecKey() const
const VFloat & riseTimeMean()
DeviceAddress deviceAddress(const deviceDescription &)
~CalibrationHistosUsingDb() override
const uint16_t & fecCrate() const
const VFloat & decayTimeMean()
const SiStripDbParams & dbParams() const
const uint16_t & channel() const
bool isValid() const override
const uint16_t & ccuAddr() const
void create(SiStripConfigDb::AnalysisDescriptionsV &, Analysis) override
CalibrationHistosUsingDb(const edm::ParameterSet &pset, DQMStore *, SiStripConfigDb *const, const sistrip::RunType &task=sistrip::CALIBRATION)
std::vector< AnalysisDescription * > AnalysisDescriptionsV
static const char root_[]
void update(SiStripConfigDb::DeviceDescriptionsRange &)
const uint16_t & ccuChan() const
const VFloat & tunedChi2()
SiStripConfigDb *const db() const
DeviceDescriptionsRange getDeviceDescriptions(std::string partition="")
void uploadDeviceDescriptions(std::string partition="")
std::string getBasePath(const std::string &path)
const VString & getErrorCodes() const
void uploadConfigurations() override