|
|
#include <ApvTimingHistosUsingDb.h>
|
| ApvTimingHistosUsingDb (const edm::ParameterSet &pset, DQMStore *, SiStripConfigDb *const) |
|
void | uploadConfigurations () override |
|
| ~ApvTimingHistosUsingDb () override |
|
| CommissioningHistosUsingDb (SiStripConfigDb *const, sistrip::RunType=sistrip::UNDEFINED_RUN_TYPE) |
|
void | configure (const edm::ParameterSet &, const edm::EventSetup &) override |
|
bool | doUploadAnal () const |
|
void | doUploadAnal (bool) |
|
bool | doUploadConf () const |
|
void | doUploadConf (bool) |
|
void | uploadToConfigDb () |
|
| ~CommissioningHistosUsingDb () override |
|
| CommissioningHistograms () |
|
| CommissioningHistograms (const edm::ParameterSet &pset, DQMStore *const, const sistrip::RunType &) |
|
void | createCollations (const std::vector< std::string > &) |
|
virtual void | createSummaryHisto (const sistrip::Monitorable &, const sistrip::Presentation &, const std::string &top_level_dir, const sistrip::Granularity &) |
|
void | extractHistograms (const std::vector< std::string > &) |
|
virtual void | printAnalyses () |
|
virtual void | printSummary () |
|
void | remove (std::string pattern="") |
|
void | save (std::string &filename, uint32_t run_number=0, std::string partitionName="") |
|
virtual | ~CommissioningHistograms () |
|
| ApvTimingHistograms (const edm::ParameterSet &pset, DQMStore *) |
|
void | histoAnalysis (bool debug) override |
|
| ~ApvTimingHistograms () override |
|
|
typedef std::map< uint32_t, CommissioningAnalysis * > | Analyses |
|
typedef Analyses::iterator | Analysis |
|
typedef dqm::harvesting::DQMStore | DQMStore |
|
typedef SummaryPlotFactory< CommissioningAnalysis * > | Factory |
|
typedef std::map< uint32_t, uint32_t > | FedToFecMap |
|
typedef std::vector< Histo * > | Histos |
|
typedef std::map< uint32_t, Histos > | HistosMap |
|
typedef dqm::harvesting::MonitorElement | MonitorElement |
|
static void | copyCustomInformation (DQMStore *const, const std::vector< std::string > &) |
|
static uint32_t | runNumber (DQMStore *const, const std::vector< std::string > &) |
|
static sistrip::RunType | runType (DQMStore *const, const std::vector< std::string > &) |
|
virtual void | addDcuDetIds () |
|
void | buildDetInfo () |
|
SiStripFedCabling *const | cabling () const |
|
virtual void | createAnalyses (SiStripConfigDb::AnalysisDescriptionsV &) |
|
SiStripConfigDb *const | db () const |
|
std::pair< std::string, DetInfo > | detInfo (const SiStripFecKey &) |
|
bool | deviceIsPresent (const SiStripFecKey &) |
|
void | uploadAnalyses () |
|
DQMStore *const | bei () const |
|
void | clearHistosMap () |
|
Analyses & | data (bool getMaskedData=false) |
|
Factory *const | factory () |
|
TH1 * | histogram (const sistrip::Monitorable &, const sistrip::Presentation &, const sistrip::View &, const std::string &directory, const uint32_t &xbins, const float &xlow=1. *sistrip::invalid_, const float &xhigh=1. *sistrip::invalid_) |
|
const HistosMap & | histos () const |
|
const FedToFecMap & | mapping () const |
|
void | printHistosMap () |
|
const edm::ParameterSet & | pset () const |
|
const sistrip::RunType & | task () const |
|
std::unique_ptr< Factory > | factory_ |
|
Definition at line 8 of file ApvTimingHistosUsingDb.h.
◆ ApvTimingHistosUsingDb()
◆ ~ApvTimingHistosUsingDb()
ApvTimingHistosUsingDb::~ApvTimingHistosUsingDb |
( |
| ) |
|
|
override |
◆ create()
Reimplemented from CommissioningHistosUsingDb.
Definition at line 317 of file ApvTimingHistosUsingDb.cc.
326 for (uint16_t iapv = 0; iapv < 2; ++iapv) {
339 TimingAnalysisDescription*
tmp;
340 tmp =
new TimingAnalysisDescription(
anal->time(),
346 anal->frameFindingThreshold(),
347 anal->optimumSamplingPoint(),
366 typedef std::vector<std::string>
Strings;
368 Strings::const_iterator istr =
errors.begin();
369 Strings::const_iterator jstr =
errors.end();
370 for (; istr != jstr; ++istr) {
371 tmp->addComments(*istr);
References conversion_template_cfg::anal, CommissioningHistosUsingDb::db(), SiStripConfigDb::dbParams(), submitPVResolutionJobs::desc, SiStripFecKey::i2cAddr(), SiStripDbParams::partitions(), ApvTimingAnalysis::tickMarkHeightThreshold_, and createJobs::tmp.
◆ update() [1/2]
Definition at line 110 of file ApvTimingHistosUsingDb.cc.
112 uint16_t updated = 0;
113 std::vector<SiStripFecKey>
invalid;
114 SiStripConfigDb::DeviceDescriptionsV::const_iterator idevice;
116 for (idevice = devices.begin(); idevice != devices.end(); idevice++) {
118 if ((*idevice)->getDeviceType() != PLL) {
123 pllDescription*
desc = dynamic_cast<pllDescription*>(*idevice);
148 <<
" NULL pointer to analysis object!";
153 int32_t
delay = static_cast<int32_t>(rint(
anal->delay()) * 24. / 25);
155 coarse = static_cast<uint16_t>(
desc->getDelayCoarse() + (
delay / 24)) +
156 (static_cast<uint16_t>(
desc->getDelayFine()) + (
delay % 24)) / 24;
158 if ((static_cast<uint16_t>(
desc->getDelayFine()) +
delay) % 24 < 0) {
162 fine = (static_cast<uint16_t>(
desc->getDelayFine()) +
delay) % 24;
172 <<
" Unable to find FEC key with params crate/FEC/ring/CCU/module/LLD: "
173 << fec_key.fecCrate() <<
"/" << fec_key.fecSlot() <<
"/" << fec_key.fecRing()
174 <<
"/" << fec_key.ccuAddr() <<
"/" << fec_key.ccuChan() <<
"/"
175 << fec_key.channel();
188 std::stringstream
ss;
190 ss <<
"[ApvTimingHistosUsingDb::" << __func__ <<
"]"
191 <<
" Updating coarse/fine PLL settings"
192 <<
" for crate/FEC/ring/CCU/module " << fec_path.
fecCrate() <<
"/" << fec_path.
fecSlot() <<
"/"
194 << static_cast<uint16_t>(
desc->getDelayCoarse()) <<
"/" << static_cast<uint16_t>(
desc->getDelayFine());
196 desc->setDelayCoarse(coarse);
197 desc->setDelayFine(fine);
200 ss <<
" to " << static_cast<uint16_t>(
desc->getDelayCoarse()) <<
"/"
201 << static_cast<uint16_t>(
desc->getDelayFine());
207 <<
" Invalid PLL delay settings course/fine = " << coarse <<
"/" << fine
208 <<
" for crate/FEC/ring/CCU/module " << fec_path.
fecCrate() <<
"/"
216 std::stringstream
ss;
217 ss <<
"[ApvTimingHistosUsingDb::" << __func__ <<
"]"
218 <<
" Found PLL coarse setting of >15"
219 <<
" (not allowed!) for " <<
invalid.size() <<
" channels";
220 ss <<
" (Example is crate/FEC/ring/CCU/module/LLD: " <<
invalid.front().fecCrate() <<
"/"
221 <<
invalid.front().fecSlot() <<
"/" <<
invalid.front().fecRing() <<
"/" <<
invalid.front().ccuAddr() <<
"/"
228 <<
" Updated PLL settings for " << updated <<
" modules";
References generateTowerEtThresholdLUT::addr, allowSelectiveUpload_, conversion_template_cfg::anal, SiStripFecKey::ccuAddr(), SiStripFecKey::ccuChan(), SiStripKey::channel(), sistrip::CHANS_PER_LLD, CommissioningHistograms::data(), CommissioningHistosUsingDb::db(), phase2TrackerDigitizer_cfi::delay, submitPVResolutionJobs::desc, SiStripConfigDb::deviceAddress(), CommissioningHistosUsingDb::deviceIsPresent(), SiStripFecKey::fecCrate(), SiStripFecKey::fecRing(), SiStripFecKey::fecSlot(), invalid, sistrip::invalid_, edm::isDebugEnabled(), SiStripKey::key(), LogTrace, sistrip::mlDqmClient_, and contentValuesCheck::ss.
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), MatrixUtil.Steps::overwrite(), and uploadConfigurations().
◆ update() [2/2]
Definition at line 234 of file ApvTimingHistosUsingDb.cc.
239 uint16_t updated = 0;
240 for (
auto ifed =
feds.begin(); ifed !=
feds.end(); ++ifed) {
242 if (
find(ids.begin(), ids.end(), (*ifed)->getFedId()) == ids.end()) {
264 <<
" NULL pointer to analysis object!";
269 Fed9U::Fed9UAddress
addr(ichan);
270 uint16_t old_threshold = static_cast<uint16_t>((*ifed)->getFrameThreshold(
addr));
271 if (
anal->isValid()) {
272 (*ifed)->setFrameThreshold(
addr,
anal->frameFindingThreshold());
275 uint16_t new_threshold = static_cast<uint16_t>((*ifed)->getFrameThreshold(
addr));
278 std::stringstream
ss;
279 ss <<
"[ApvTimingHistosUsingDb::" << __func__ <<
"]";
280 if (
anal->isValid()) {
281 ss <<
" Updating the frame-finding threshold"
282 <<
" from " << old_threshold <<
" to " << new_threshold <<
" using tick mark base/peak/height "
283 <<
anal->base() <<
"/" <<
anal->peak() <<
"/" <<
anal->height();
285 ss <<
" Cannot update the frame-finding threshold"
286 <<
" from " << old_threshold <<
" to a new value using invalid analysis ";
288 ss <<
" for crate/FEC/ring/CCU/module/LLD " << fec_key.fecCrate() <<
"/" << fec_key.fecSlot() <<
"/"
289 << fec_key.fecRing() <<
"/" << fec_key.ccuAddr() <<
"/" << fec_key.ccuChan() << fec_key.channel()
290 <<
" and FED id/ch " << fed_key.fedId() <<
"/" << fed_key.fedChannel();
296 std::stringstream
ss;
297 ss <<
"[ApvTimingHistosUsingDb::" << __func__ <<
"]"
298 <<
" Unable to find analysis object and update ticker thresholds"
299 <<
" for key/crate/FEC/ring/CCU/module/LLD " << std::hex << std::setw(8) << std::setfill(
'0')
300 << fec_key.key() <<
std::dec << fec_key.fecCrate() <<
"/" << fec_key.fecSlot() <<
"/" << fec_key.fecRing()
301 <<
"/" << fec_key.ccuAddr() <<
"/" << fec_key.ccuChan() <<
"/" << fec_key.channel()
302 <<
" and FED key/id/ch " << std::hex << std::setw(8) << std::setfill(
'0') << fed_key.key() <<
std::dec
303 << fed_key.fedId() <<
"/" << fed_key.fedChannel();
311 <<
" Updated ticker thresholds for " << updated <<
" channels on " << ids.size()
References generateTowerEtThresholdLUT::addr, allowSelectiveUpload_, conversion_template_cfg::anal, CommissioningHistosUsingDb::cabling(), SiStripCommissioningClient_cfg::conn, CommissioningHistograms::data(), TauDecayModes::dec, CommissioningHistosUsingDb::deviceIsPresent(), SiStripFedKey::feChan(), sistrip::FEDCH_PER_FED, SiStripFedKey::fedChannel(), SiStripFedCabling::fedConnection(), SiStripFedKey::fedId(), SiStripFedCabling::fedIds(), l1tstage2emulator_dqm_sourceclient-live_cfg::feds, SiStripFedKey::feUnit(), spr::find(), sistrip::invalid_, SiStripKey::key(), sistrip::mlDqmClient_, and contentValuesCheck::ss.
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), dqm-mbProfile.Profile::finish(), progressbar.ProgressBar::finish(), and MatrixUtil.Steps::overwrite().
◆ uploadConfigurations()
void ApvTimingHistosUsingDb::uploadConfigurations |
( |
| ) |
|
|
overridevirtual |
Reimplemented from CommissioningHistosUsingDb.
Definition at line 45 of file ApvTimingHistosUsingDb.cc.
50 <<
" NULL pointer to SiStripConfigDb interface!"
51 <<
" Aborting upload...";
63 <<
" Found invalid PLL settings (coarse > 15)"
64 <<
" Aborting update to database...";
71 <<
" Uploading PLL settings to DB...";
74 <<
" Upload of PLL settings to DB finished!";
77 <<
" TEST only! No PLL settings will be uploaded to DB...";
82 <<
" No upload of PLL settings to DB, as defined by .cfg file!";
93 <<
" Uploading FED ticker thresholds to DB...";
96 <<
" Upload of FED ticker thresholds to DB finished!";
99 <<
" TEST only! No FED ticker thresholds will be uploaded to DB...";
104 <<
" No Upload of FED ticker thresholds to DB, as defined by .cfg file!";
References CommissioningHistosUsingDb::db(), CommissioningHistosUsingDb::doUploadConf(), l1tstage2emulator_dqm_sourceclient-live_cfg::feds, SiStripConfigDb::getDeviceDescriptions(), SiStripConfigDb::getFedDescriptions(), LogTrace, sistrip::mlDqmClient_, skipFecUpdate_, skipFedUpdate_, update(), alcaDQMUpload::upload(), SiStripConfigDb::uploadDeviceDescriptions(), and SiStripConfigDb::uploadFedDescriptions().
◆ allowSelectiveUpload_
bool ApvTimingHistosUsingDb::allowSelectiveUpload_ |
|
private |
◆ skipFecUpdate_
bool ApvTimingHistosUsingDb::skipFecUpdate_ |
|
private |
◆ skipFedUpdate_
bool ApvTimingHistosUsingDb::skipFedUpdate_ |
|
private |
DeviceDescriptionsRange getDeviceDescriptions(std::string partition="")
DeviceDescriptions::range DeviceDescriptionsRange
const edm::ParameterSet & pset() const
DQMStore *const bei() const
const SiStripDbParams & dbParams() const
DeviceAddress deviceAddress(const deviceDescription &)
FedDescriptionsRange getFedDescriptions(std::string partition="")
void uploadFedDescriptions(std::string partition="")
SiStripFedCabling *const cabling() const
FedChannelConnection fedConnection(uint16_t fed_id, uint16_t fed_ch) const
const uint16_t & fecCrate() const
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
A container class for generic run and event-related info, information required by the commissioning a...
Analyses & data(bool getMaskedData=false)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Log< level::Warning, false > LogWarning
static const float tickMarkHeightThreshold_
static const char mlDqmClient_[]
bool update(SiStripConfigDb::DeviceDescriptionsRange)
CommissioningHistograms()
CommissioningHistosUsingDb()
FedDescriptions::range FedDescriptionsRange
const uint16_t & fecRing() const
bool allowSelectiveUpload_
Utility class that identifies a position within the strip tracker control structure,...
void uploadDeviceDescriptions(std::string partition="")
const uint16_t & ccuChan() const
Class containning control, module, detector and connection information, at the level of a FED channel...
static const uint16_t CHANS_PER_LLD
Analysis for timing run using APV tick marks.
const_iterator_range partitions() const
const uint16_t & feUnit() const
bool doUploadConf() const
static const uint16_t invalid_
ApvTimingHistograms(const edm::ParameterSet &pset, DQMStore *)
Log< level::Error, false > LogError
const uint16_t & i2cAddr() const
Log< level::Info, true > LogVerbatim
const uint16_t & ccuAddr() const
T getParameter(std::string const &) const
static const uint16_t FEDCH_PER_FED
SiStripConfigDb *const db() const
FedsConstIterRange fedIds() const
def upload(url, args, files)
bool deviceIsPresent(const SiStripFecKey &)
const uint16_t & fecSlot() const
const uint16_t & feChan() const