ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
bfield.hpp
1// This file is part of the ACTS project.
2//
3// Copyright (C) 2016 CERN for the benefit of the ACTS project
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9#pragma once
10
11// Project include(s)
12#include "detray/definitions/algebra.hpp"
13
14// Detray test include(s)
15#include "detray/test/common/bfield.hpp"
16
17// Covfie include(s)
18#include <covfie/core/backend/transformer/affine.hpp>
19#include <covfie/core/backend/transformer/clamp.hpp>
20#include <covfie/core/backend/transformer/linear.hpp>
21#include <covfie/core/backend/transformer/strided.hpp>
22#include <covfie/core/vector.hpp>
23#include <covfie/cuda/backend/primitive/cuda_device_array.hpp>
24
25namespace detray::bfield::cuda {
26
27// Inhomogeneous field (cuda)
28template <typename T>
29using inhom_bknd_t = covfie::backend::affine<
30 covfie::backend::linear<covfie::backend::clamp<covfie::backend::strided<
31 covfie::vector::vector_d<std::size_t, 3>,
32 covfie::backend::cuda_device_array<covfie::vector::vector_d<T, 3>>>>>>;
33
34// Test that the type is a valid backend for a CUDA field
35static_assert(covfie::concepts::field_backend<inhom_bknd_t<float>>,
36 "inhom_bknd_t is not a valid CUDA field backend type");
37
38} // namespace detray::bfield::cuda