98int main(
int argc,
char **argv)
105 JLimit_t & numberOfEvents = inputFile.getLimit();
114 JParser<> zap(
"Example program to check timeslice data for errors.");
120 zap[
'N'] =
make_field(N,
"number of rows to print") = 10;
121 zap[
'R'] =
make_field(rate_Hz,
"high-rate veto [Hz]") = 0.0;
126 catch(
const exception& error) {
127 FATAL(error.what() << endl);
143 const Long64_t nx = frame_index.
second - frame_index.
first + 1;
144 const Double_t xmin = (Double_t) frame_index.
first - 0.5;
145 const Double_t xmax = (Double_t) frame_index.
second + 0.5;
151 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
155 for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
162 misses[frame->getModuleID()] += 1;
168 errors[error->type] += 1;
170 H1[error->type]->Fill((Double_t) frame->getFrameIndex());
177 if (error->pos >= 0) {
179 const int pmt = (*frame)[error->pos].getPMT();
182 << setw(10) << frame->getModuleID() <<
'.' << setw(2) << setfill(
'0') << pmt << setfill(
' ') <<
' '
183 << setw(8) << frame->getFrameIndex() <<
' '
184 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
185 << setw(2) << error->type <<
' ';
187 if (pmt < NUMBER_OF_PMTS) {
188 cout << setw(1) << frame->testHighRateVeto(pmt)
189 << setw(1) << frame->testFIFOStatus (pmt) <<
' ';
192 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
193 << setw(4) << frame->getUDPMaximalSequenceNumber();
197 print(cout, error->type);
199 cout << endl << endl;
201 deque<JDAQHit> buffer;
203 for (
int i = error->pos - 1,
n = 0; i >= 0 &&
n <= N; --i) {
204 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
205 buffer.push_front((*frame)[i]);
210 for (deque<JDAQHit>::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
211 print(cout, *i); cout << endl;
214 print(cout, (*frame)[error->pos]);
216 cout <<
" <<< " << endl;
218 for (
int i = error->pos + 1,
n = 0; i < frame->size() &&
n <= N; ++i) {
219 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
220 print(cout, (*frame)[i]); cout << endl;
228 << setw(10) << frame->getModuleID() <<
' ' << setw(2) <<
' ' <<
' '
229 << setw(8) << frame->getFrameIndex() <<
' '
230 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
231 << setw(2) << error->type <<
' ';
233 cout << setw(1) <<
' '
234 << setw(1) <<
' ' <<
' ';
236 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
237 << setw(4) << frame->getUDPMaximalSequenceNumber();
241 print(cout, error->type);
243 cout << endl << endl;
253 print(cout, i->first);
255 cout <<
' ' << setw(8) << i->second << endl;
262 cout <<
"misses " << setw(10) << i->first <<
' ' << setw(8) << i->second << endl;
267 cout <<
"misses " << setw(10) <<
"total" <<
' ' << setw(8) << ns << endl;
std::ostream & print(std::ostream &out, const JTestSummary &summary, T __begin, T __end, const bool useColors=true, const JFormat_t &formatting=JFormat_t(18, 3, std::ios::fixed))
Print test summary.