34 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 35 <<
" Constructing object...";
39 for(SiStripConfigDb::DeviceDescriptionsV::const_iterator apv = apvDescriptions.begin();apv!=apvDescriptions.end();++apv) {
40 apvDescription* desc =
dynamic_cast<apvDescription*
>( *apv );
41 if ( !desc ) {
continue; }
44 std::stringstream
bin;
45 bin << std::setw(1) << std::setfill(
'0') << addr.
fecCrate_;
46 bin <<
"." << std::setw(2) << std::setfill(
'0') << addr.
fecSlot_;
47 bin <<
"." << std::setw(1) << std::setfill(
'0') << addr.
fecRing_;
48 bin <<
"." << std::setw(3) << std::setfill(
'0') << addr.
ccuAddr_;
49 bin <<
"." << std::setw(2) << std::setfill(
'0') << addr.
ccuChan_;
50 bin <<
"." << desc->getAddress();
53 <<
static_cast<uint16_t
>(desc->getIsha()) <<
" " << static_cast<uint16_t>(desc->getVfs());
59 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 60 <<
" Enabling selective update of FED parameters.";
68 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 69 <<
" Destructing object...";
78 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 79 <<
" NULL pointer to SiStripConfigDb interface!" 80 <<
" Aborting upload...";
86 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 87 <<
" Nothing has to be uploaded to the SiStripConfigDb for CALIBRATION_SCAN or CALIBRATION_SCAN_DECO run-types" 88 <<
" Aborting upload...";
98 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 99 <<
" Uploading ISHA/VFS settings to DB...";
102 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 103 <<
" Uploaded ISHA/VFS settings to DB!";
106 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 107 <<
" TEST only! No ISHA/VFS settings will be uploaded to DB...";
111 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 112 <<
" Upload of ISHA/VFS settings to DB finished!";
122 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 123 <<
" Nothing has to be uploaded to the SiStripConfigDb for CALIBRATION_SCAN or CALIBRATION_SCAN_DECO run-type" 124 <<
" Aborting upload...";
130 SiStripConfigDb::DeviceDescriptionsV::const_iterator idevice;
131 for ( idevice = devices.begin(); idevice != devices.end(); idevice++ ) {
134 if ( (*idevice)->getDeviceType() != APV25 ) {
continue; }
136 apvDescription* desc =
dynamic_cast<apvDescription*
>( *idevice );
137 if ( !desc ) {
continue; }
142 uint16_t ichan = ( desc->getAddress() - 0x20 ) / 2;
143 uint16_t iapv = ( desc->getAddress() - 0x20 ) % 2;
160 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 161 <<
" NULL pointer to analysis object!";
165 std::stringstream ss;
166 ss <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 167 <<
" Updating ISHA and VFS setting for FECCrate/FECSlot/FECRing/CCUAddr/LLD/APV " 175 <<
" from ISHA "<<
static_cast<uint16_t
>(desc->getIsha())
176 <<
" and VFS "<< static_cast<uint16_t>(desc->getVfs());
177 if ( iapv == 0 ) { desc->setIsha( anal->
bestISHA()[0] ); }
178 if ( iapv == 1 ) { desc->setIsha( anal->
bestISHA()[1] ); }
179 if ( iapv == 0 ) { desc->setVfs( anal->
bestVFS()[0] ); }
180 if ( iapv == 1 ) { desc->setVfs( anal->
bestVFS()[1] ); }
181 ss <<
" to ISHA " <<
static_cast<uint16_t
>(desc->getIsha())
182 <<
" and VFS " << static_cast<uint16_t>(desc->getVfs());
188 <<
"[CalibrationHistosUsingDb::" << __func__ <<
"]" 189 <<
" Unable to find FEC key with params FEC/slot/ring/CCU/LLDchan/APV: " 211 if ( !anal ) {
return; }
216 for ( uint16_t iapv = 0; iapv < 2; ++iapv ) {
219 CalibrationAnalysisDescription *
tmp;
220 tmp =
new CalibrationAnalysisDescription(anal->
amplitudeMean()[iapv],
246 typedef std::vector<std::string>
Strings;
248 Strings::const_iterator istr = errors.begin();
249 Strings::const_iterator jstr = errors.end();
250 for ( ; istr != jstr; ++istr ) { tmp->addComments( *istr ); }
252 desc.push_back( tmp );
258 if ( !anal ) {
return; }
263 for ( uint16_t iapv = 0; iapv < 2; ++iapv ) {
266 CalibrationAnalysisDescription *
tmp;
267 tmp =
new CalibrationAnalysisDescription(anal->
tunedAmplitude()[iapv],
294 typedef std::vector<std::string>
Strings;
296 Strings::const_iterator istr = errors.begin();
297 Strings::const_iterator jstr = errors.end();
298 for ( ; istr != jstr; ++istr ) { tmp->addComments( *istr ); }
300 desc.push_back( tmp );
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
bin
set the eta bin as selection string.
const VFloat & decayTimeMean()
const SiStripDbParams & dbParams() const
const uint16_t & channel() const
bool isValid() const override
const uint16_t & ccuAddr() const
std::vector< std::vector< double > > tmp
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