11#include "TProfile2D.h"
88 JLimit_t& numberOfEvents = inputFile.getLimit();
98 JParser<> zap(
"Example program to monitor acoustic events.");
100 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
111 catch(
const exception &error) {
129 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
130 receivers[i->getID()] = JModule_t(i->getLocation(), i->getPosition());
133 for (tripods_container::const_iterator i = tripods.begin(); i != tripods.end(); ++i) {
137 for (transmitters_container::const_iterator i = transmitters.begin(); i != transmitters.end(); ++i) {
141 catch(
const exception&) {
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));
197 for (JTreeScanner_t::iterator event = in.begin();
event != in.end() && counter != inputFile.getLimit(); ++event, ++counter) {
199 if (counter%1000 == 0) {
203 const JEvent evt = *event;
207 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
211 HA[evt.
getID()]->Fill((
double) evt.size());
214 if (toe.has(evt.
getID())) {
221 toe[evt.
getID()] = evt.begin()->getToE();
230 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
238 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
239 if (receivers.has(i->getID())) {
248 for (JEvent::const_iterator i = evt.begin(); i != evt.end(); ++i) {
249 buffer[i->getID()].
insert(i->getQ());
252 for (
map<
int,
set<double> >::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
254 h1->Fill((
double) i->second.size());
256 if (receivers.has(i->first)) {
258 const JLocation& location = receivers[i->first];
260 const double x =
string.getIndex(location.
getString());
261 const double y = location.
getFloor();
265 if (i->second.size() >= 2u) {
269 h4->Fill(x, y,
log10(*(i->second.rbegin())));
int main(int argc, char **argv)
ROOT TTree parameter settings.
Data structure for detector geometry and calibration.
General purpose class for a hash collection of unique elements.
General purpose class for hash map of unique elements.
Dynamic ROOT object management.
General purpose messaging.
#define DEBUG(A)
Message macros.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
I/O formatting auxiliaries.
#define MAKE_CSTRING(A)
Make C-string.
Auxiliary class to define a range between two values.
Data structure for transmitter.
Data structure for tripod.
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.