10 #include <type_traits>
34 template <
class ChargePolicy>
38 "ChargePolicy must either be 'Acts::ChargedPolicy' or "
39 "'Acts::NeutralPolicy");
68 auto casted =
dynamic_cast<decltype(this)
>(&rhs);
87 double time()
const {
return get<ParDef::eT>(); }
127 template <ParID_t par>
137 template <ParID_t par>
170 template <
typename T = ChargePolicy,
176 detail::coordinate_transformation::parameters2charge(parValues)),
187 template <
typename T = ChargePolicy,
244 template <
typename T>
247 m_vMomentum = detail::coordinate_transformation::parameters2globalMomentum(
257 m_vPosition = detail::coordinate_transformation::parameters2globalPosition(
264 std::ostream&
print(std::ostream& sl)
const {
266 auto old_precision = sl.precision(7);
267 auto old_flags = sl.setf(std::ios::fixed);
269 sl <<
" * TrackParameters: ";
271 sl <<
" * charge: " <<
charge() << std::endl;
273 sl <<
" * covariance matrix:\n" << *
covariance() << std::endl;
275 sl <<
" * covariance matrix:\nnull" << std::endl;
277 sl <<
" * corresponding global parameters:" << std::endl;
278 sl <<
" * position (x y z) = (" <<
position().transpose() <<
")"
280 sl <<
" * momentum (px py pz) = (" <<
momentum().transpose() <<
")"
284 sl.precision(old_precision);