Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
HAL

Heavy ion Analysis Libraries

Framework for analysis of the collisions of heavy ions.

prerequisites

This software requires:

  • ROOT 6
  • gls-lib (GNU scientific libraries)
  • cmake

installation

  1. enter your HAL directory, and make build directory, enter there:
    
    cd HAL
    mkdir build
    cd build
    
  2. Now call cmake to build software:
    
    
    cmake -DCMAKE_INSTALL_PREFIX=[place to install] .. 
    make & make install #optionally to use [N] cores make -j[N] && make install
Usually i install HAL in "inst" directory next to "build" directory:

cmake -DCMAKE_INSTALL_PREFIX=../inst ..

usage

To use hal you should source the proper file:

source [INSTALL_DIRECTORY]/bin/hal_config.sh

Additional parameters for cmake

Sometimes is required to set some additional parameters to HAL:
  • CMAKE_CXX_STANDARD - sets cmake standard by hand (default is 17) - note: this standard should be compatible with standard used for ROOT compilation. To check ROOT compilation flag type <root-config –cflags> e.g.: if output contains -std=c++17 it means that your ROOT was compiled with standard 17. In most cases it is not necessary to set this flag
  • JSROOT_DIR=[path] - sets [path] to custom JS ROOT (can be used if HAL is not compatible with JSROOT installed with ROOT)
  • FAIRROOT=OFF - disables compilation with FairRoot even if FairRoot is found in system
  • EXAMPLES=ON - enable examples
Note: to use the option set -D[option] flag e.g., -DEXAMPLES=ON during calling cmake

Applications

This software contains not only libraries but also few applications:
  • hal-report generates HTML report, unfortunatelly jsroot will not work directly you have to setup a sever or pretend that you are setup the server (e.g., python3 -m http.server called inside of report directory)
  • hal-merger for efficient merging of many HAL files
  • hal-jobs to submit jobs on cluster without painfull BASH
  • hal-cmake a helper for fast buidlign libraries/classes for cuts

To do

  • simplification of buffer class - using pointers instead of int maps?
  • std::fuction for custom class cuts?
  • generator of simple cuts on macro level