Skip to content

Repository files navigation

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++20 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:

  • The C++ compiler must support C++20
  • The CUDA Toolkit version must be greater than major version 11

Dependency

  • CMake

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

A number of cmake preset configurations are provided and can be listed by:

cmake -S detray --list-presets

For a developer build, the dev-fp32 and dev-fp64 configurations are available (fp: floating point precision):

cmake -S detray -B detray-build --preset dev-fp32

The developer presets will fetch all dependencies, but not automatically trigger the build of additional detray components. For example, in order to trigger the build of the unit tests, the corresponding option needs to be specified:

cmake -S detray -B detray-build --preset dev-fp32 \
-DDETRAY_BUILD_UNITTESTS=ON

A full build, containing all components (e.g. tests and benchmarks), can be configured using the full-fp32 and full-fp64 presets.

The following cmake options are available and can also be specified explicitly for any preset:

OptionDescriptionDefault
DETRAY_BUILD_CUDABuild the CUDA sources included in detrayON (if available)
DETRAY_BUILD_SYCLBuild the SYCL sources included in detrayOFF
DETRAY_BUILD_TEST_UTILSBuild the detray test utilities library (contains e.g. test detectors)OFF
DETRAY_BUILD_UNITTESTSBuild the detray unit testsOFF
DETRAY_BUILD_INTEGRATIONTESTSBuild the detray integration testsOFF
DETRAY_BUILD_ALL_TESTSBuild the detray unit and integration testsOFF
DETRAY_BUILD_BENCHMARKSBuild the detray benchmarksOFF
DETRAY_BUILD_CLI_TOOLSBuild the detray command line toolsOFF
DETRAY_BUILD_TUTORIALSBuild the examples of detrayOFF
DETRAY_CUSTOM_SCALARTYPEFloating point precisiondouble
DETRAY_EIGEN_PLUGINBuild Eigen math pluginOFF
DETRAY_SMATRIX_PLUGINBuild ROOT/SMatrix math pluginOFF
DETRAY_VC_AOS_PLUGINBuild Vc based AoS math pluginOFF
DETRAY_VC_SOA_PLUGINBuild Vc based SoA math plugin (currently only supports the ray-surface intersectors)OFF
DETRAY_SVG_DISPLAYBuild ActSVG display moduleOFF

Continuous benchmark

Monitoring the propagation speed with the toy geometry

About

Test library for detector surface intersection

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages