98 using namespace KM3NETDAQ;
110 JParser<> zap(
"Example program to histogram timeslice data.");
113 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
114 zap[
'C'] =
make_field(selector) = getROOTClassSelection<JDAQTimesliceTypes_t>();
116 zap[
'N'] =
make_field(
N,
"number of rows to print") = 10;
117 zap[
'R'] =
make_field(rate_Hz,
"high-rate veto [Hz]") = 0.0;
122 catch(
const exception& error) {
123 FATAL(error.what() << endl);
137 JFrameIndexRange frame_index = getFrameIndexRange<JDAQSummaryslice>(inputFile);
139 const Long64_t nx = frame_index.
second - frame_index.first + 1;
140 const Double_t
xmin = (Double_t) frame_index.first - 0.5;
141 const Double_t
xmax = (Double_t) frame_index.second + 0.5;
147 STATUS(
"event: " << setw(10) << counter <<
'\r');
DEBUG(endl);
151 for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
157 errors[error->type] += 1;
159 H1[error->type]->Fill((Double_t) frame->getFrameIndex());
166 if (error->pos >= 0) {
168 const int pmt = (*frame)[error->pos].getPMT();
171 << setw(10) << frame->getModuleID() <<
'.' << setw(2) << setfill(
'0') << pmt << setfill(
' ') <<
' '
172 << setw(8) << frame->getFrameIndex() <<
' '
173 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
174 << setw(2) << error->type <<
' ';
177 cout << setw(1) << frame->testHighRateVeto(pmt)
178 << setw(1) << frame->testFIFOStatus (pmt) <<
' ';
181 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
182 << setw(4) << frame->getUDPMaximalSequenceNumber();
186 print(cout, error->type);
188 cout << endl << endl;
190 deque<JDAQHit> buffer;
192 for (
int i = error->pos - 1,
n = 0; i >= 0 &&
n <=
N; --i) {
193 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
194 buffer.push_front((*frame)[i]);
199 for (deque<JDAQHit>::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
200 print(cout, *i); cout << endl;
203 print(cout, (*frame)[error->pos]);
205 cout <<
" <<< " << endl;
207 for (
int i = error->pos + 1,
n = 0; i < frame->size() &&
n <=
N; ++i) {
208 if ((*frame)[i].getPMT() == (*frame)[error->pos].getPMT()) {
209 print(cout, (*frame)[i]); cout << endl;
217 << setw(10) << frame->getModuleID() <<
' ' << setw(2) <<
' ' <<
' '
218 << setw(8) << frame->getFrameIndex() <<
' '
219 << setw(6) << error->pos <<
'/' << setw(8) << frame->size() <<
' '
220 << setw(2) << error->type <<
' ';
222 cout << setw(1) <<
' '
223 << setw(1) <<
' ' <<
' ';
225 cout << setw(4) << frame->getUDPNumberOfReceivedPackets() <<
'/'
226 << setw(4) << frame->getUDPMaximalSequenceNumber();
230 print(cout, error->type);
232 cout << endl << endl;
242 print(cout, i->first);
244 cout <<
' ' << setw(8) << i->second << endl;
Utility class to parse command line options.
Auxiliary class to select ROOT class based on class name.
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
Long64_t counter_type
Type definition for counter.
result_type::const_iterator const_iterator
Auxiliary class for multiplexing object iterators.
static const JChecksum checksum
Function object to perform check-sum of raw data.
static int MAXIMAL_FRAME_SIZE
Maximal frame size.
Auxiliary class for defining the range of iterations of objects.
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
double getFrameTime()
Get frame time duration.
Object reading from a list of files.
const JLimit & getLimit() const
Get limit.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
#define DEBUG(A)
Message macros.
const result_type & get(const JDAQSuperFrame &frame) const
Check sum.