9 using namespace sistrip;
85 dead_[0].reserve(256);
86 dead_[1].reserve(256);
133 std::stringstream extra1,extra2,extra3;
150 extra1.str() ).
title();
157 extra2.str() ).
title();
164 extra3.str() ).
title();
171 extra3.str() ).
title();
176 << (
isValid() ?
"Valid" :
"Invalid" )
193 << title1 <<
";" << title2 <<
";" << title3 <<
";" << title4
202 if ( iapv == 1 || iapv == 2 ) { iapv--; }
209 <<
"[" <<
myName() <<
"::" << __func__ <<
"]"
210 <<
" Unexpected number of pedestal/noise values: "
211 <<
peds_[iapv].size() <<
", "
212 <<
noise_[iapv].size() <<
", "
213 <<
raw_[iapv].size();
218 ss <<
" Monitorables for APV number : " << iapv;
219 if ( iapv == 0 ) { ss <<
" (first of pair)"; }
220 else if ( iapv == 1 ) { ss <<
" (second of pair)"; }
222 ss << std::fixed << std::setprecision(2);
223 ss <<
" Example peds/noise for strips : "
224 <<
" 0, 31, 63, 127" << std::endl
226 << std::setw(6) <<
peds_[iapv][0] <<
", "
227 << std::setw(6) <<
peds_[iapv][31] <<
", "
228 << std::setw(6) <<
peds_[iapv][63] <<
", "
229 << std::setw(6) <<
peds_[iapv][127] << std::endl
231 << std::setw(6) <<
noise_[iapv][0] <<
", "
232 << std::setw(6) <<
noise_[iapv][31] <<
", "
233 << std::setw(6) <<
noise_[iapv][63] <<
", "
234 << std::setw(6) <<
noise_[iapv][127] << std::endl
235 <<
" Raw noise [ADC] : "
236 << std::setw(6) <<
raw_[iapv][0] <<
", "
237 << std::setw(6) <<
raw_[iapv][31] <<
", "
238 << std::setw(6) <<
raw_[iapv][63] <<
", "
239 << std::setw(6) <<
raw_[iapv][127] << std::endl
240 <<
" Dead strips (<5s) [strip] : (" <<
dead_[iapv].size() <<
" in total) ";
241 for ( uint16_t
ii = 0;
ii <
dead_[iapv].size();
ii++ ) {
242 ss <<
dead_[iapv][
ii] <<
" "; }
245 ss <<
" Noisy strips (>5s) [strip] : (" <<
noisy_[iapv].size() <<
" in total) ";
246 for ( uint16_t
ii = 0;
ii <
noisy_[iapv].size();
ii++ ) {
250 ss <<
" Mean peds +/- spread [ADC] : " <<
pedsMean_[iapv] <<
" +/- " <<
pedsSpread_[iapv] << std::endl
251 <<
" Min/Max pedestal [ADC] : " <<
pedsMin_[iapv] <<
" <-> " <<
pedsMax_[iapv] << std::endl
253 <<
" Min/Max noise [ADC] : " <<
noiseMin_[iapv] <<
" <-> " <<
noiseMax_[iapv] << std::endl
254 <<
" Mean raw noise +/- spread [ADC] : " <<
rawMean_[iapv] <<
" +/- " <<
rawSpread_[iapv] << std::endl
255 <<
" Min/Max raw noise [ADC] : " <<
rawMin_[iapv] <<
" <-> " <<
rawMax_[iapv] << std::endl
256 <<
" Normalised noise : " <<
"(yet to be implemented...)" << std::endl
258 <<
" isValid : " <<
isValid() << std::endl
260 <<
" Error codes (found "
261 << std::setw(2) << std::setfill(
' ') <<
getErrorCodes().size()
267 for ( ; istr != jstr; ++istr ) { ss << *istr <<
" "; }
const uint32_t & fedKey() const
const uint16_t & fecRing() const
Utility class that holds histogram title.
A container class for generic run and event-related info, information required by the commissioning a...
static const char noiseMean_[]
void print(std::stringstream &, uint32_t apv_number=0)
static const char noiseMax_[]
const uint16_t & lldChan() const
static const char noiseMin_[]
const uint16_t & fecSlot() const
const uint16_t & i2cAddr() const
const uint32_t & key() const
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
static std::string runType(const sistrip::RunType &)
std::vector< float > VFloat
tuple path
else: Piece not in the list, fine.
void summary(std::stringstream &) const
static const char mlCommissioning_[]
static const char controlView_[]
static const uint16_t maximum_
static const char dqmRoot_[]
const uint32_t & fecKey() const
static const char noiseSpread_[]
std::vector< uint16_t > VInt
const uint16_t & fecCrate() const
std::vector< VInt > VVInt
virtual void header(std::stringstream &) const
const uint16_t & ccuAddr() const
static const uint16_t invalid_
const uint16_t & ccuChan() const
std::vector< VFloat > VVFloat
Abstract base for derived classes that provide analysis of commissioning histograms.
volatile std::atomic< bool > shutdown_flag false
const VString & getErrorCodes() const
const std::string & myName() const
tuple size
Write out results.