9 using namespace sistrip;
28 for (uint16_t iapv = 0; iapv < 2; iapv++) {
30 std::stringstream extra_info;
42 vpsp_[iapv].histo(
dqm()->bookProfile(title, title, nbins, -0.5, nbins * 1. - 0.5, 1025, 0., 1025.));
44 vpsp_[iapv].vNumOfEntries_.resize(nbins, 0);
45 vpsp_[iapv].vSumOfContents_.resize(nbins, 0);
46 vpsp_[iapv].vSumOfSquares_.resize(nbins, 0);
55 uint32_t vpsp = summary.
vpsp();
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++) {
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)
DQMStore *const dqm() const
Class containning control, module, detector and connection information, at the level of a FED channel...
const uint32_t & vpspCcuChan() const
VpspScanTask(DQMStore *, const FedChannelConnection &)
const uint32_t & fedKey() const
const FedChannelConnection & connection() const
Log< level::Warning, false > LogWarning
const uint32_t & vpsp() const
const uint32_t & fecKey() const