4 #ifndef CALIBRATORREGISTRY_H
5 #define CALIBRATORREGISTRY_H
14 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
16 template <std::
size_t DIM>
18 template <std::
size_t DIM>
21 template <std::
size_t DIM,
typename measurement_t>
24 (
const Acts::GeometryContext&,
25 const Acts::CalibrationContext&,
26 const measurement_t &,
27 const bound_track_parameters_t &)>;
30 template <std::
size_t DIM,
typename T_ValueType>
35 template <std::
size_t DIM,
typename T_ValueType>
42 template <
typename T_ContainerPtr>
43 using container_type = std::remove_cv_t<std::remove_pointer_t<T_ContainerPtr> >;
48 template <
typename T_Container>
52 template <
typename T_ContainerWithDimension>
53 using type =
Calibrator< T_ContainerWithDimension::dimension() , std::remove_cv_t<std::remove_pointer_t< value_type<T_ContainerWithDimension> > > >;
56 using CalibratorVariant = MakeDerivedVariant::MakeVariant< CalibratorType, measurement_container_variant_t >::variant_type;
58 std::array< CalibratorVariant, std::variant_size_v<measurement_container_variant_t> >
m_calibrators;
60 template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
67 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
68 template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
74 return calibrator_arr[0];
77 using Container = std::remove_cv_t<std::remove_pointer_t<decltype( MakeDerivedVariant::lvalue(std::get<N-1>(measurement_container_variant_t{})))> >;
80 using BaseElementType =
typename std::remove_cv_t<std::remove_pointer_t< ElementType > >;
82 return calibrator_arr[
N-1];
85 return getCalibratorGeneric<DIM, T_ValueType,
N-1>(calibrator_arr);
90 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
91 template <std::
size_t DiM,
typename T_ValueType>
96 assert( universial.index() < m_calibrators.size() );
97 m_calibrators.at(universial.index()) = std::move( universial);
100 template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
101 template <std::
size_t DIM,
typename T_ValueType>
106 const CalibratorVariant &universal = getCalibratorGeneric< DIM, T_ValueType,std::variant_size_v<measurement_container_variant_t> >(m_calibrators);
107 return std::get<Calibrator<DIM, T_ValueType> >(universal);