26 template <
typename charge_t>
45 std::optional<CovarianceMatrix>
cov = std::nullopt)
48 pos4[
eTime], dir, (q !=
Scalar(0)) ? (q / p) : (1 / p)),
50 assert((0 <= p) and
"Absolute momentum must be positive");
62 template <
typename T = charge_t,
63 std::enable_if_t<std::is_default_constructible_v<T>,
int> = 0>
66 std::optional<CovarianceMatrix>
cov = std::nullopt)
82 std::optional<CovarianceMatrix>
cov = std::nullopt)
84 pos4.segment<3>(
ePos0),
87 pos4[
eTime], phi, theta, (q !=
Scalar(0)) ? (q / p) : (1 / p)),
89 assert((0 <= p) and
"Absolute momentum must be positive");
102 template <
typename T = charge_t,
103 std::enable_if_t<std::is_default_constructible_v<T>,
int> = 0>
106 std::optional<CovarianceMatrix>
cov = std::nullopt)
108 pos4.segment<3>(
ePos0),