# Acts Common Tracking Software
or *A Common Tracking Software* if you do not like recursive acronyms
[](https://doi.org/10.5281/zenodo.5141418)
[](https://mattermost.web.cern.ch/acts/)
[](https://sonarcloud.io/summary/new_code?id=acts-project_acts)
[](https://github.com/acts-project/acts/releases)
[](https://github.com/acts-project/acts/actions)
[](https://acts-project.github.io/metrics/)
Acts is an experiment-independent toolkit for (charged) particle track
reconstruction in (high energy) physics experiments implemented in modern C++.
More information can be found in the [Acts documentation](https://acts.readthedocs.io/).
## Quick start
Acts is developed in C++ and is build using [CMake](https://cmake.org). Building
the core library requires a C++20 compatible compiler,
[Boost](https://www.boost.org), and [Eigen](https://eigen.tuxfamily.org). The
following commands will clone the repository, configure, and build the core
library
```sh
git clone https://github.com/acts-project/acts
cmake -B -S
cmake --build
```
For more details, e.g. specific versions and additional dependencies, have a
look at the [getting started guide](docs/getting_started.md). If you find a bug,
have a feature request, or want to contribute to Acts, have a look at the
[contribution guidelines](CONTRIBUTING.rst).
## Versioning and public API
Release versions follow [semantic versioning](https://semver.org/spec/v2.0.0.html)
to indicate whether a new version contains breaking changes within the public API.
Currently, only a limited part of the visible API is considered the public API
and subject to the semantic versioning rules. The details are outlined in the
[versioning and public API documentation](docs/versioning.rst).
## Repository organization
The repository contains all code of the Acts projects, not just the core library
that a physics experiment is expected to use as part of its reconstruction code.
All optional components are disabled by default. Please see the
[getting started guide](docs/getting_started.md) on how-to enable them.
- `Core/` contains the core library that provides functionality in the `Acts`
namespace.
- `Plugins/` contains plugins for core functionality that requires
additional external packages. The functionality also resides in the `Acts`
namespace.
- `Fatras/` provides fast track simulation tools based on the core
library. This is not part of the core functionality and thus resides in the
separate `ActsFatras` namespace.
- `Examples/` contains simulation and reconstruction examples. These are
internal tools for manual full-chain development and tests and reside in
the `ActsExamples` namespace.
- `Tests/` contains automated unit tests, integration tests, and
(micro-)benchmarks.
- `thirdparty/` contains external dependencies that are usually not available
through the system package manager.
## Authors and license
Contributors to the Acts project are listed in the [AUTHORS](AUTHORS) file.
The Acts project is published under the terms of the Mozilla Public License, v. 2.0.
A copy of the license can be found in the [LICENSE](LICENSE) file or at
https://mozilla.org/MPL/2.0/ .
The Acts project contains copies of the following external packages:
- [OpenDataDetector](https://github.com/acts-project/OpenDataDetector)
licensed under the MPLv2 license.