55{
58
60 JLimit_t& numberOfEvents = inputFile.getLimit();
61 double Tmax_s;
63
64 try {
65
66 JParser<> zap(
"Example program to monitor acoustic events.");
67
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;
73
75 }
76 catch(const exception &error) {
78 }
79
80
82
84
86
88
90
92
93 for (JTreeScanner_t::iterator
p1 = in.begin();
p1 != in.end() && events != inputFile.getLimit(); ++
p1, ++events) {
94
96
97 if (!
p1->empty() && !p0->empty()) {
98
99 if (
p1->begin()->getToE() < p0->rbegin()->getToE() + Tmax_s) {
100
102
104
106 <<
FIXED(20,6) << p0-> begin()->getToE() <<
' '
107 <<
FIXED(20,6) << p0->rbegin()->getToE() <<
endl
108 <<
FIXED(20,6) <<
p1-> begin()->getToE() <<
' '
110 }
111
113
114 for (int i = 0; i != 2; ++i) {
115 sort(evt[i].begin(), evt[i].end(), compare);
116 }
117
119
120 for (JEvent::const_iterator
122 i1 = evt[1].begin();
i0 != evt[0].end() &&
i1 != evt[1].end(); ) {
123
124 if (compare(*
i0, *
i1))
126 else if (compare(*
i1, *
i0))
128
129 else {
130
132
134
136 <<
setw(10) <<
i0->getID() <<
' '
137 <<
FIXED(20,6) <<
i0->getToA() <<
' '
138 <<
FIXED( 8,0) <<
i0->getQ() <<
' ';
139
141 <<
setw(10) <<
i1->getID() <<
' '
142 <<
FIXED(20,6) <<
i1->getToA() <<
' '
143 <<
FIXED( 8,0) <<
i1->getQ() <<
' ';
144
146 }
147
148 if (
i0->getToA() <
i1->getToA())
150 else if (
i1->getToA() <
i0->getToA())
152 else {
155 }
156 }
157 }
158
161 }
162 }
163 }
164
166 }
167 }
169
170 delete p0;
171
172 cout <<
"Number of errors / events: " << Q.
getCount() <<
" / " << events <<
endl;
173
176 }
177}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Template definition of a multi-dimensional oscillation probability interpolation table.
Base class for JTreeScanner.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
int getID() const
Get emitter identifier.
const int getDetectorID() const
Get detector identifier.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.