54int main(
int argc,
char **argv)
60 JLimit_t& numberOfEvents = inputFile.getLimit();
66 JParser<> zap(
"Example program to monitor acoustic events.");
68 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
70 zap[
'p'] =
make_field(compare.waveform_s,
"wavefrom duration [s]") = 5.0e-3;
71 zap[
'D'] =
make_field(Tmax_s,
"time difference between events [s]") = 20.0e-3;
76 catch(
const exception &error) {
77 FATAL(error.what() << endl);
93 for (JTreeScanner_t::iterator
p1 = in.begin();
p1 != in.end() && events != inputFile.getLimit(); ++
p1, ++events) {
95 STATUS(
"event " << setw(8) << events <<
'\r');
DEBUG(endl);
97 if (!
p1->empty() && !p0->empty()) {
99 if (
p1->begin()->getToE() < p0->rbegin()->getToE() + Tmax_s) {
106 <<
FIXED(20,6) << p0-> begin()->getToE() <<
' '
107 <<
FIXED(20,6) << p0->rbegin()->getToE() << endl
108 <<
FIXED(20,6) <<
p1-> begin()->getToE() <<
' '
109 <<
FIXED(20,6) <<
p1->rbegin()->getToE() << endl;
114 for (
int i = 0; i != 2; ++i) {
115 sort(evt[i].begin(), evt[i].end(), compare);
120 for (JEvent::const_iterator
122 i1 = evt[1].begin(); i0 != evt[0].end() && i1 != evt[1].end(); ) {
124 if (compare(*i0, *i1))
126 else if (compare(*i1, *i0))
135 cout << setw(2) << p0->
getID() <<
' '
136 << setw(10) << i0->getID() <<
' '
137 <<
FIXED(20,6) << i0->getToA() <<
' '
138 <<
FIXED( 8,0) << i0->getQ() <<
' ';
140 cout << setw(2) <<
p1->getID() <<
' '
141 << setw(10) << i1->getID() <<
' '
142 <<
FIXED(20,6) << i1->getToA() <<
' '
143 <<
FIXED( 8,0) << i1->getQ() <<
' ';
145 cout <<
FIXED( 9,6) << (i1->getToA() - i0->getToA()) << endl;
148 if (i0->getToA() < i1->getToA())
150 else if (i1->getToA() < i0->getToA())
172 cout <<
"Number of errors / events: " << Q.getCount() <<
" / " << events << endl;
174 if (Q.getCount() > 0) {