4#ifndef CALIBRATORREGISTRY_H
5#define CALIBRATORREGISTRY_H
8#include "Acts/Utilities/Delegate.hpp"
9#include "Acts/Geometry/GeometryContext.hpp"
10#include "Acts/Utilities/CalibrationContext.hpp"
18template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
20 template <std::
size_t DIM>
22 template <std::
size_t DIM>
25 template <std::
size_t DIM,
typename measurement_t>
28 (
const Acts::GeometryContext&,
29 const Acts::CalibrationContext&,
30 const measurement_t &,
31 const bound_track_parameters_t &)>;
34 template <std::
size_t DIM,
typename T_ValueType>
39 template <std::
size_t DIM,
typename T_ValueType>
46 template <
typename T_ContainerPtr>
47 using container_type = std::remove_cv_t<std::remove_pointer_t<T_ContainerPtr> >;
52 template <
typename T_Container>
53 using value_type =
typename MeasurementTypeTraits::template MeassurementContainerValueType<typename T_Container::container_type >;
56 template <
typename T_ContainerWithDimension>
57 using type =
Calibrator< T_ContainerWithDimension::dimension() , std::remove_cv_t<std::remove_pointer_t< value_type<T_ContainerWithDimension> > > >;
62 std::array< CalibratorVariant, std::variant_size_v<measurement_container_variant_t> >
m_calibrators;
64 template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
71template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
72template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
78 return calibrator_arr[0];
83 using ElementType =
typename MeasurementTypeTraits::template MeassurementContainerValueType<typename Container::container_type>;
84 using BaseElementType =
typename std::remove_cv_t<std::remove_pointer_t< ElementType > >;
85 if constexpr(std::is_same<T_ValueType,BaseElementType>::value && Container::dimension() == DIM) {
86 return calibrator_arr[N-1];
94template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
95template <std::
size_t DiM,
typename T_ValueType>
101 m_calibrators.at(universial.index()) = std::move( universial);
104template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
105template <std::
size_t DIM,
typename T_ValueType>
111 return std::get<Calibrator<DIM, T_ValueType> >(universal);
An instance of this class is created for each sub-level of the TRT by the TRTCalibrator.
storage of the time histories of all the cells
decltype(extend(MakeVariant< TypeHelper, VariantType, N-1 >::m_val, typename TypeHelper::template type< decltype(lvalue(std::get< N-1 >(VariantType{})))> {})) variant_type
Calibrator< T_ContainerWithDimension::dimension(), std::remove_cv_t< std::remove_pointer_t< value_type< T_ContainerWithDimension > > > > type
std::remove_cv_t< std::remove_pointer_t< T_ContainerPtr > > container_type
typename MeasurementTypeTraits::template MeassurementContainerValueType< typename T_Container::container_type > value_type
typename MeasurementTypeTraits::template Measurement< DIM > Measurement
const CalibratorRegistry< AtlasMeasurementSelector::CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t >::template Calibrator< DIM, T_ValueType > & calibrator() const
const Calibrator< DIM, T_ValueType > & calibrator() const
void setCalibrator(const Calibrator< DIM, T_ValueType > &calibrator)
static const CalibratorVariant & getCalibratorGeneric(const std::array< CalibratorVariant, std::variant_size_v< measurement_container_variant_t > > &calibrator_arr)
ActsTrk::detail::MakeDerivedVariant::MakeVariant< CalibratorType, measurement_container_variant_t >::variant_type CalibratorVariant
Acts::Delegate< std::pair< Measurement< DIM >, MeasurementCovariance< DIM > >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const measurement_t &, const bound_track_parameters_t &)> Calibrator
typename MeasurementTypeTraits::template MeasurementCovariance< DIM > MeasurementCovariance
std::array< CalibratorVariant, std::variant_size_v< measurement_container_variant_t > > m_calibrators