4 #ifndef CALIBRATORREGISTRY_H
5 #define CALIBRATORREGISTRY_H
15 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
17 template <std::
size_t DIM>
19 template <std::
size_t DIM>
22 template <std::
size_t DIM,
typename measurement_t>
25 (
const Acts::GeometryContext&,
26 const Acts::CalibrationContext&,
27 const measurement_t &,
28 const bound_track_parameters_t &)>;
31 template <std::
size_t DIM,
typename T_ValueType>
36 template <std::
size_t DIM,
typename T_ValueType>
43 template <
typename T_ContainerPtr>
44 using container_type = std::remove_cv_t<std::remove_pointer_t<T_ContainerPtr> >;
49 template <
typename T_Container>
53 template <
typename T_ContainerWithDimension>
54 using type =
Calibrator< T_ContainerWithDimension::dimension() , std::remove_cv_t<std::remove_pointer_t< value_type<T_ContainerWithDimension> > > >;
59 std::array< CalibratorVariant, std::variant_size_v<measurement_container_variant_t> >
m_calibrators;
61 template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
68 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
69 template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
75 return calibrator_arr[0];
78 using Container = std::remove_cv_t<std::remove_pointer_t<decltype( ActsTrk::detail::MakeDerivedVariant::lvalue(std::get<N-1>(measurement_container_variant_t{})))> >;
81 using BaseElementType =
typename std::remove_cv_t<std::remove_pointer_t< ElementType > >;
83 return calibrator_arr[
N-1];
86 return getCalibratorGeneric<DIM, T_ValueType,
N-1>(calibrator_arr);
91 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
92 template <std::
size_t DiM,
typename T_ValueType>
97 assert( universial.index() < m_calibrators.size() );
98 m_calibrators.at(universial.index()) = std::move( universial);
101 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
102 template <std::
size_t DIM,
typename T_ValueType>
107 const CalibratorVariant &universal = getCalibratorGeneric< DIM, T_ValueType,std::variant_size_v<measurement_container_variant_t> >(m_calibrators);
108 return std::get<Calibrator<DIM, T_ValueType> >(universal);