98   using namespace KM3NETDAQ;
 
  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;
 
  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;
 
  243     cout << 
' ' << setw(8) << 
i->second << endl;
 
Utility class to parse command line options. 
 
Auxiliary class to select ROOT class based on class name. 
 
Long64_t counter_type
Type definition for counter. 
 
result_type::const_iterator const_iterator
 
Auxiliary class for multiplexing object iterators. 
 
static const JChecksum checksum
Function object to perform check-sum of raw data. 
 
static int MAXIMAL_FRAME_SIZE
Maximal frame size. 
 
Auxiliary class for defining the range of iterations of objects. 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
double getFrameTime()
Get frame time duration. 
 
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
 
Object reading from a list of files. 
 
const JLimit & getLimit() const 
Get limit. 
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module. 
 
Auxiliary data structure for result of checksum. 
 
#define DEBUG(A)
Message macros.