ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
track_parametrization.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#include "detray/utils/concepts.hpp"
14
15namespace detray {
16
19enum bound_indices : unsigned int {
20 // Local position on the reference surface.
21 // This is intentionally named different from the position components in
22 // the other data vectors, to clarify that this is defined on a surface
23 // while the others are defined in free space.
24 e_bound_loc0 = 0u,
25 e_bound_loc1 = 1u,
26 // Direction angles
27 e_bound_phi = 2u,
28 e_bound_theta = 3u,
29 // Global inverse-momentum-like parameter, i.e. q/p or 1/p
30 // The naming is inconsistent for the case of neutral track parameters where
31 // the value is interpreted as 1/p not as q/p. This is intentional to avoid
32 // having multiple aliases for the same element and for lack of an
33 // acceptable
34 // common name.
35 e_bound_qoverp = 4u,
36 e_bound_time = 5u,
37 // Last uninitialized value contains the total number of components
38 e_bound_size,
39};
40
47enum free_indices : unsigned int {
48 // Spatial position
49 // The spatial position components must be stored as one continuous block.
50 e_free_pos0 = 0u,
51 e_free_pos1 = e_free_pos0 + 1u,
52 e_free_pos2 = e_free_pos0 + 2u,
53 // Time
54 e_free_time = 3u,
55 // (Unit) direction
56 // The direction components must be stored as one continuous block.
57 e_free_dir0 = 4u,
58 e_free_dir1 = e_free_dir0 + 1u,
59 e_free_dir2 = e_free_dir0 + 2u,
60 // Global inverse-momentum-like parameter, i.e. q/p or 1/p
61 // See BoundIndices for further information
62 e_free_qoverp = 7u,
63 // Last uninitialized value contains the total number of components
64 e_free_size,
65};
66
68template <concepts::algebra algebra_t>
70
72template <concepts::algebra algebra_t>
74
76template <concepts::algebra algebra_t>
78
80template <concepts::algebra algebra_t>
82
84template <concepts::algebra algebra_t>
86
89template <concepts::algebra algebra_t>
91
93template <concepts::algebra algebra_t>
95
98template <concepts::algebra algebra_t>
100
102template <concepts::algebra algebra_t>
104
106template <concepts::algebra algebra_t>
108
109} // namespace detray
Detray include(s).
Definition array_operators.hpp:18
dmatrix< algebra_t, 2, 3 > free_to_bound_jacobian_submatrix
Submatrix for free to bound Jacobians d(l0, l1) or d(phi, theta) over d(x,y,z) or d(nx,...
Definition track_parametrization.hpp:99
dmatrix< algebra_t, 1, e_free_size > free_to_path_matrix
Mapping from free to path.
Definition track_parametrization.hpp:103
dmatrix< algebra_t, e_free_size, 1 > free_vector
Vector type for free track parametrization.
Definition track_parametrization.hpp:69
dmatrix< algebra_t, e_free_size, e_free_size > free_matrix
Covariance matrix type for free track parametrization.
Definition track_parametrization.hpp:73
dmatrix< algebra_t, e_free_size, e_bound_size > bound_to_free_matrix
Mapping from bound to free track parameters.
Definition track_parametrization.hpp:85
dmatrix< algebra_t, e_bound_size, e_free_size > free_to_bound_matrix
Mapping from free to bound track parameters.
Definition track_parametrization.hpp:94
dmatrix< algebra_t, e_bound_size, 1 > bound_vector
Vector type for bound track parametrization.
Definition track_parametrization.hpp:77
dmatrix< algebra_t, e_free_size, 1 > path_to_free_matrix
Mapping from path to free.
Definition track_parametrization.hpp:107
free_indices
Components of a free track parameters vector.
Definition track_parametrization.hpp:47
bound_indices
Components of a bound track parameters vector.
Definition track_parametrization.hpp:19
dmatrix< algebra_t, e_bound_size, e_bound_size > bound_matrix
Covariance matrix type for bound track parametrization.
Definition track_parametrization.hpp:81
get_matrix_t< A, R, C, T > dmatrix
R by C matrix type for algebra A and value type T.
Definition algebra.hpp:88
dmatrix< algebra_t, 3, 2 > bound_to_free_jacobian_submatrix
Submatrix for bound to free Jacobians for d(x,y,z) or d(nx, ny, nz) over d(l0, l1) or d(phi,...
Definition track_parametrization.hpp:90