94int main(
int argc, 
char **argv)
 
  101  JLimit_t &         numberOfEvents = inputFile.getLimit();
 
  110    JParser<> zap(
"Example program to check timeslice data for errors.");
 
  116    zap[
'N'] = 
make_field(N,       
"number of rows to print")  = 10;
 
  117    zap[
'R'] = 
make_field(rate_Hz, 
"high-rate veto [Hz]")      = 0.0;
 
  122  catch(
const exception& error) {
 
  123    FATAL(error.what() << endl);
 
  138  const Long64_t nx   = frame_index.
second  -  frame_index.
first  +  1;
 
  139  const Double_t xmin = (Double_t) frame_index.
first  - 0.5;
 
  140  const Double_t xmax = (Double_t) frame_index.
second + 0.5;
 
  146    STATUS(
"event: " << setw(10) << counter << 
'\r'); 
DEBUG(endl);
 
  150    for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
 
  156        errors[error->type] += 1;
 
  158        H1[error->type]->Fill((Double_t) frame->getFrameIndex());
 
  165          if (error->pos >= 0) {
 
  167            const int pmt = (*frame)[error->pos].getPMT();
 
  170                 << setw(10) << frame->getModuleID() << 
'.' << setw(2) << setfill(
'0') << pmt << setfill(
' ')  << 
' ' 
  171                 << setw(8)  << frame->getFrameIndex()                                                         << 
' '  
  172                 << setw(6)  << error->pos           << 
'/' << setw(8)  << frame->size()                       << 
' ' 
  173                 << setw(2)  << error->type                                                                    << 
' ';
 
  175            if (pmt < NUMBER_OF_PMTS) {
 
  176              cout << setw(1)  << frame->testHighRateVeto(pmt)
 
  177                   << setw(1)  << frame->testFIFOStatus  (pmt)                                                 << 
' ';
 
  180            cout << setw(4)  << frame->getUDPNumberOfReceivedPackets()                                         << 
'/'  
  181                 << setw(4)  << frame->getUDPMaximalSequenceNumber();
 
  185            print(cout, error->type);
 
  187            cout << endl << endl;
 
  189            deque<JDAQHit> buffer;
 
  191            for (
int i = error->pos - 1, 
n = 0; i >= 0 && 
n <= N; --i) {
 
  192              if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
 
  193                buffer.push_front((*frame)[i]);
 
  198            for (deque<JDAQHit>::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
  199              print(cout, *i); cout << endl;
 
  202            print(cout, (*frame)[error->pos]);
 
  204            cout << 
" <<< " << endl;
 
  206            for (
int i = error->pos + 1, 
n = 0; i < frame->size() && 
n <= N; ++i) {
 
  207              if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
 
  208                print(cout, (*frame)[i]); cout << endl;
 
  216                 << setw(10) << frame->getModuleID() << 
' ' << setw(2) << 
' '                                  << 
' ' 
  217                 << setw(8)  << frame->getFrameIndex()                                                         << 
' '  
  218                 << setw(6)  << error->pos           << 
'/' << setw(8)  << frame->size()                       << 
' ' 
  219                 << setw(2)  << error->type                                                                    << 
' ';
 
  221            cout << setw(1)  << 
' '                                    
  222                 << setw(1)  << 
' '                                                                            << 
' ';
 
  224            cout << setw(4)  << frame->getUDPNumberOfReceivedPackets()                                         << 
'/'  
  225                 << setw(4)  << frame->getUDPMaximalSequenceNumber();
 
  229            print(cout, error->type);
 
  231            cout << endl << endl;
 
  241    print(cout, i->first);
 
  243    cout << 
' ' << setw(8) << i->second << endl;