Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Type unrolling jacobian transformation and covariance transport #295

Merged
merged 79 commits into from
Oct 17, 2022

Conversation

beomki-yeo
Copy link
Collaborator

This PR depends on #291 #292 #293 #294 so it will be horrible to review this until other PRs get merged.

The actual changes include the followings:

  1. Remove covariance_engine and jacobian_engine which only worked on cartesian coordinate
  2. Add coordinate-specific jacobian transformation into coordinate classes.
  3. Covariance transport is done with type unrolling using the actor chain
  4. Added unit tests for cartesian, polar and cylindrical coordinate (Unit test for line coordinate is still missing as it is not complete...)

Meanwhile, I tried to handle acts-project/acts#1477 which claims that (1) the path correction is missing some terms and (2) the path correction should be added to jacobian_transport rather than being multiplied.

It seems that considering all terms make the covariance transport better while the addition of the path correction doesn't make it better. But It is much likely that I made some mistakes somewhere :( Anyway assuming I didn't make any stupid mistake, I currently followed the multiplication as implemented in Acts repository.

@beomki-yeo beomki-yeo marked this pull request as draft September 7, 2022 04:01
@beomki-yeo
Copy link
Collaborator Author

Unit tests for polar and cylindrical coordinate are added. Maybe I will stop editing this PR from now on..
(I am not going to add a unit test for line coordinate in this PR)

@beomki-yeo
Copy link
Collaborator Author

beomki-yeo commented Oct 11, 2022

@niermann999 Rebased
Edit: Nah it keeps failing :/

Copy link
Contributor

@niermann999 niermann999 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I am still a bit confused by a lot of things, so some comments may be nonsense, sorry :)

