25{
   29 
   31  JLimit_t&    numberOfEvents = inputFile.getLimit();
 
   33  int          highRateThreshold;
   35 
   36  try { 
   37 
   38    JParser<> zap(
"Auxiliary program to monitor summary data.");
 
   39    
   43    zap[
't'] = 
make_field(highRateThreshold)   = 50000;
 
   45    
   46    zap(argc, argv);
   47  }
   48  catch(const exception &error) {
   49    FATAL(error.what() << endl);
 
   50  }
   51 
   52 
   59 
   61  int nbOfHighRateNotFiltered = 0;
   62  int nbOfDuplicated = 0;
   63  
   65    
   67    
   69 
   71 
   72    if (!frameIndexCounter.insert(frameIndex).second) {
   73      nbOfDuplicated += 1;
   74    }
   75 
   76    
   77    int numberOfPTMs = 0;
   78 
   79    for (JDAQSummaryslice::const_iterator frame = summaryslice->begin(); frame != summaryslice->end(); ++frame) {
   80      
   81      Q1.put(frame->testDAQStatus()         ? 1.0 : 0.0);
   82      Q2.put(frame->testWhiteRabbitStatus() ? 1.0 : 0.0);
   83 
   84      Q3.put((double) frame->countHighRateVeto() / (double) NUMBER_OF_PMTS);
   85      Q4.put((double) frame->countFIFOStatus()   / (double) NUMBER_OF_PMTS);
   86 
   88 
   90          ++numberOfPTMs;
   91        }
   92 
   93        if (!frame->testHighRateVeto(pmt) &&
   94            !frame->testFIFOStatus  (pmt)) {
   95          Q6.put(frame->getRate(pmt));
   96          
   97          if (frame->getRate(pmt) > highRateThreshold){
   98            nbOfHighRateNotFiltered += 1;
   99          }
  100        }
  101      }
  102    }
  103 
  104    Q5.put((double) numberOfPTMs);
  105  }
  107 
  108  for (
const JQuantile* p : { &Q1, &Q2, &Q3, &Q4, &Q5, &Q6}) {
 
  110  }
  111 
  113       << 
FIXED(7,5) << Q1.getMean()  << 
' ' 
  114       << 
FIXED(7,5) << Q2.getMean()  << 
' ' 
  115       << 
FIXED(7,5) << Q3.getMean()  << 
' ' 
  116       << 
FIXED(7,5) << Q4.getMean()  << 
' ' 
  117       << 
FIXED(8,1) << Q5.getMean()  << 
' ' 
  118       << 
FIXED(7,0) << Q6.getMean()  << 
' ' 
  119       << 
FIXED(7,0) << Q6.getSTDev() << 
' ' 
  120       << 
FIXED(7,0) << nbOfHighRateNotFiltered << 
' ' 
  121       << 
FIXED(7,0) << nbOfDuplicated << endl);
 
  122}
#define DEBUG(A)
Message macros.
 
#define QAQC(A)
QA/QC output macro.
 
int qaqc
QA/QC file descriptor.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Utility class to parse command line options.
 
Object reading from a list of files.
 
virtual bool hasNext() override
Check availability of next element.
 
counter_type getCounter() const
Get counter.
 
virtual const pointer_type & next() override
Get next element.
 
int getFrameIndex() const
Get frame index.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
bool is_valid(const json &js)
Check validity of JSon data.
 
KM3NeT DAQ data structures and auxiliaries.
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
 
Auxiliary data structure for floating point format specification.
 
Auxiliary class for defining the range of iterations of objects.
 
static counter_type max()
Get maximum counter value.