33int main(
int argc, 
char **argv)
 
   47    JParser<> zap(
"Example program to histogram various data profiles.");
 
   57  catch(
const exception& error) {
 
   58    FATAL(error.what() << endl);
 
   62  NOTICE(
"Determine frame index range... " << flush);
 
   68  const Long64_t NX   = frame_index.
second  -  frame_index.
first  +  1;
 
   69  const Long64_t nx   = (NX + prescale - 1) / prescale;
 
   70  const Double_t xmin = frame_index.
first;
 
   71  const Double_t xmax = frame_index.
first + nx * prescale;
 
   78  JManager_t m_summary(
new TH1D(
"Summary[%]", NULL, nx, xmin, xmax));
 
   79  JManager_t m_trigger(
new TH1D(
"Trigger[%]", NULL, nx, xmin, xmax));
 
   80  JManager_t m_status (
new TH1D(
"Status[%]",  NULL, NUMBER_OF_PMTS, -0.5, NUMBER_OF_PMTS - 0.5));
 
   82  TH1D hu(
"#N [all]",  NULL, nx, xmin, xmax);
 
   83  TH1D hv(
"#M [UDP]",  NULL, nx, xmin, xmax);
 
   84  TH1D hw(
"#L [HRV]",  NULL, nx, xmin, xmax);
 
   85  TH1D ha(
"L0 [all]",  NULL, nx, xmin, xmax);
 
   86  TH1D hb(
"L0 [HRV]",  NULL, nx, xmin, xmax);
 
   87  TH1D h1(
"WR",        NULL, nx, xmin, xmax);
 
   88  TH1D h2(
"trigger",   NULL, nx, xmin, xmax);
 
   89  TH1D h3(
"PMT",       NULL, nx, xmin, xmax);
 
   95    STATUS(
"event: " << setw(10) << in.getCounter() << 
'\r'); 
DEBUG(endl);
 
  101    Double_t U   = summary->size();
 
  104    Double_t Y[] = { 0.0, 0.0 };
 
  107    for (JDAQSummaryslice::const_iterator frame = summary->begin(); frame != summary->end(); ++frame) {
 
  111      if (frame->testDAQStatus()) {
 
  117          if (frame->testHighRateVeto(pmt) || frame->testFIFOStatus(pmt))
 
  118            m_status[frame->getModuleID()]->Fill((Double_t) pmt);
 
  122          y += frame->getRate(pmt) * 1e-3;  
 
  126      m_summary[frame->getModuleID()]->Fill(x, y);
 
  130        Y[0] += frame->getRate(pmt) * 1e-3;  
 
  132        if (!frame->testHighRateVeto(pmt) && !frame->testFIFOStatus(pmt)) {
 
  133          Y[1] += frame->getRate(pmt) * 1e-3;  
 
  137      if (frame->testWhiteRabbitStatus()) {
 
  142    Y[0] /= (summary->size() * NUMBER_OF_PMTS);
 
  143    Y[1] /= (summary->size() * NUMBER_OF_PMTS);
 
  144    Z    /=  summary->size();
 
  146    hu.Fill(x, U    / prescale);
 
  147    hv.Fill(x, V    / prescale);
 
  148    hw.Fill(x, W    / prescale);
 
  149    ha.Fill(x, Y[0] / prescale);
 
  150    hb.Fill(x, Y[1] / prescale);
 
  151    h1.Fill(x, Z    / prescale);
 
  157    STATUS(
"event: " << setw(10) << in.getCounter() << 
'\r'); 
DEBUG(endl);
 
  161    const Double_t x = 
event->getFrameIndex();
 
  170      m_trigger[hit->getModuleID()]->Fill(x);
 
  175  m_summary.Write(out);
 
  176  m_trigger.Write(out);
 
  177  m_status .Write(out);