Files
aare/README.md
2026-09-24 09:09:37 +02:00

108 lines
2.8 KiB
Markdown

# aare
Data analysis library for PSI hybrid detectors
## Documentation
Detailed documentation including installation can be found in [Documentation](https://slsdetectorgroup.github.io/aare/)
## License
This project is licensed under the MPL-2.0 license.
See the LICENSE file or https://www.mozilla.org/en-US/MPL/ for details.
Two files contain code from other projects and keep their original licenses:
- `include/aare/ProducerConsumerQueue.hpp` is Apache-2.0, from
[folly](https://github.com/facebook/folly) by Meta Platforms.
- `src/NumpyHelpers.cpp` is MIT, from
[libnpy](https://github.com/llohse/libnpy) by Leon Merten Lohse.
The full license texts are in the `LICENSES` directory.
The Python wheels and conda packages also contain Minuit2
(LGPL-2.1-or-later), {fmt} and nlohmann/json (MIT), and pybind11
(BSD-3-Clause), which CMake downloads at build time. See
`THIRD-PARTY-NOTICES.txt` for their notices.
## Build and install
Prerequisites
- cmake >= 3.14
- C++17 compiler (gcc >= 8)
- python >= 3.10
### Development install (for Python)
```bash
git clone git@github.com:slsdetectorgroup/aare.git --branch=v1 #or using http...
mkdir build
cd build
#configure using cmake
cmake ../aare -DAARE_PYTHON_BINDINGS=ON
#build (replace 4 with the number of threads you want to use)
make -j4
```
Now you can use the Python module from your build directory
```python
import aare
f = aare.File('Some/File/I/Want_to_open_master_0.json')
```
To run from other folders either add the path to your conda environment using conda-build or add the module to your PYTHONPATH
```bash
export PYTHONPATH=path_to_aare/aare/build:$PYTHONPATH
```
### Install using conda/mamba
```bash
#enable your env first!
conda install aare -c slsdetectorgroup # installs latest version
```
### Install to a custom location and use in your project
Working example in: https://github.com/slsdetectorgroup/aare-examples
```bash
#build and install aare
git clone git@github.com:slsdetectorgroup/aare.git --branch=v1 #or using http...
mkdir build
cd build
#configure using cmake
cmake ../aare -DCMAKE_INSTALL_PREFIX=/where/to/put/aare
#build (replace 4 with the number of threads you want to use)
make -j4
#install
make install
#Now configure your project
cmake .. -DCMAKE_PREFIX_PATH=SOME_PATH
```
### Local build of conda pkgs
```bash
conda build . --variants="{python: [3.11, 3.12, 3.13]}"
```
## Developer's guide
We are looking forward to your contributions via pull requests!
If you want to fix an existing bug or propose a new feature:
1. Install `pre-commit` python package and setup it `pre-commit install`
2. Create a new branch with `git branch branch_name`
3. Implement your changes and make a commit (`pre-commit` will check your code automatically)
4. Push your commit and open a pull request if needed