1 #ifndef __RUNANALYZER__
2 #define __RUNANALYZER__
18 using namespace JLANG ;
59 numberOfTimeslices (nTimeslices),
60 numberOfSummaryslices (nSummaryslices),
61 numberOfEvents (nEvents)
67 cerr <<
"FATAL ERROR. Could not open detector file '" << detectorFile <<
"'." << endl;
89 while (scanner.hasNext()) {
98 if (event.hasTriggerBit(i)) {
110 int Floor = router->
getModule (hit->getModuleID()).getFloor();
116 if (hit -> hasTriggerBit(i)) {
127 int pmt = hit -> getPMT() ;
148 while (scanner.hasNext()){
152 for (JDAQSummaryslice::const_iterator frame = slice.begin() ; frame != slice.end() ; ++ frame) {
160 int string = router->
getModule(frame->getModuleID()).getString();
161 int floor = router->
getModule(frame->getModuleID()).getFloor ();
178 h2->Fill(i , frame->getRate(i) * 1e-3);
180 rate += frame->getRate(i);
182 PMT_rate_quantiles[router->
getModule(frame->getModuleID()).getString()][router->
getModule(frame->getModuleID()).getFloor()-1][i].put(frame->getRate(i)*1e-3);
187 DOM_rate_quantiles[router->
getModule (frame->getModuleID()).getString()].resize(modulesPerString);
188 DOM_rate_quantiles[router->
getModule (frame->getModuleID()).getString()][router->
getModule(frame->getModuleID()).getFloor()-1].put(rate * 1e-3);
192 for (
std::map<
int ,
vector<JQuantile> >::const_iterator i = DOM_rate_quantiles.begin() ; i!= DOM_rate_quantiles.end() ; ++i) {
194 for (
int j=1 ;
j < modulesPerString + 1 ;
j++) {
202 for (
int j=0 ;
j < modulesPerString ;
j++){
230 double inverseFrameTimeSec = 1. / (1.0e-9 *
getFrameTime());
232 while (scanner.hasNext()){
234 T slice = *(scanner.next());
236 for(
auto & frame : slice) {
239 double rate = frame.numberOfHits * inverseFrameTimeSec;
243 DOM_rate_quantiles[string][floor].put(rate);
253 h2 -> Fill(hit->getPMT() , hit->getToT()) ;
255 hit_time_buffers [hit->getPMT()].push_back (hit->getT()) ;
257 if (hit->getToT() == 255) {
273 if (hit_time_buffers[pmt].size() > 1) {
275 h2 -> Fill ( log10(*q - *p) , pmt);
300 if (scanner.hasNext()) {
304 iterateSummarysliceTree(scanner);
318 if(scanner.hasNext()) {
322 iterateTimesliceTree(scanner);
336 if(scanner.hasNext()) {
340 iterateEventTree(scanner);