core/include/detray/coordinates/cartesian2.hpp Outdated Show resolved Hide resolved
matrix_operator().template set_block(
jac_to_global, bound_to_free_rotation, e_free_pos0, e_bound_loc0);
// Set d(x,y,z)/d(loc0, loc1)
Derived<transform3_t>().set_bound_pos_to_free_pos_derivative(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this actually calculated the local to global jacobian?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes It is local to global (d(x,y,z)/d(loc0,loc1) means (loc0, loc1) -> (x,y,z) )

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was a bit confused by the name set_bound_pos_to_free_pos_derivative, I think :P

core/include/detray/coordinates/line2.hpp Show resolved Hide resolved
inline void set_unknown() { _status = navigation::status::e_unknown; }

DETRAY_HOST_DEVICE
inline void set_on_module() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where are these two functions used?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the path_correction.inl where I made a stupid actor ...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I skipped that for now, because I don't have much time :P. So this runs after the navigator, but before some other actor (such as the stepper, I assume) that only does things when the state is on_module?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an actor so it runs after the stepper and navigator.
It makes sure that track propagates the given path length (one full turn in path_correction.inl) until it reaches the targeted surface. All information from navigation.update() is ignored as the candidates are cleared for every actor call. This actor is only for testing purpose.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, I think this breaks encapsulation pretty badly. I am not entirely sure what this actor is trying to solve: it seems to try to bypass the navigator altogether? Does it try to insert a fake candidate to make the stepper take a certain step without re-navigating? If possible, I would prefer writing e.g. a dummy navigator that does nothing but use an externally provided intersection instead of modifying the existing one this way

tests/common/include/tests/common/masks_cylinder3.inl Outdated Show resolved Hide resolved
tests/common/include/tests/common/masks_ring2.inl Outdated Show resolved Hide resolved
tests/unit_tests/cuda/rk_stepper_cuda.cpp Outdated Show resolved Hide resolved
@beomki-yeo
Copy link
Collaborator Author

@niermann999 Changes from #303 seem causing some errors

GitLab CI Log

Running with gitlab-runner 15.0.0 (febb2a09)
on acts-ci-8-xl.cern.ch ZvV_9cR3
section_start:1665716082:resolve_secrets
Resolving secrets
section_end:1665716082:resolve_secrets
section_start:1665716082:prepare_executor
Preparing the "docker" executor
Using Docker executor with image ghcr.io/acts-project/ubuntu2004_cuda:v13 ...
Pulling docker image ghcr.io/acts-project/ubuntu2004_cuda:v13 ...
Using docker image sha256:f5afefe6e6c540f57aac2d3aa526d75c00f397b3083456507fc9c13527945cac for ghcr.io/acts-project/ubuntu2004_cuda:v13 with digest
ghcr.io/acts-project/ubuntu2004_cuda@sha256:48655bd3fccc642a56d4452eadb17abd93f9fa911416dbb58b644e15e0e2ddf7 ...
section_end:1665716084:prepare_executor
section_start:1665716084:prepare_script
Preparing environment
Running on runner-zvv9cr3-project-132265-concurrent-0 via c4a0c333f075...
section_end:1665716085:prepare_script
section_start:1665716085:get_sources
Getting source from Git repository
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/acts/ci-bridge/.git/
Checking out 12b1957a as main...
Removing src/

Skipping Git submodules setup
section_end:1665716086:get_sources
section_start:1665716086:step_script
Executing "step_script" stage of the job script
Using docker image sha256:f5afefe6e6c540f57aac2d3aa526d75c00f397b3083456507fc9c13527945cac for ghcr.io/acts-project/ubuntu2004_cuda:v13 with digest
ghcr.io/acts-project/ubuntu2004_cuda@sha256:48655bd3fccc642a56d4452eadb17abd93f9fa911416dbb58b644e15e0e2ddf7 ...
$ git clone $CLONE_URL src
Cloning into 'src'...
$ git -C src checkout $HEAD_SHA
Note: switching to '1028072bc0c4948437e006e8b66db5e7a4390f7f'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 1028072 Small fixes
$ cmake -S src -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DDETRAY_BUILD_TESTING=ON -DDETRAY_BUILD_CUDA=ON -DDETRAY_VC_PLUGIN=OFF
-DDETRAY_SMATRIX_PLUGIN=OFF -DDETRAY_EIGEN_PLUGIN=ON
-- The CXX compiler identification is GNU 9.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for a CUDA compiler
-- Looking for a CUDA compiler - /usr/local/cuda/bin/nvcc
-- Building VecMem as part of the Detray project
-- Looking for a HIP compiler
-- Looking for a HIP compiler - NOTFOUND
-- Looking for a SYCL compiler
-- Looking for a SYCL compiler - NOTFOUND
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Performing Test VECMEM_HAVE_PMR_MEMORY_RESOURCE
-- Performing Test VECMEM_HAVE_PMR_MEMORY_RESOURCE - Success
-- Using memory resource types from the std::pmr namespace
-- Performing Test VECMEM_HAVE_DEFAULT_RESOURCE
-- Performing Test VECMEM_HAVE_DEFAULT_RESOURCE - Success
-- The CUDA compiler identification is NVIDIA 11.3.109
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc - skipped
-- Detecting CUDA compile features
-- Detecting CUDA compile features - done
-- Found CUDAToolkit: /usr/local/cuda/include (found version "11.3.109")
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Building Algebra Plugins as part of the Detray project
-- Building Google Benchmark as part of the Algebra Plugins project
-- Failed to find LLVM FileCheck
-- Found Git: /usr/bin/git (found version "2.25.1")
-- git version: v0.0.0 normalized to 0.0.0
-- Version: 1.6.1
-- Looking for shm_open in rt
-- Looking for shm_open in rt - found
-- Performing Test HAVE_CXX_FLAG_STD_CXX11
-- Performing Test HAVE_CXX_FLAG_STD_CXX11 - Success
-- Performing Test HAVE_CXX_FLAG_WALL
-- Performing Test HAVE_CXX_FLAG_WALL - Success
-- Performing Test HAVE_CXX_FLAG_WEXTRA
-- Performing Test HAVE_CXX_FLAG_WEXTRA - Success
-- Performing Test HAVE_CXX_FLAG_WSHADOW
-- Performing Test HAVE_CXX_FLAG_WSHADOW - Success
-- Performing Test HAVE_CXX_FLAG_WSUGGEST_OVERRIDE
-- Performing Test HAVE_CXX_FLAG_WSUGGEST_OVERRIDE - Success
-- Performing Test HAVE_CXX_FLAG_PEDANTIC
-- Performing Test HAVE_CXX_FLAG_PEDANTIC - Success
-- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS
-- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS - Success
-- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32
-- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32 - Failed
-- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING
-- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING - Success
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS
-- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS - Success
-- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING
-- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING - Success
-- Performing Test HAVE_CXX_FLAG_WD654
-- Performing Test HAVE_CXX_FLAG_WD654 - Failed
-- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY
-- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY - Failed
-- Performing Test HAVE_CXX_FLAG_COVERAGE
-- Performing Test HAVE_CXX_FLAG_COVERAGE - Success
-- Performing Test HAVE_STD_REGEX
-- Performing Test HAVE_STD_REGEX
-- Performing Test HAVE_STD_REGEX -- success
-- Performing Test HAVE_GNU_POSIX_REGEX
-- Performing Test HAVE_GNU_POSIX_REGEX
-- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
-- Performing Test HAVE_POSIX_REGEX
-- Performing Test HAVE_POSIX_REGEX
-- Performing Test HAVE_POSIX_REGEX -- success
-- Performing Test HAVE_STEADY_CLOCK
-- Performing Test HAVE_STEADY_CLOCK
-- Performing Test HAVE_STEADY_CLOCK -- success
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Building Eigen3 as part of the Algebra Plugins project
-- The C compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11 - Success
-- Performing Test COMPILER_SUPPORT_std=cpp03
-- Performing Test COMPILER_SUPPORT_std=cpp03 - Success
-- Performing Test standard_math_library_linked_to_automatically
-- Performing Test standard_math_library_linked_to_automatically - Success
-- Standard libraries to link to explicitly: none
-- Performing Test COMPILER_SUPPORT_WERROR
-- Performing Test COMPILER_SUPPORT_WERROR - Success
-- Performing Test COMPILER_SUPPORT_pedantic
-- Performing Test COMPILER_SUPPORT_pedantic - Success
-- Performing Test COMPILER_SUPPORT_Wall
-- Performing Test COMPILER_SUPPORT_Wall - Success
-- Performing Test COMPILER_SUPPORT_Wextra
-- Performing Test COMPILER_SUPPORT_Wextra - Success
-- Performing Test COMPILER_SUPPORT_Wundef
-- Performing Test COMPILER_SUPPORT_Wundef - Success
-- Performing Test COMPILER_SUPPORT_Wcastalign
-- Performing Test COMPILER_SUPPORT_Wcastalign - Success
-- Performing Test COMPILER_SUPPORT_Wcharsubscripts
-- Performing Test COMPILER_SUPPORT_Wcharsubscripts - Success
-- Performing Test COMPILER_SUPPORT_Wnonvirtualdtor
-- Performing Test COMPILER_SUPPORT_Wnonvirtualdtor - Success
-- Performing Test COMPILER_SUPPORT_Wunusedlocaltypedefs
-- Performing Test COMPILER_SUPPORT_Wunusedlocaltypedefs - Success
-- Performing Test COMPILER_SUPPORT_Wpointerarith
-- Performing Test COMPILER_SUPPORT_Wpointerarith - Success
-- Performing Test COMPILER_SUPPORT_Wwritestrings
-- Performing Test COMPILER_SUPPORT_Wwritestrings - Success
-- Performing Test COMPILER_SUPPORT_Wformatsecurity
-- Performing Test COMPILER_SUPPORT_Wformatsecurity - Success
-- Performing Test COMPILER_SUPPORT_Wshorten64to32
-- Performing Test COMPILER_SUPPORT_Wshorten64to32 - Failed
-- Performing Test COMPILER_SUPPORT_Wlogicalop
-- Performing Test COMPILER_SUPPORT_Wlogicalop - Success
-- Performing Test COMPILER_SUPPORT_Wenumconversion
-- Performing Test COMPILER_SUPPORT_Wenumconversion - Failed
-- Performing Test COMPILER_SUPPORT_Wcpp11extensions
-- Performing Test COMPILER_SUPPORT_Wcpp11extensions - Failed
-- Performing Test COMPILER_SUPPORT_Wdoublepromotion
-- Performing Test COMPILER_SUPPORT_Wdoublepromotion - Success
-- Performing Test COMPILER_SUPPORT_Wshadow
-- Performing Test COMPILER_SUPPORT_Wshadow - Success
-- Performing Test COMPILER_SUPPORT_Wnopsabi
-- Performing Test COMPILER_SUPPORT_Wnopsabi - Success
-- Performing Test COMPILER_SUPPORT_Wnovariadicmacros
-- Performing Test COMPILER_SUPPORT_Wnovariadicmacros - Success
-- Performing Test COMPILER_SUPPORT_Wnolonglong
-- Performing Test COMPILER_SUPPORT_Wnolonglong - Success
-- Performing Test COMPILER_SUPPORT_fnochecknew
-- Performing Test COMPILER_SUPPORT_fnochecknew - Success
-- Performing Test COMPILER_SUPPORT_fnocommon
-- Performing Test COMPILER_SUPPORT_fnocommon - Success
-- Performing Test COMPILER_SUPPORT_fstrictaliasing
-- Performing Test COMPILER_SUPPORT_fstrictaliasing - Success
-- Performing Test COMPILER_SUPPORT_wd981
-- Performing Test COMPILER_SUPPORT_wd981 - Failed
-- Performing Test COMPILER_SUPPORT_wd2304
-- Performing Test COMPILER_SUPPORT_wd2304 - Failed
-- Performing Test COMPILER_SUPPORT_STRICTANSI
-- Performing Test COMPILER_SUPPORT_STRICTANSI - Failed
-- Performing Test COMPILER_SUPPORT_Qunusedarguments
-- Performing Test COMPILER_SUPPORT_Qunusedarguments - Failed
-- Performing Test COMPILER_SUPPORT_ansi
-- Performing Test COMPILER_SUPPORT_ansi - Success
-- Performing Test COMPILER_SUPPORT_OPENMP
-- Performing Test COMPILER_SUPPORT_OPENMP - Success
-- Found unsuitable Qt version "" from NOTFOUND
-- Looking for a Fortran compiler
-- Looking for a Fortran compiler - NOTFOUND
-- Found unsuitable Qt version "" from NOTFOUND
-- Qt4 not found, so disabling the mandelbrot and opengl demos
-- Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDES CHOLMOD_LIBRARIES)
-- Could NOT find UMFPACK (missing: UMFPACK_INCLUDES UMFPACK_LIBRARIES)
-- Could NOT find KLU (missing: KLU_INCLUDES KLU_LIBRARIES)
-- Could NOT find SuperLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES SUPERLU_VERSION_OK) (Required is at least version "4.0")
-- Checking for one of the modules 'hwloc'
-- A version of Pastix has been found but pastix_nompi.h does not exist in the include directory. Because Eigen tests require a version without MPI,
we disable the Pastix backend.

