Erik Fröjdh 34f0d9f679
Build on RHEL9 / build (push) Successful in 2m55s
Build on RHEL8 / build (push) Successful in 3m39s
Run tests using data on local RHEL8 / build (push) Failing after 4m43s
Drop detector type and quad flag from the gap pixel API
insert_gap_pixels and gapped_shape only used the detector type to reject
anything but Jungfrau and Eiger, and the quad flag only to shrink the
module width to 512. Both Jungfrau and Eiger use 256x256 pixel chips in
1024x512 modules, and an Eiger quad is 512x512 pixels, so its only chip
boundaries are at pixel 256 and the module width never matters. The
layout is now fixed and both functions take just the image, its ROI and
the GapPixels configuration, in C++ and in Python.

RawFile keeps rejecting gap pixels for other detector types with
std::invalid_argument, now checked in the reader instead of the layout.
2026-10-13 12:35:36 +02:00
2026-06-15 11:36:03 +02:00
2026-10-09 11:36:24 +02:00
2026-10-09 08:16:59 +02:00
2026-09-24 09:09:37 +02:00
2026-10-09 11:36:24 +02:00
2026-09-24 09:09:37 +02:00
2026-09-24 09:09:37 +02:00
2026-10-08 15:36:46 +02:00
2024-11-11 19:59:55 +01:00
2025-03-20 12:52:04 +01:00
2026-10-08 15:36:46 +02:00
2025-11-20 09:01:28 +01:00
2026-10-09 11:36:24 +02:00
2026-09-24 09:09:37 +02:00
2026-10-13 11:57:36 +02:00
2026-09-24 09:09:37 +02:00
2026-09-30 16:55:00 +02:00

aare

Data analysis library for PSI hybrid detectors

Documentation

Detailed documentation including installation can be found in Documentation

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 by Meta Platforms.
  • src/NumpyHelpers.cpp is MIT, from 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)

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

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

export PYTHONPATH=path_to_aare/aare/build:$PYTHONPATH

Install using conda/mamba

#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

#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

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
Languages
Jupyter Notebook 60.1%
C++ 34.8%
Python 4.3%
CMake 0.8%