http://www.hep.ucl.ac.uk/uhen/ara/araroot
ARA ROOT based software, AraRoot, comprises several libraries and executables.
libAraEvent.so
-- Contains all of the class definitions for storing and manipulating Ara Event and Housekeeping datalibAraDisplay.so
-- The library for AraDisplay (the MagicDisplay spin off)libAraWebPlotter.so
-- The library for the AraWebPlotterlibAraCorrelator.so
-- Used to correlate events using plane wave or distance to vertex approximations
makeIcrrEventTree
-- Program to convert the raw ARA TestBed / Station One data into a ROOT formatmakeAtriEventTree
-- Program to convert the raw ARA Atri electronics type station data into a ROOT formatAraWebRootFileMaker
-- Program to make ROOT files for the webplotterAraWebPlotter
-- Program that reads these files and plots stuffexampleLoop
-- An example of analysis code that illustrates to the user how to load AraRoot files, loop through them, create "Useful" objects and perform some sort of analysisexampleLoopL2
-- An example of analysis code that illustrates to the user how to process L0 or L1 (RawEvent or UsefulEvent) ROOT files and produce L2 files
runAraTestBedEventFileMaker.sh
-- Script for calling makeAraEventTree to create TestBed root filesrunAraOneEventFileMaker.sh
-- Script for calling makeAraEventTree to create Station One root filesrunAtriEventFileMaker.sh
-- Script for calling makeAraEventTree to create ATRI station root filesrunAtriEventFileMakerForcedStationId.sh
-- Script for calling makeAraEventTree to create ATRI station root files, but forcing a particular stationId into the event objects
- runAraDisplay.C -- Script for starting AraDisplay
- ROOT -- As the name ARA ROOT suggests this is needed
- FFTW3 -- Fastest Fourier Transform in the West - used for FFT fun
- libRootFftwWrapper -- a ROOT wrapper for FFTW 3 downloadable from Ryan Nichol's GitHub, with documentation here
- GSL -- Needed by ROOT's Mathmore library
- sqlite3 -- Need for loading of antenna information and station geometry
- CMake -- Cross platform Makefile generation - the current version of AraRoot has transitioned to using CMake instead of bespoke Makefiles - hopefully this will make things a bit easier for everybody to install things!
-
Checkout the code from the ARA Git repository, eg.:
git clone https://github.com/ara-software/AraRoot.git
-
Define the
ARA_UTIL_INSTALL_DIR
to point to the location you want the library installed (the library files will end up in(ARA_UTIL_INSTALL_DIR)/lib
and the header files in(ARA_UTIL_INSTALL_DIR)/include
and the executables in(ARA_UTIL_INSTALL_DIR)/bin)
. If this is not defined the installation directory will default to /usr/local (probably not ideal!). -
Define
ARA_ROOT_DIR
to point to the location where you cloned this repository into. -
Do
bash INSTALL.sh <MODE>
in the directory of the source code (i.e. inARA_ROOT_DIR
) - cmake will take care of the rest. should be one of the following:
- 0 - re-build bins / libs that have been modified
- 1 - re-build all
- 99 - re-build debugging mode - this will produce more verbose output from the build process
Create your .cxx
file in analysis and edit the analysis/CMakeLists.txt
file. You will need to copy the lines that involved "exampleLoop", replacing it with the name of your executable
You should then be able to run bash INSTALL.sh 0
which will notice that there is something that it hasn't built yet and do the (hopefully) right thing and build it for you.
The executable will be created in two loactions: ${ARA_ROOT_DIR}/build/analysis
and ${ARA_UTIL_INSTALL_DIR}/bin
.
There are a myriad of ways that one can run into problems with the software. The most common are path problems -- the bane of poorly organised code. By far the easiest way to use the ARA root code is to just set the ARA_UTIL_INSTALL_DIR
and have it point to the location you want to install all the packages. If things are set up correctly you will end up with a ARA_UTIL_INSTALL_DIR/include
and ARA_UTIL_INSTALL_DIR/lib
, ARA_UTIL_INSTALL_DIR/bin
, ARA_UTIL_INSTALL_DIR/scripts
and ARA_UTIL_INSTALL_DIR/share/araCalib
all populated with essential headers, libraries and calibration constants.
Most problems are fixed by running bash INSTALL.sh 1
to re-build AraRoot from scratch. If this doesn't fix things try removing everything from the ARA_UTIL_INSTALL_DIR
, re-installating libRootFftwWrapper
and then re-running bash INSTALL.sh
with either 1 or 99.
If problems persist, seek help!
ROOT6 support is here!
As a friendly reminder, you need to compile AraRoot with the same C++ standard used to compile ROOT, which was likely C++11. To enable this, you should uncomment the line in the CMakeLists that goes like set(CMAKE_CXX_STANDARD 11)