-- Configured Eigen 3.4.0

-- Available targets (use: make TARGET):
-- ---------+--------------------------------------------------------------
-- Target | Description
-- ---------+--------------------------------------------------------------
-- install | Install Eigen. Headers will be installed to:
-- | <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>
-- | Using the following values:
-- | CMAKE_INSTALL_PREFIX: /usr/local
-- | INCLUDE_INSTALL_DIR: include/eigen3
-- | Change the install location of Eigen headers using:
-- | cmake . -DCMAKE_INSTALL_PREFIX=yourprefix
-- | Or:
-- | cmake . -DINCLUDE_INSTALL_DIR=yourdir
-- doc | Generate the API documentation, requires Doxygen & LaTeX
-- blas | Build BLAS library (not the same thing as Eigen)
-- uninstall| Remove files installed by the install target
-- ---------+--------------------------------------------------------------

-- Building Vc as part of the Algebra Plugins project
-- Detected Compiler: GCC 9
-- Performing Test check_cxx_compiler_flag__std_c__14
-- Performing Test check_cxx_compiler_flag__std_c__14 - Success
-- Performing Test Vc_HAVE_SSE_SINCOS
-- Performing Test Vc_HAVE_SSE_SINCOS - Success
-- Performing Test Vc_HAVE_AVX_SINCOS
-- Performing Test Vc_HAVE_AVX_SINCOS - Success
-- Performing Test check_c_compiler_flag__W
-- Performing Test check_c_compiler_flag__W - Success
-- Performing Test check_cxx_compiler_flag__W
-- Performing Test check_cxx_compiler_flag__W - Success
-- Performing Test check_c_compiler_flag__Wall
-- Performing Test check_c_compiler_flag__Wall - Success
-- Performing Test check_cxx_compiler_flag__Wall
-- Performing Test check_cxx_compiler_flag__Wall - Success
-- Performing Test check_c_compiler_flag__Wswitch
-- Performing Test check_c_compiler_flag__Wswitch - Success
-- Performing Test check_cxx_compiler_flag__Wswitch
-- Performing Test check_cxx_compiler_flag__Wswitch - Success
-- Performing Test check_c_compiler_flag__Wformat
-- Performing Test check_c_compiler_flag__Wformat - Success
-- Performing Test check_cxx_compiler_flag__Wformat
-- Performing Test check_cxx_compiler_flag__Wformat - Success
-- Performing Test check_c_compiler_flag__Wchar_subscripts
-- Performing Test check_c_compiler_flag__Wchar_subscripts - Success
-- Performing Test check_cxx_compiler_flag__Wchar_subscripts
-- Performing Test check_cxx_compiler_flag__Wchar_subscripts - Success
-- Performing Test check_c_compiler_flag__Wparentheses
-- Performing Test check_c_compiler_flag__Wparentheses - Success
-- Performing Test check_cxx_compiler_flag__Wparentheses
-- Performing Test check_cxx_compiler_flag__Wparentheses - Success
-- Performing Test check_c_compiler_flag__Wmultichar
-- Performing Test check_c_compiler_flag__Wmultichar - Success
-- Performing Test check_cxx_compiler_flag__Wmultichar
-- Performing Test check_cxx_compiler_flag__Wmultichar - Success
-- Performing Test check_c_compiler_flag__Wtrigraphs
-- Performing Test check_c_compiler_flag__Wtrigraphs - Success
-- Performing Test check_cxx_compiler_flag__Wtrigraphs
-- Performing Test check_cxx_compiler_flag__Wtrigraphs - Success
-- Performing Test check_c_compiler_flag__Wpointer_arith
-- Performing Test check_c_compiler_flag__Wpointer_arith - Success
-- Performing Test check_cxx_compiler_flag__Wpointer_arith
-- Performing Test check_cxx_compiler_flag__Wpointer_arith - Success
-- Performing Test check_c_compiler_flag__Wcast_align
-- Performing Test check_c_compiler_flag__Wcast_align - Success
-- Performing Test check_cxx_compiler_flag__Wcast_align
-- Performing Test check_cxx_compiler_flag__Wcast_align - Success
-- Performing Test check_c_compiler_flag__Wreturn_type
-- Performing Test check_c_compiler_flag__Wreturn_type - Success
-- Performing Test check_cxx_compiler_flag__Wreturn_type
-- Performing Test check_cxx_compiler_flag__Wreturn_type - Success
-- Performing Test check_c_compiler_flag__pedantic
-- Performing Test check_c_compiler_flag__pedantic - Success
-- Performing Test check_cxx_compiler_flag__pedantic
-- Performing Test check_cxx_compiler_flag__pedantic - Success
-- Performing Test check_c_compiler_flag__Wshadow
-- Performing Test check_c_compiler_flag__Wshadow - Success
-- Performing Test check_cxx_compiler_flag__Wshadow
-- Performing Test check_cxx_compiler_flag__Wshadow - Success
-- Performing Test check_c_compiler_flag__Wundef
-- Performing Test check_c_compiler_flag__Wundef - Success
-- Performing Test check_cxx_compiler_flag__Wundef
-- Performing Test check_cxx_compiler_flag__Wundef - Success
-- Performing Test check_cxx_compiler_flag__Wold_style_cast
-- Performing Test check_cxx_compiler_flag__Wold_style_cast - Success
-- Performing Test check_cxx_compiler_flag__Wabi
-- Performing Test check_cxx_compiler_flag__Wabi - Success
-- Performing Test check_cxx_compiler_flag__fabi_version_0
-- Performing Test check_cxx_compiler_flag__fabi_version_0 - Success
-- Performing Test check_cxx_compiler_flag__fabi_compat_version_0
-- Performing Test check_cxx_compiler_flag__fabi_compat_version_0 - Success
-- Performing Test check_cxx_compiler_flag__ffp_contract_fast
-- Performing Test check_cxx_compiler_flag__ffp_contract_fast - Success
-- target changed from "" to "auto"
-- Detected CPU: broadwell
-- Performing Test check_cxx_compiler_flag__march_broadwell
-- Performing Test check_cxx_compiler_flag__march_broadwell - Success
-- Performing Test check_cxx_compiler_flag__msse2
-- Performing Test check_cxx_compiler_flag__msse2 - Success
-- Performing Test check_cxx_compiler_flag__msse3
-- Performing Test check_cxx_compiler_flag__msse3 - Success
-- Looking for C++ include pmmintrin.h
-- Looking for C++ include pmmintrin.h - found
-- Performing Test check_cxx_compiler_flag__mssse3
-- Performing Test check_cxx_compiler_flag__mssse3 - Success
-- Looking for C++ include tmmintrin.h
-- Looking for C++ include tmmintrin.h - found
-- Performing Test check_cxx_compiler_flag__msse4_1
-- Performing Test check_cxx_compiler_flag__msse4_1 - Success
-- Looking for C++ include smmintrin.h
-- Looking for C++ include smmintrin.h - found
-- Performing Test check_cxx_compiler_flag__msse4_2
-- Performing Test check_cxx_compiler_flag__msse4_2 - Success
-- Performing Test check_cxx_compiler_flag__mavx
-- Performing Test check_cxx_compiler_flag__mavx - Success
-- Looking for C++ include immintrin.h
-- Looking for C++ include immintrin.h - found
-- Performing Test check_cxx_compiler_flag__mfma
-- Performing Test check_cxx_compiler_flag__mfma - Success
-- Performing Test check_cxx_compiler_flag__mbmi2
-- Performing Test check_cxx_compiler_flag__mbmi2 - Success
-- Performing Test check_cxx_compiler_flag__mavx2
-- Performing Test check_cxx_compiler_flag__mavx2 - Success
-- Performing Test check_cxx_compiler_flag__mno_sse4a
-- Performing Test check_cxx_compiler_flag__mno_sse4a - Success
-- Performing Test check_cxx_compiler_flag__mno_xop
-- Performing Test check_cxx_compiler_flag__mno_xop - Success
-- Performing Test check_cxx_compiler_flag__mno_fma4
-- Performing Test check_cxx_compiler_flag__mno_fma4 - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512f
-- Performing Test check_cxx_compiler_flag__mno_avx512f - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512vl
-- Performing Test check_cxx_compiler_flag__mno_avx512vl - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512pf
-- Performing Test check_cxx_compiler_flag__mno_avx512pf - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512er
-- Performing Test check_cxx_compiler_flag__mno_avx512er - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512cd
-- Performing Test check_cxx_compiler_flag__mno_avx512cd - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512dq
-- Performing Test check_cxx_compiler_flag__mno_avx512dq - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512bw
-- Performing Test check_cxx_compiler_flag__mno_avx512bw - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512ifma
-- Performing Test check_cxx_compiler_flag__mno_avx512ifma - Success
-- Performing Test check_cxx_compiler_flag__mno_avx512vbmi
-- Performing Test check_cxx_compiler_flag__mno_avx512vbmi - Success
-- Performing Test check_cxx_compiler_flag__ftemplate_depth_128
-- Performing Test check_cxx_compiler_flag__ftemplate_depth_128 - Success
-- Performing Test check_cxx_compiler_flag__fPIC
-- Performing Test check_cxx_compiler_flag__fPIC - Success
-- Performing Test check_cxx_compiler_flag__fstack_protector
-- Performing Test check_cxx_compiler_flag__fstack_protector - Success
-- Performing Test check_cxx_compiler_flag__xSSE2
-- Performing Test check_cxx_compiler_flag__xSSE2 - Failed
-- Performing Test check_cxx_compiler_flag__xSSE3
-- Performing Test check_cxx_compiler_flag__xSSE3 - Failed
-- Performing Test check_cxx_compiler_flag__xSSSE3
-- Performing Test check_cxx_compiler_flag__xSSSE3 - Failed
-- Performing Test check_cxx_compiler_flag__xSSE4_1
-- Performing Test check_cxx_compiler_flag__xSSE4_1 - Failed
-- Performing Test check_cxx_compiler_flag__xAVX
-- Performing Test check_cxx_compiler_flag__xAVX - Failed
-- Performing Test check_cxx_compiler_flag__mxop
-- Performing Test check_cxx_compiler_flag__mxop - Success
-- Performing Test check_cxx_compiler_flag__mfma4
-- Performing Test check_cxx_compiler_flag__mfma4 - Success
-- Performing Test check_cxx_compiler_flag__xCORE_AVX2
-- Performing Test check_cxx_compiler_flag__xCORE_AVX2 - Failed
-- Detected Compiler: GCC 9
-- Detected CPU: broadwell
-- Building actsvg as part of the Detray project
-- Building 'actsvg::core' component
-- Building 'actsvg::meta' component
-- Building dfelibs as part of the Detray project
-- Building Thrust as part of the Detray project
-- Found Thrust: /builds/acts/ci-bridge/build/_deps/thrust-src/thrust/cmake/thrust-config.cmake (found version "1.15.0.0")
-- Found CUB: /builds/acts/ci-bridge/build/_deps/thrust-src/dependencies/cub/cub/cmake/cub-config.cmake (found version "1.15.0.0")
-- Building GoogleTest as part of the Detray project
-- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter
-- Building Google Benchmark as part of the Detray project
-- Fetching covfie as part of the Detray project
-- Building 'detray::core' component
-- Building 'detray::array' plugin
-- Building 'detray::eigen' plugin
-- Building 'detray::io' component
-- Repetitions for benchmarks: 1
-- Configuring done
-- Generating done
-- Build files have been written to: /builds/acts/ci-bridge/build
$ cmake --build build
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/allocator.cpp.o
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/details/memory_resource_base.cpp.o
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/arena.cpp.o
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/arena_memory_resource.cpp.o
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/identity_memory_resource.cpp.o
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/terminal_memory_resource.cpp.o
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/host_memory_resource.cpp.o
[ 0%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/binary_page_memory_resource.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/binary_page_memory_resource_impl.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/contiguous_memory_resource.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/instrumenting_memory_resource.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/choice_memory_resource.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/coalescing_memory_resource.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/conditional_memory_resource.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/debug_memory_resource.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/memory/details/unique_alloc_deleter_impl.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/utils/copy.cpp.o
[ 4%] Building CXX object _deps/vecmem-build/core/CMakeFiles/vecmem_core.dir/src/utils/memory_monitor.cpp.o
[ 4%] Linking CXX shared library ../../../lib/libvecmem_core.so
[ 4%] Built target vecmem_core
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/memory/cuda/device_memory_resource.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/memory/cuda/host_memory_resource.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/memory/cuda/managed_memory_resource.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/utils/cuda/copy.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/utils/cuda/async_copy.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/utils/cuda_error_handling.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/utils/cuda_wrappers.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/utils/select_device.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/utils/stream_wrapper.cpp.o
[ 8%] Building CXX object _deps/vecmem-build/cuda/CMakeFiles/vecmem_cuda.dir/src/utils/opaque_stream.cpp.o
[ 12%] Linking CXX shared library ../../../lib/libvecmem_cuda.so
[ 12%] Built target vecmem_cuda
[ 12%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_SSSE3.cpp
[ 12%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/avx_sorthelper_AVX.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/avx_sorthelper_AVX2+FMA+BMI2.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/sse_sorthelper_AVX.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/sse_sorthelper_AVX2+FMA+BMI2.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/sse_sorthelper_SSE2.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/sse_sorthelper_SSE4_1.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_AVX+FMA.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_AVX+XOP+FMA.cpp
[ 16%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_AVX+XOP+FMA4.cpp
[ 20%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_AVX.cpp
[ 20%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_AVX2+FMA+BMI2.cpp
[ 20%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_SSE+XOP+FMA4.cpp
[ 20%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_SSE2.cpp
[ 20%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_SSE3.cpp
[ 20%] Copy to /builds/acts/ci-bridge/build/_deps/vc-build/trigonometric_SSE4_1.cpp
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/src/const.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/src/cpuid.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/src/support_x86.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_SSE2.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_SSE3.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_SSSE3.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_SSE4_1.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_AVX.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_SSE+XOP+FMA4.cpp.o
[ 20%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_AVX+XOP+FMA4.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_AVX+XOP+FMA.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_AVX+FMA.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/trigonometric_AVX2+FMA+BMI2.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/sse_sorthelper_SSE2.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/sse_sorthelper_SSE4_1.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/sse_sorthelper_AVX.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/sse_sorthelper_AVX2+FMA+BMI2.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/avx_sorthelper_AVX.cpp.o
[ 24%] Building CXX object _deps/vc-build/CMakeFiles/Vc.dir/avx_sorthelper_AVX2+FMA+BMI2.cpp.o
[ 24%] Linking CXX static library ../../lib/libVc.a
[ 24%] Built target Vc
[ 28%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 28%] Linking CXX shared library ../../../lib/libgtest.so
[ 28%] Built target gtest
[ 28%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
[ 28%] Linking CXX shared library ../../../lib/libgtest_main.so
[ 28%] Built target gtest_main
[ 28%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/grids_axis.cpp.o
[ 28%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/grids_grid2.cpp.o
[ 28%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/grids_populator.cpp.o
[ 28%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/grids_serializer.cpp.o
[ 28%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/thrust_tuple.cpp.o
[ 28%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/tools_hash_tree.cpp.o
[ 28%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/tuple_accessor.cpp.o
[ 32%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/utils_local_object_finder.cpp.o
[ 32%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/utils_ranges.cpp.o
[ 32%] Building CXX object tests/unit_tests/core/CMakeFiles/detray_test_core.dir/utils_quadratic_equation.cpp.o
[ 32%] Linking CXX executable ../../../bin/detray_test_core
[ 32%] Built target detray_test_core
[ 32%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array_read_detector.dir/array_read_detector.cpp.o
[ 32%] Linking CXX executable ../../../bin/detray_test_array_read_detector
[ 32%] Built target detray_test_array_read_detector
[ 32%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_actor_chain.cpp.o
[ 32%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_annulus2D.cpp.o
[ 32%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_container.cpp.o
[ 32%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_coordinate_cartesian2.cpp.o
[ 32%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_coordinate_cartesian3.cpp.o
[ 32%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_coordinate_cylindrical2.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_coordinate_cylindrical3.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_coordinate_line2.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_coordinate_polar2.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_core.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_cylinder_intersection.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_cylinder.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_detector.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_geometry_volume_graph.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_geometry_linking.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_geometry_navigation.cpp.o
[ 36%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_geometry_scan.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_grid_axis.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_grid.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_grid_populator.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_grid_serializer.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_guided_navigator.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_helix_trajectory.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_intersection_kernel.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_line_intersection.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_line_stepper.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_line.cpp.o
[ 40%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_mask_store.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_materials.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_navigator.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_particle_gun.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_path_correction.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_planar_intersection.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_propagator.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_rectangle2D.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_ring2D.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_single3D.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_stepper.cpp.o
[ 44%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_surfaces_finder.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_telescope_detector.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_toy_geometry.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_track.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_transform_store.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_trapezoid2D.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_track_generators.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_unmasked.cpp.o
[ 48%] Building CXX object tests/unit_tests/array/CMakeFiles/detray_test_array.dir/array_volume.cpp.o
[ 48%] Linking CXX executable ../../../bin/detray_test_array
[ 48%] Built target detray_test_array
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_actor_chain.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_annulus2D.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_container.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_coordinate_cartesian2.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_coordinate_cartesian3.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_coordinate_cylindrical2.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_coordinate_cylindrical3.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_coordinate_line2.cpp.o
[ 48%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_coordinate_polar2.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_core.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_cylinder_intersection.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_cylinder.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_detector.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_geometry_volume_graph.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_geometry_linking.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_geometry_navigation.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_geometry_scan.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_grid_axis.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_grid.cpp.o
[ 52%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_grid_populator.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_grid_serializer.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_guided_navigator.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_helix_trajectory.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_intersection_kernel.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_line_intersection.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_line_stepper.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_line.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_mask_store.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_materials.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_navigator.cpp.o
[ 56%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_particle_gun.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_path_correction.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_planar_intersection.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_propagator.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_rectangle2D.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_ring2D.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_single3D.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_stepper.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_surfaces_finder.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_telescope_detector.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_toy_geometry.cpp.o
[ 60%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_track.cpp.o
[ 64%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_track_generators.cpp.o
[ 64%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_transform_store.cpp.o
[ 64%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_trapezoid2D.cpp.o
[ 64%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_unmasked.cpp.o
[ 64%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen.dir/eigen_volume.cpp.o
[ 64%] Linking CXX executable ../../../bin/detray_test_eigen
[ 64%] Built target detray_test_eigen
[ 64%] Building CXX object tests/unit_tests/eigen/CMakeFiles/detray_test_eigen_read_detector.dir/eigen_read_detector.cpp.o
[ 68%] Linking CXX executable ../../../bin/detray_test_eigen_read_detector
[ 68%] Built target detray_test_eigen_read_detector
[ 68%] Building CXX object tests/unit_tests/cuda/CMakeFiles/detray_test_eigen_cuda.dir/transform_store_cuda.cpp.o
[ 68%] Building CUDA object tests/unit_tests/cuda/CMakeFiles/detray_test_eigen_cuda.dir/transform_store_cuda_kernel.cu.o
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:38:73: error: 'ScanPolicyT' was not declared in this scope
38 | template <typename deduced_itr_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:38:126: error: 'SegmentedPolicyT' was not declared in this scope
38 | template <typename deduced_itr_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:38:117: error: parse error in template argument list
38 | template <typename deduced_itr_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:38:163: error: non-template 'type' used as template
38 | template <typename deduced_itr_t,
|
^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:38:163: note: use 'std::enable_if<is_same_v<, decltype
(std::begin(declval< >()))>, bool>::template type' to indicate that it is a template
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:40:2: error: 'unnamed' was not declared in this scope
40 | bool> = true>
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:42:55: error: 'm_end' has not been declared
42 | deduced_itr_t &&end)
| ^~~~~
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:42:60: error: expected '>' before '{' token
42 | deduced_itr_t &&end)
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:42:60: error: expected unqualified-id before '{' token
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:44:1: error: expected unqualified-id before '{' token
44 | m_end{std::forward<deduced_itr_t>(end)} {}
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:48:60: error: 'ScanPolicyT' was not declared in this scope
48 | typename deduced_range_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:48:83: error: non-template 'type' used as template
48 | typename deduced_range_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:48:83: note: use 'std::enable_if<range_v< >,
bool>::template type' to indicate that it is a template
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:49:2: error: 'unnamed' was not declared in this scope
49 | std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true>
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:50:68: error: 'm_end' has not been declared
50 | DETRAY_HOST_DEVICE constexpr subrange(deduced_range_t &&range)
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:50:73: error: expected '>' before '{' token
50 | DETRAY_HOST_DEVICE constexpr subrange(deduced_range_t &&range)
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:50:73: error: expected unqualified-id before '{' token
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:52:1: error: expected unqualified-id before '{' token
52 | m_end{detray::ranges::end(range)} {}
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:57:60: error: 'ScanPolicyT' was not declared in this scope
57 | typename deduced_range_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:57:83: error: non-template 'type' used as template
57 | typename deduced_range_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:57:83: note: use 'std::enable_if<range_v< >,
bool>::template type' to indicate that it is a template
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:58:2: error: 'unnamed' was not declared in this scope
58 | std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true>
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:60:58: error: 'm_end' has not been declared
60 | difference_t pos)
| ^~
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:60:63: error: expected '>' before '{' token
60 | difference_t pos)
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:60:63: error: expected unqualified-id before '{' token
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:62:1: error: expected unqualified-id before '{' token
62 | m_end{detray::ranges::next(m_begin)} {}
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:139: error: 'ScanPolicyT' was not declared in this scope
68 | typename value_t = detray::ranges::range_value_t<deduced_range_t>,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:150: error: template argument 1 is invalid
68 | typename value_t = detray::ranges::range_value_t<deduced_range_t>,
|
^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:158: error: template argument 1 is invalid
68 | typename value_t = detray::ranges::range_value_t<deduced_range_t>,
|
^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:167: error: expected template-argument before '&' token
68 | typename value_t = detray::ranges::range_value_t<deduced_range_t>,
|
^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:167: error: expected '>' before '&' token
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:233: error: 'ScanPolicyT' was not declared in this scope
68 | typename value_t = detray::ranges::range_value_t<deduced_range_t>,
|
^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:256: error: non-template 'type' used as template
68 | typename value_t = detray::ranges::range_value_t<deduced_range_t>,
|
^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:68:256: note: use 'std::enable_if<range_v< >,
bool>::template type' to indicate that it is a template
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:69:2: error: 'unnamed' was not declared in this scope
69 | std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:70:1: error: expected identifier before '<' token
70 | typename = typename std::remove_reference_t<volume_t>::volume_def>
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:70:1: error: expected '>' before '<' token
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:77:81: error: 'ScanPolicyT' was not declared in this scope
77 | typename deduced_range_t, typename index_range_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:77:104: error: non-template 'type' used as template
77 | typename deduced_range_t, typename index_range_t,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:77:104: note: use 'std::enable_if<range_v< >,
bool>::template type' to indicate that it is a template
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:78:2: error: 'unnamed' was not declared in this scope
78 | std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:78:60: error: parse error in template argument list
78 | std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true,
| ^~~~~~~~~~~~~~~~~~~~~
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:78:96: error: non-template 'type' used as template
78 | std::enable_if_t<detray::ranges::range_v<deduced_range_t>, bool> = true,
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:78:96: note: use 'std::enable_if<is_interval_v< >,
bool>::template type' to indicate that it is a template
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:79:2: error: 'unnamed' was not declared in this scope
79 | std::enable_if_t<detray::detail::is_interval_v<index_range_t>, bool> =
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:82:84: error: 'm_end' has not been declared
82 | index_range_t &&pos)
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:82:89: error: expected '>' before '{' token
82 | index_range_t &&pos)
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:82:89: error: expected unqualified-id before '{' token
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:86:1: error: expected unqualified-id before '{' token
86 | detray::detail::get<1>(pos))} {}
| ^
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp: In constructor
'detray::ranges::subrange<range_t>::subrange(deduced_range_t&&, const volume_t&)':
/builds/acts/ci-bridge/src/core/include/detray/utils/ranges/subrange.hpp:71:128: error: '_C1' was not declared in this scope
71 | DETRAY_HOST_DEVICE subrange(deduced_range_t &&range, const volume_t &vol)
| ^
make[2]: *** [tests/unit_tests/cuda/CMakeFiles/detray_test_eigen_cuda.dir/build.make:90:
tests/unit_tests/cuda/CMakeFiles/detray_test_eigen_cuda.dir/transform_store_cuda_kernel.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:14299: tests/unit_tests/cuda/CMakeFiles/detray_test_eigen_cuda.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
section_end:1665716751:step_script
section_start:1665716751:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1665716751:cleanup_file_variables
ERROR: Job failed: exit code 1

@beomki-yeo
Copy link
Collaborator Author

It's fixed after merging #314

Copy link
Contributor

@niermann999 niermann999 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure what this is trying to do, but given the approaching deadline, let's just get this in and clean up later

prop_state._heartbeat = true;
auto &navigation = prop_state._navigation;
auto &stepping = prop_state._stepping;
navigation.set_full_trust();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be possible, no actor should be able to raise the trust level arbitrarily

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My meaning is, this does not force the trust level to e_full_trust, if the stepper reduced the trust level first. It might not have the effect you seem to expect here

/// Update navigation trust level to full trust
DETRAY_HOST_DEVICE
inline void set_full_trust() {
    _trust_level = _trust_level <= navigation::trust_level::e_full
                       ? _trust_level
                       : navigation::trust_level::e_full;
}

This behaviour is very much intended.

Copy link
Contributor

@niermann999 niermann999 Oct 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Come to think of it, this method should be removed from the navigator state altogether. It has literally has no effect...

navigation.set_full_trust();

scalar residual = actor_state._path - stepping.path_length();
stepping.set_constraint(residual);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only makes sense if residual is smaller than the distance to the next surface (I don't know if it is?)

prop_state._heartbeat = false;
candidates.push_back({});
navigation.next()++;
navigation.set_on_module();
Copy link
Contributor

@niermann999 niermann999 Oct 17, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In principle at least, the navigator should figure this out on its own after you manipulate the current candidate. Can you explain what the issue is?

Copy link
Collaborator Author

@beomki-yeo beomki-yeo Oct 17, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reset the candidate vector every actor call (candidates.clear()) so I have to set the status manually. Now you might wonder why I am resetting the vector and push the element (candidates.push_back(is)): In the detector and track setup I made in path_correction.inl where the track should make a full turn starting from a surface, the navigation would abort with the original navigation algorithm because it cannot find any candidate surface.

I expected that you would not like the actor but I thought it is better than making a new navigator. At least I didn't add it in the propagator/actors directory.

Of course, the most desirable way is enhancing the existing navigator algorithm so that we can use it without any redundant actor class.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I am afraid of is, that adding an unsafe method to a class interface inevitably leads to people using it also in other contexts, which can lead to weird side effects and bugs. So, yes, you are right unfortunately, I am not a big fan of this change :p

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that sense, isn't set_statealso pretty dangerous?

Copy link
Contributor

@niermann999 niermann999 Oct 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its private and should hopefully only be callable by the navigator because its a friend class of the state

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But otherwise, you are right, of course, I would consider that dangerous, too

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one function that is even more dangerous, that I am also not happy about and that is set_volume. I just haven't figured out a better way yet. Probably we should use the state constructor to set the start volume of the propagation?

@beomki-yeo beomki-yeo merged commit f4478e5 into acts-project:main Oct 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants