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 Acts::Surface &,
31 const measurement_t &,
32 const bound_track_parameters_t &)>;
35 template <std::
size_t DIM,
typename T_ValueType>
40 template <std::
size_t DIM,
typename T_ValueType>
47 template <
typename T_ContainerPtr>
48 using container_type = std::remove_cv_t<std::remove_pointer_t<T_ContainerPtr> >;
53 template <
typename T_Container>
54 using value_type =
typename MeasurementTypeTraits::template MeassurementContainerValueType<typename T_Container::container_type >;
57 template <
typename T_ContainerWithDimension>
58 using type =
Calibrator< T_ContainerWithDimension::dimension() , std::remove_cv_t<std::remove_pointer_t< value_type<T_ContainerWithDimension> > > >;
63 std::array< CalibratorVariant, std::variant_size_v<measurement_container_variant_t> >
m_calibrators;
65 template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
72template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
73template <std::
size_t DIM,
typename T_ValueType, std::
size_t N>
79 return calibrator_arr[0];
84 using ElementType =
typename MeasurementTypeTraits::template MeassurementContainerValueType<typename Container::container_type>;
85 using BaseElementType =
typename std::remove_cv_t<std::remove_pointer_t< ElementType > >;
86 if constexpr(std::is_same<T_ValueType,BaseElementType>::value && Container::dimension() == DIM) {
87 return calibrator_arr[N-1];
95template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
96template <std::
size_t DiM,
typename T_ValueType>
102 m_calibrators.at(universial.index()) = std::move( universial);
105template <
typename MeasurementTypeTraits,
typename bound_track_parameters_t,
typename measurement_container_variant_t>
106template <std::
size_t DIM,
typename T_ValueType>
112 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 Acts::Surface &, 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