acts-project / detray

Test library for detector surface intersection
Mozilla Public License 2.0
10 stars 18 forks source link

detray

Detray is part of the ACTS project (R&D line for parallelization), the ACTS project can be found: https://github.com/acts-project/acts.

This is a C++17 header only library for detector surface intersections using different algebra plugin libraries. It follows the navigation and propagation concept of ACTS, however, with an attempt to create a geometry without polymorphic inheritance structure.

Requirements and dependencies

OS & compilers:

Dependency

Getting started

The respository is meant to be possible to build "out of the box", with standard CMake build procedures.

git clone https://github.com/acts-project/detray.git
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -S detray -B detray-build
cmake --build detray-build

For tests and benchmarks with the inhomogeneous magnetic field, the ODD field in covfie format should be downloaded and the environment variable should be set.

cd detray/data
bash detray_data_get_files.sh
export DETRAY_BFIELD_FILE="${PWD}/odd-bfield_v0_9_0.cvf"

Build options

Option Description Default
DETRAY_BUILD_CUDA Build the CUDA sources included in detray ON (if available)
DETRAY_BUILD_SYCL Build the SYCL sources included in detray OFF
DETRAY_BUILD_TEST_UTILS Build the detray test utilities library OFF
DETRAY_BUILD_UNITTESTS Build the detray unit tests OFF
DETRAY_BUILD_INTEGRATIONTESTS Build the detray integration tests and associated command line tools OFF
DETRAY_BUILD_BENCHMARKS Build the detray benchmarks OFF
DETRAY_BUILD_TUTORIALS Build the examples of detray OFF
DETRAY_CUSTOM_SCALARTYPE Floating point precision double
DETRAY_EIGEN_PLUGIN Build Eigen math plugin ON
DETRAY_SMATRIX_PLUGIN Build ROOT/SMatrix math plugin OFF
DETRAY_VC_PLUGIN Build Vc based math plugin ON
DETRAY_SVG_DISPLAY Build ActSVG display module OFF

Continuous benchmark

Monitoring the propagation speed with the toy geometry