41         << setw(3)  << (int) hit.
getPMT() << 
' '  
   42         << setw(8)  << hex << hit.
getT()  << 
' '  
   43         << setw(10) << dec << hit.
getT()  << 
' '  
   44         << setw(3)  << (int) hit.
getToT();
 
   53   inline void print(std::ostream& out, 
const int type)
 
   60     case JChecksum::TIME_t:
 
   64     case JChecksum::ETDC_t:
 
   68     case JChecksum::EPMT_t:
 
   72     case JChecksum::EUDP_t:
 
   76     case JChecksum::SIZE_t:
 
   94 int main(
int argc, 
char **argv)
 
  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;
 
  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;
 
Dynamic ROOT object management.
 
General purpose messaging.
 
#define DEBUG(A)
Message macros.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Scanning of objects from a single file according a format that follows from the extension of each fil...
 
ROOT TTree parameter settings of various packages.
 
Auxiliary class for multiplexing object iterators.
 
virtual bool hasNext() override
Check availability of next element.
 
virtual const pointer_type & next() override
Get next element.
 
Utility class to parse command line options.
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys.
 
void Write(TDirectory &out, const bool wm=false)
Write objects to file.
 
Object reading from a list of files.
 
JPMT_t getPMT() const
Get PMT.
 
JTDC_t getT() const
Get time.
 
JTOT_t getToT() const
Get time-over-threshold.
 
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.
 
int main(int argc, char **argv)
 
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