/*! \mainpage Aanet Documentation Aanet is a collection of tools to work with KM3NeT data. This doxygen page serves as a starting point to explore the available classes and functionality. @tableofcontents \section s0 Documentation \subsection ss0 Installation & Getting Started See the git page for setup instructions https://git.km3net.de/common/aanet. \subsection ss1 Notebooks A set of notebooks is availble that offer a didactical introduction to analyzing data files in the aanet ecosystem, as well as to other topics. They are available for viewing here: https://git.km3net.de/common/aanet/-/tree/master/examples/notebook (or in the examples/notebook directory of your aanet installation) \subsection ss2 Examples \section s_overview Overview of Aanet \subsection s1 Data Format The data structures used to define the km3net offline dataformat were originally part of aanet, but are now part of the package km3net-dataformat. (see https://git.km3net.de/common/km3net-dataformat). The code in aanet is aimed at making working with these classes easy. The main data-structures are: - Vec : simple 3-D vector - Hit : The Hit class holds all the 'real' and simulated data of hits - Trk : The track class hols information about reconstructed or simulated data. - Evt : The Event class has information about Hit's Trk's etc. - Head : Holds the per-file Header information (for Monte Carlo files) Evt objects hold all the usual information on run number, trigger_type (trigger bits) etc. The tracks are stored in a vector called trks. There is a seperate container for mc-truth tracks: Evt::vector mc_trks. Similarly, hits are represented by the Hit class and are stored in the Evt in the vectors and mc_hits. For an easy introduction how to use and explore these classes, several jupyter notebooks are available. \subsection s2 Event reading: The EventFile class When using aanet, you will be using the Evt, Hit and Trk data structures mentioned above. An easy to use EventFile class is provided to read kmnet-dataformat offline ROOT files, which contain those objects. The EventFile class is able to read several other data-formats, which will be translated 'under the hood' to Evt objects, as if they were km3net-dataformat classes. As a result, an analysis written using the EventFile class can run on several input formats with no or minimal adaptation. Currently supported are: - km3net-dataformat offline (the 'native' aanet format) - km3net-dataformat online (the dataformat used for storing the files before reconstruction) - ascii files, also known as .evt files - JPP reconstruction files (if aanet is compiled with JPP support) - Antares AntDst files (via the 'antares plugin') A basic event loop looks as follows in python: \code{.py} import aa, ROOT f = ROOT.EventFile("inputfile.root") for evt in f : print(evt) #do things with the evt here. \endcode and like this in C++ \code{.cpp} EventFile f("inputfile.root"); for (auto& evt : f ) { print( evt ); } \endcode \subsection Applications The following utilities and applications are availabe: - aashowerfit.py - print_events.py - analyse_file_usage.py - plot_det.py - pyaa.py - zt_event_display.py - calcrate.py \subsection Examples An \ref examples directory is provided to illustrate some of the uses of these classes. \subsection s3 Astronomical Coordinate Transformations In the directory astro, aanet includes a full copy of the SLA positional astronomy library. The full library (almost) is made accessible trhough C++ in the \ref sla namespace. See the EquatorialCoords class for details. The coordinate transformations are tested against benchmark points in tests/astro.py See the EquatorialCoordiates class for details. \subsection s4 Shower Reconstruction \subsection s5 Web-based event display \subsection s6 DST-writer and production tools \subsection s7 Astronomical source searches \subsection s8 Antares compatiblity \subsection s9 Neutrino Fluxes */