101   JLimit_t &         numberOfEvents = inputFile.getLimit();
 
  110     JParser<> zap(
"Example program to check timeslice data for errors.");
 
  113     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
  114     zap[
'C'] = 
make_field(selector)            = getROOTClassSelection<JDAQTimesliceTypes_t>();
 
  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);
 
  136   JFrameIndexRange frame_index = getFrameIndexRange<JDAQSummaryslice>(inputFile);
 
  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;
 
  144   for (
counter_type counter = 0; in.hasNext(); ++counter) {
 
  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                                                                    << 
' ';
 
  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;
 
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Auxiliary class for multiplexing object iterators.
 
Utility class to parse command line options.
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys.
 
Object reading from a list of files.
 
std::ostream & print(std::ostream &out, const JTestSummary &summary, const char delimiter=' ', const bool useColors=true)
Print test summary.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Long64_t counter_type
Type definition for counter.
 
static const JChecksum checksum
Function object to perform check-sum of raw data.
 
static int MAXIMAL_FRAME_SIZE
Maximal frame size.
 
KM3NeT DAQ data structures and auxiliaries.
 
double getFrameTime()
Get frame time duration.
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
 
Auxiliary class to select ROOT class based on class name.
 
Auxiliary class for defining the range of iterations of objects.
 
Auxiliary data structure for result of checksum.
 
result_type::const_iterator const_iterator