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 filesrunAraTestBedEventFileMaker.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 objectsCheckout 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. in ARA_ROOT_DIR
) - cmake will take care of the rest.
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)