9 using namespace sistrip;
33 for ( uint16_t iapv = 0; iapv < 2; iapv++ ) {
36 std::stringstream extra_info;
45 extra_info.str() ).
title();
47 vpsp_[iapv].histo(
dqm()->bookProfile( title, title,
48 nbins, -0.5, nbins*1.-0.5,
51 vpsp_[iapv].vNumOfEntries_.resize(nbins,0);
52 vpsp_[iapv].vSumOfContents_.resize(nbins,0);
53 vpsp_[iapv].vSumOfSquares_.resize(nbins,0);
72 if ( digis.
data.size() != 256 ) {
74 <<
"[VpspScanTask::" << __func__ <<
"]"
75 <<
" Unexpected number of digis! "
81 for ( uint16_t iapv = 0; iapv < 2; iapv++ ) {
83 if ( vpsp >=
vpsp_[iapv].vNumOfEntries_.size() ) {
85 <<
"[VpspScanTask::" << __func__ <<
"]"
86 <<
" Unexpected VPSP value! " << vpsp;
90 std::vector<uint16_t> baseline;
91 baseline.reserve(128);
92 for ( uint16_t idigi = 128*iapv; idigi < 128*(iapv+1); idigi++ ) {
93 baseline.push_back( digis.
data[idigi].adc() );
95 sort( baseline.begin(), baseline.end() );
96 uint16_t
index = baseline.size()%2 ? baseline.size()/2 : baseline.size()/2-1;
98 if ( !baseline.empty() ) {
109 for ( uint32_t iapv = 0; iapv <
vpsp_.size(); iapv++ ) {
Utility class that holds histogram title.
std::vector< HistoSet > vpsp_
virtual void fill(const SiStripEventSummary &, const edm::DetSet< SiStripRawDigi > &)
static const char mlDqmSource_[]
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...
DQMStore *const dqm() const
VpspScanTask(DQMStore *, const FedChannelConnection &)
const uint32_t & fedKey() const
const FedChannelConnection & connection() const
const uint32_t & fecKey() const