21 std::ostream& daq::details::operator<<
25 if (chSetup.hasChannel()) {
26 if (chSetup.category.empty()) out << chSetup.channelID;
27 else out <<
"0x" << std::hex << chSetup.channelID << std::dec;
29 else out <<
"from channel DB";
31 if (chSetup.mustSkip()) out <<
", always skipped";
33 if (chSetup.mustSave() || chSetup.hasChannel()) {
34 if (chSetup.mustSave() || (chSetup.minSpan == 0))
35 out <<
", always saved";
37 out <<
", saved if span larger than " << chSetup.minSpan <<
" ADC";
40 out <<
", saved if in channel DB";
41 if (chSetup.minSpan > 0)
42 out <<
" and if span larger than " << chSetup.minSpan <<
" ADC";
45 if (chSetup.onGlobalOnly) out <<
" only if on global trigger";
47 if (!chSetup.category.empty())
48 out <<
" in special category '" << chSetup.category <<
"'";
57 std::ostream& daq::details::operator<<
61 out <<
"Information on " <<
db.nBoardInfo() <<
" boards recorded:";
63 assert(boardInfo.setup);
64 out <<
"\n board \"" << boardInfo.setup->name
65 <<
"\" (fragment ID " << std::hex << boardInfo.fragmentID << std::dec
66 <<
"): trigger delay " << boardInfo.setup->triggerDelay
67 <<
", TTT reset delay " << boardInfo.setup->TTTresetDelay
68 <<
", pre-trigger buffer length " << boardInfo.facts.preTriggerTime;
69 if (boardInfo.config) {
70 out <<
", buffer " << boardInfo.config->bufferLength
71 <<
" tick long, board ID " << boardInfo.config->boardID
72 <<
" with " << boardInfo.config->nChannels <<
" channels";
75 out <<
" (no PMT configuration)";
78 std::vector<std::size_t> specialChannels;
79 for (
auto const& [ iChannel, chSetup ]
82 if (!chSetup.isDefault()) specialChannels.push_back(iChannel);
84 if (specialChannels.empty())
continue;
85 out <<
"; " << specialChannels.size() <<
" special channel configurations:";
86 for (std::size_t
const iCh: specialChannels) {
87 out <<
"\n ch.number " << iCh <<
": "
88 << boardInfo.setup->channelSettings[iCh];
Utility class for fast lookup of board data by fragment ID.
Definition of util::enumerate().
Some helpers for PMT decoder tool.
auto enumerate(Iterables &&...iterables)
Range-for loop helper tracking the number of iteration.
Special settings for one channel on the board.
Record of information about a readout board.
height to which particles are projected pnfs larsoft persistent physics cosmics Fermilab CORSIKA standard He_showers_ * db