9 using namespace sistrip;
167 std::stringstream extra1,extra2,extra3;
184 extra1.str() ).
title();
191 extra2.str() ).
title();
198 extra3.str() ).
title();
205 extra3.str() ).
title();
210 << (
isValid() ?
"Valid" :
"Invalid" )
227 << title1 <<
";" << title2 <<
";" << title3 <<
";" << title4
236 if ( iapv == 1 || iapv == 2 ) { iapv--; }
243 <<
"[" <<
myName() <<
"::" << __func__ <<
"]"
244 <<
" Unexpected number of pedestal/noise values: "
245 <<
peds_[iapv].size() <<
", "
246 <<
noise_[iapv].size() <<
", "
247 <<
raw_[iapv].size();
252 ss <<
" Monitorables for APV number : " << iapv;
253 if ( iapv == 0 ) { ss <<
" (first of pair)"; }
254 else if ( iapv == 1 ) { ss <<
" (second of pair)"; }
256 ss << std::fixed << std::setprecision(2);
257 ss <<
" Example peds/noise for strips : "
258 <<
" 0, 31, 63, 127" << std::endl
260 << std::setw(6) <<
peds_[iapv][0] <<
", "
261 << std::setw(6) <<
peds_[iapv][31] <<
", "
262 << std::setw(6) <<
peds_[iapv][63] <<
", "
263 << std::setw(6) <<
peds_[iapv][127] << std::endl
265 << std::setw(6) <<
noise_[iapv][0] <<
", "
266 << std::setw(6) <<
noise_[iapv][31] <<
", "
267 << std::setw(6) <<
noise_[iapv][63] <<
", "
268 << std::setw(6) <<
noise_[iapv][127] << std::endl
269 <<
" Raw noise [ADC] : "
270 << std::setw(6) <<
raw_[iapv][0] <<
", "
271 << std::setw(6) <<
raw_[iapv][31] <<
", "
272 << std::setw(6) <<
raw_[iapv][63] <<
", "
273 << std::setw(6) <<
raw_[iapv][127] << std::endl
274 <<
" Dead strips (<5s) [strip] : (" <<
dead_[iapv].size() <<
" in total) ";
275 for ( uint16_t
ii = 0;
ii <
dead_[iapv].size();
ii++ ) {
276 ss <<
dead_[iapv][
ii] <<
" "; }
279 ss <<
" Noisy strips (>5s) [strip] : (" <<
noisy_[iapv].size() <<
" in total) ";
280 for ( uint16_t
ii = 0;
ii <
noisy_[iapv].size();
ii++ ) {
284 ss <<
" Mean peds +/- spread [ADC] : " <<
pedsMean_[iapv] <<
" +/- " <<
pedsSpread_[iapv] << std::endl
285 <<
" Min/Max pedestal [ADC] : " <<
pedsMin_[iapv] <<
" <-> " <<
pedsMax_[iapv] << std::endl
287 <<
" Min/Max noise [ADC] : " <<
noiseMin_[iapv] <<
" <-> " <<
noiseMax_[iapv] << std::endl
288 <<
" Mean raw noise +/- spread [ADC] : " <<
rawMean_[iapv] <<
" +/- " <<
rawSpread_[iapv] << std::endl
289 <<
" Min/Max raw noise [ADC] : " <<
rawMin_[iapv] <<
" <-> " <<
rawMax_[iapv] << std::endl
290 <<
" Normalised noise : " <<
"(yet to be implemented...)" << std::endl
292 <<
" isValid : " <<
isValid() << std::endl
294 <<
" Error codes (found "
295 << std::setw(2) << std::setfill(
' ') <<
getErrorCodes().size()
301 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_[]
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.
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
void summary(std::stringstream &) const
std::vector< VInt > VVInt
void print(std::stringstream &, uint32_t apv_number=0)
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.
static const char noiseSignif_[]