39 JMultipleFileScanner<JDAQSummaryslice> inputFile;
46 JParser<> zap(
"Monitoring of PMT time over threshold distributions.");
55 catch(
const exception &error) {
56 FATAL(error.what() << endl);
59 JTreeScanner<JDAQSummaryslice, JDAQEvaluator> in(inputFile);
65 const double factor = 1.0/1000 ;
66 const int Nbins = 90 ;
71 const double maxRate_kHz = 20;
83 const int nStages = 3;
88 while (in.hasNext()) {
92 int counter = in.getCounter();
94 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
100 int nDetectorActivePMTs = 0;
102 int nDetectorTotalPMTs = 0;
106 for (KM3NETDAQ::JDAQSummaryslice::const_iterator summary_frame = summary->begin(); summary_frame != summary->end(); ++summary_frame) {
110 int DOMID = summary_frame->getModuleID() ;
112 TH2D* h_i = SinglesRatedistr[DOMID];
114 int nModuleActivePMTs = 0;
118 double pmtRate = summary_frame->getRate(ipmt, factor);
120 h_i->Fill(ipmt, pmtRate, summary_frame->getWeight(ipmt, factor));
122 PMT[0]->Fill(pmtRate);
124 domRate[0] += pmtRate;
126 nDetectorTotalPMTs++;
128 if ( !( summary_frame->testHighRateVeto(ipmt) || summary_frame->testFIFOStatus(ipmt) ) ) {
132 PMT[1]->Fill(pmtRate);
134 domRate[1] += pmtRate;
160 nDetectorActivePMTs += nModuleActivePMTs;
163 for (
int i = 0; i < nStages; i++) {
164 if (domRate[i] > 0) {
165 detRate[i] += domRate[i];
169 DOM[i]->Fill(domRate[i]);
171 if (i == 0) { modules.insert(DOMID); }
176 for (
int i = 0; i < nStages; i++) {
178 DET[i]->Fill(detRate[i]);
180 detRate[i] /= ((double)nDetectorActivePMTs)/((double)nDetectorTotalPMTs);
182 History[i]->Fill(counter, detRate[i]);
185 double deltaRate = detRate[i] - detRateBuf[i];
186 Delta[i]->Fill(deltaRate);
189 detRateBuf[i] = detRate[i];
193 previous_summary = summary;
199 STATUS(modules.size() <<
" modules active in the run." << endl);