The ALICE O2 software repository contains the framework, as well as the detector specific, code for the reconstruction, calibration and simulation for the ALICE experiment at CERN for Run 3 and 4. It also encompasses the commonalities such as the data format, and the global algorithms like the global tracking. Other repositories in AliceO2Group contain a number of large common modules, for instance for Monitoring or Configuration.
The main entry point for O2 information is here. A quickstart page can be found under https://aliceo2group.github.io/.
In order to build and install O2 with aliBuild you can follow this tutorial.
We use JIRA to track issues. Report a bug here.
The Coding Guidelines are here. See below how to format your code accordingly.
Documentation pages: https://aliceo2group.github.io/AliceO2/.
make doc
will generate the doxygen documentation.
To access the resulting documentation, open doc/html/index.html in your
build directory. To install the documentation when calling make install
turn on the variable DOC_INSTALL
.
Doxygen documentation is also available online here
The code organisation is described here. The build system (cmake) is described here.
The project uses clang-format
to push for a common code formatting according
the the clang-format
configuration files in this repository. With an adiabatic
approach, all changes have to follow the formatting rules. A tool script can be
used to integrate the formatting into git
and suggest formatting only for
changed lines.
Use alienv to load clang
which includes clang-format
: alienv load Clang/latest
If Clang is not yet build, use alibuild : aliBuild build --defaults o2 Clang
If you use your own clang installation, make sure you have at least version 3.9.
The git-clang-format
Python script integrates clang-format
into git
.
Put it somewhere in your path and ensure that it is executable, e.g.
cd $HOME
mkdir -p bin
cd bin
wget llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format
chmod u+x git-clang-format
Note: installation of the script will be added to build of AliceO2 software stack.
Now, git clang-format
will invoke clang-format
on the changes in current files
or a specific commit. E.g. for the last commit
git clang-format HEAD~1
Or for all commits done with respect to the remote branch state
git clang-format origin/dev
Show updated version of complete file :
clang-format -style=file SOURCEFILE
Directly apply the style to file :
clang-format -style=file -i SOURCEFILE
A number of config files are available here for various IDEs.