28 for (uint16_t iapv = 0; iapv < 2; iapv++) {
30 std::stringstream extra_info;
56 uint32_t ccu_chan =
summary.vpspCcuChan();
63 if (digis.
data.size() != 256) {
65 <<
" Unexpected number of digis! " << digis.
data.size();
70 for (uint16_t iapv = 0; iapv < 2; iapv++) {
71 if (vpsp >=
vpsp_[iapv].vNumOfEntries_.size()) {
73 <<
" Unexpected VPSP value! " << vpsp;
77 std::vector<uint16_t> baseline;
78 baseline.reserve(128);
79 for (uint16_t idigi = 128 * iapv; idigi < 128 * (iapv + 1); idigi++) {
80 baseline.push_back(digis.
data[idigi].adc());
82 sort(baseline.begin(), baseline.end());
83 uint16_t
index = baseline.size() % 2 ? baseline.size() / 2 : baseline.size() / 2 - 1;
85 if (!baseline.empty()) {
94 for (uint32_t iapv = 0; iapv <
vpsp_.size(); iapv++) {
const uint32_t & fecKey() const
Utility class that holds histogram title.
std::vector< HistoSet > vpsp_
static const char mlDqmSource_[]
void fill(const SiStripEventSummary &, const edm::DetSet< SiStripRawDigi > &) override
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
void updateHistoSet(HistoSet &, const uint32_t &bin, const float &value)
Class containning control, module, detector and connection information, at the level of a FED channel...
const uint32_t & fedKey() const
DQMStore *const dqm() const
VpspScanTask(DQMStore *, const FedChannelConnection &)
const FedChannelConnection & connection() const
Log< level::Warning, false > LogWarning