GithubHelp home page GithubHelp logo

dberzano / aliceo2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aliceo2group/aliceo2

0.0 1.0 0.0 83.32 MB

O2 software project for the ALICE experiment at CERN

License: GNU General Public License v3.0

CMake 1.54% C 7.82% C++ 89.34% Shell 0.36% GLSL 0.45% TeX 0.03% Python 0.05% Cuda 0.25% HTML 0.12% Emacs Lisp 0.04%

aliceo2's Introduction

ALICE O2 software

codecov JIRA

Scope

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.

Website

The main entry point for O2 information is here. A quickstart page can be found under https://aliceo2group.github.io/.

Installation

In order to install with aliBuild you can follow this tutorial.

Issue tracking system

We use JIRA to track issues. Report a bug here.

Coding guidelines

The Coding Guidelines are here. See below how to format your code accordingly.

Doxygen

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

Build system (cmake) and directory structure

The code organisation is described here. The build system (cmake) is described here.

Formatting

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.

Install clang-format

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.

Install clang-format git integration

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.

Checking formatting

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
Checking files

Show updated version of complete file :

clang-format -style=file SOURCEFILE

Directly apply the style to file :

clang-format -style=file -i SOURCEFILE

Using an IDE

A number of config files are available here for various IDEs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.