34   using namespace KM3NETDAQ;
 
   44     JParser<> zap(
"Example program to histogram summary data.");
 
   48     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   54   catch(
const exception& error) {
 
   55     FATAL(error.what() << endl);
 
   59   const double factor = 1.0e-3;   
 
   65   TProfile h1(
"h1", NULL,  32,-0.5, 31.5);
 
   66   TProfile h2(
"h2", NULL,  32,-0.5, 31.5);
 
   68   TH2D     hu(
"hu", NULL, 201, -0.5, +200.5, 201, -0.5, +200.5);
 
   70   TH2D     hv(
"hv", NULL, 51, -0.5, +50.5, 200, 0.0, 50.0);
 
   71   TH2D     hw(
"hw", NULL, 51, -0.5, +50.5, 200, 0.0, 50.0);
 
   77   while (inputFile.hasNext()) {
 
   79     STATUS(
"event: " << setw(10) << inputFile.getCounter() << 
'\r'); 
DEBUG(endl);
 
   84           << setw(8) << inputFile.getCounter()        << 
' ' 
   87           << setw(6) << summaryslice->size()          << endl);
 
   91     for (JDAQSummaryslice::const_iterator frame = summaryslice->begin(); frame != summaryslice->end(); ++frame) {
 
   96       double R[2] = { 0.0 };
 
  103         const int index = (!frame->testHighRateVeto(pmt) && !frame->testFIFOStatus(pmt) ? 0 : 1);
 
  106         R[index] += correct ? 
getRate(*frame, pmt, factor) : frame->getRate(pmt, factor);
 
  113         h0.Fill(correct ? 
getRate(*frame, pmt, factor) : frame->getRate(pmt, factor), frame->getWeight(pmt, factor));
 
  115         h1.Fill((Double_t) pmt, (frame->testHighRateVeto(pmt) ? 1.0 : 0.0));
 
  116         h2.Fill((Double_t) pmt, (frame->testFIFOStatus  (pmt) ? 1.0 : 0.0));
 
  119       hu.Fill((
double) frame->getUDPMaximalSequenceNumber(),
 
  120               (double) frame->getUDPNumberOfReceivedPackets());
 
  122       if (N[0] != 0) { hv.Fill((
double) frame->getUDPMaximalSequenceNumber(), R[0] / N[0]); }
 
  123       if (N[1] != 0) { hw.Fill((
double) frame->getUDPMaximalSequenceNumber(), R[1] / N[1]); }
 
  127         hx.Fill((
double) N[1], R[0] / N[0]);
 
  129         if (lower[0] != 0 && upper[0] != 0) {
 
  130           hy.Fill((
double) N[1], R[0] / N[0]);
 
  134       const bool status = (frame->getUDPNumberOfReceivedPackets() == frame->getUDPMaximalSequenceNumber() + 1  &&
 
  135                            frame->hasUDPTrailer());
 
  137       h1.Fill((Double_t) 31, (frame->testWhiteRabbitStatus() ? 1.0 : 0.0));
 
  138       h2.Fill((Double_t) 31, (status ? 1.0 : 0.0));
 
Utility class to parse command line options. 
 
int getDetectorID() const 
Get detector identifier. 
 
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
 
Lookup table for PMT addresses in detector. 
 
int getRunNumber() const 
Get run number. 
 
int getFrameIndex() const 
Get frame index. 
 
Auxiliary class for defining the range of iterations of objects. 
 
Lookup table for PMT addresses in optical module. 
 
double getRate(const JDAQSummaryFrame &frame, const int pmt, const double factor=1.0)
Get corrected rate of PMT. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
char ring
ring number ['A','F'] 
 
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map. 
 
then JCookie sh JDataQuality D $DETECTOR_ID R
 
const JPMTAddressTranslator & getAddressTranslator(const int tdc) const 
Get PMT address translator. 
 
const JLimit & getLimit() const 
Get limit. 
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module. 
 
#define DEBUG(A)
Message macros.