80{
83
86
88 JLimit_t& numberOfEvents = inputFile.getLimit();
93 double Q;
95
96 try {
97
98 JParser<> zap(
"Example program to monitor acoustic events.");
99
100 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
108
110 }
111 catch(const exception &error) {
113 }
114
116
117 try {
119 }
122 }
123
125
128
129 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
130 receivers[i->getID()] = JModule_t(i->getLocation(), i->getPosition());
131 }
132
133 for (tripods_container::const_iterator i = tripods.begin(); i != tripods.end(); ++i) {
135 }
136
137 for (transmitters_container::const_iterator i = transmitters.begin(); i != transmitters.end(); ++i) {
138 try {
140 }
141 catch(const exception&) {
142 continue;
143 }
144 }
145
148
158 string.size(), -0.5, string.size() - 0.5,
159 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
161 string.size(), -0.5, string.size() - 0.5,
162 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
163
166 }
167
170 }
171
174 }
175
178 }
179
181
185 }
186
188
190
192
194
196
197 for (JTreeScanner_t::iterator event = in.begin(); event != in.end() && counter != inputFile.getLimit(); ++event, ++counter) {
198
199 if (counter%1000 == 0) {
201 }
202
203 const JEvent evt = *event;
204
206
207 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
209 }
210
211 HA[evt.
getID()]->Fill((
double) evt.size());
213
214 if (toe.has(evt.
getID())) {
216 }
217
220
221 toe[evt.
getID()] = evt.begin()->getToE();
222
229
230 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
232 }
233
235
237
238 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
239 if (receivers.has(i->getID())) {
242 }
243 }
244 }
245
247
248 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
249 buffer[i->getID()].
insert(i->getQ());
250 }
251
252 for (
map<
int,
set<double> >::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
253
254 h1->Fill((double) i->second.size());
255
256 if (receivers.has(i->first)) {
257
258 const JLocation& location = receivers[i->first];
259
260 const double x =
string.getIndex(location.
getString());
262
263 h2->Fill(x, y, 1.0);
264
265 if (i->second.size() >= 2u) {
267 }
268
269 h4->Fill(x, y,
log10(*(i->second.rbegin())));
270 }
271 }
272 }
273 }
275
276
278
280
281 out.Write();
282 out.Close();
283}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define MAKE_CSTRING(A)
Make C-string.
Logical location of module.
const JLocation & getLocation() const
Get location.
int getFloor() const
Get floor number.
int getString() const
Get string number.
Data structure for position in three dimensions.
double getDistance(const JVector3D &pos) const
Get distance to point.
Template definition of a multi-dimensional oscillation probability interpolation table.
Base class for JTreeScanner.
JPosition3D getPosition(const Vec &pos)
Get position.
JContainer< std::vector< JTripod > > tripods_container
JContainer< std::vector< JTransmitter > > transmitters_container
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
int getID() const
Get emitter identifier.
int getOverlays() const
Get number of overlayed events.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.