ATLAS Offline Software
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > Struct Template Reference

ATALS specific Implementation of the member functions needed by the measurement selector. More...

Collaboration diagram for AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >:

Classes

struct  CalibratedMeasurementTraits
 
struct  Empty
 

Public Types

using BASE = MeasurementSelectorBaseImpl< NMeasMax, AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >, measurement_container_variant_t >
 
using traits = typename BASE::traits
 
template<std::size_t DIM>
using Measurement = typename traits::template CalibratedMeasurement< DIM >
 
template<std::size_t DIM, typename measurement_t >
using Calibrator = Acts::Delegate< std::pair< typename traits::template CalibratedMeasurement< DIM >, typename traits::template CalibratedMeasurementCovariance< DIM > >(const Acts::GeometryContext &, const Acts::CalibrationContext &, const measurement_t &, const typename traits::BoundTrackParameters &)>
 

Public Member Functions

template<std::size_t DIM, typename T_ValueType >
void setCalibrator (const Calibrator< DIM, T_ValueType > &calibrator)
 
template<std::size_t DIM, typename T_ValueType >
void setPreCalibrator (typename std::enable_if< s_CanPreCalibrate< DIM >, const Calibrator< DIM, T_ValueType > & >::type calibrator)
 
template<std::size_t DIM>
ParameterMapping::type< DIM > parameterMap (const Acts::GeometryContext &geometryContext, const Acts::CalibrationContext &calibrationContext, const Acts::Surface &surface) const
 
template<std::size_t DIM, typename measurement_t >
const Calibrator< DIM, measurement_t > & postCalibrator () const
 
template<std::size_t DIM, typename measurement_t >
auto preCalibrator () const
 

Static Public Member Functions

template<typename T_Value >
static Acts::SourceLink makeSourceLink (T_Value &&value)
 

Public Attributes

ActsTrk::MeasurementParameterMap m_projector {}
 
CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t > m_calibrators {}
 
std::conditional< s_fullPreCalibration, CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t >, Empty >::type m_preCalibrators {}
 

Static Public Attributes

template<std::size_t DIM>
static constexpr bool s_CanPreCalibrate
 

Detailed Description

template<std::size_t NMeasMax, typename traj_t, typename measurement_container_variant_t>
struct AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >

ATALS specific Implementation of the member functions needed by the measurement selector.

Definition at line 40 of file AtlasMeasurementSelector.cxx.

Member Typedef Documentation

◆ BASE

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
using AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::BASE = MeasurementSelectorBaseImpl<NMeasMax, AtlasMeasurementSelector<NMeasMax, traj_t, measurement_container_variant_t> , measurement_container_variant_t >

Definition at line 153 of file AtlasMeasurementSelector.cxx.

◆ Calibrator

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM, typename measurement_t >
using AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::Calibrator = Acts::Delegate< std::pair < typename traits::template CalibratedMeasurement<DIM>, typename traits::template CalibratedMeasurementCovariance<DIM> > (const Acts::GeometryContext&, const Acts::CalibrationContext&, const measurement_t &, const typename traits::BoundTrackParameters &)>

Definition at line 164 of file AtlasMeasurementSelector.cxx.

◆ Measurement

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM>
using AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::Measurement = typename traits::template CalibratedMeasurement<DIM>

Definition at line 160 of file AtlasMeasurementSelector.cxx.

◆ traits

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
using AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::traits = typename BASE::traits

Definition at line 157 of file AtlasMeasurementSelector.cxx.

Member Function Documentation

◆ makeSourceLink()

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<typename T_Value >
static Acts::SourceLink AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::makeSourceLink ( T_Value &&  value)
inlinestatic

Definition at line 215 of file AtlasMeasurementSelector.cxx.

215  {
216  // value is pointer
217  static_assert( !std::is_same<std::remove_pointer_t<T_Value>, T_Value>::value );
218  // ... and pointer to xAOD::UncalibgratedMeasurement
219  static_assert(std::is_base_of_v< xAOD::UncalibratedMeasurement, std::remove_cv_t<std::remove_pointer_t<T_Value> > > );
220  return Acts::SourceLink{ ActsTrk::makeATLASUncalibSourceLink(value) };
221  }

◆ parameterMap()

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM>
ParameterMapping::type<DIM> AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::parameterMap ( const Acts::GeometryContext &  geometryContext,
const Acts::CalibrationContext &  calibrationContext,
const Acts::Surface &  surface 
) const
inline

Definition at line 226 of file AtlasMeasurementSelector.cxx.

228  {
229  return m_projector.parameterMap<DIM>(geometryContext,calibrationContext,surface);
230  }

◆ postCalibrator()

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM, typename measurement_t >
const Calibrator<DIM, measurement_t>& AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::postCalibrator ( ) const
inline

Definition at line 235 of file AtlasMeasurementSelector.cxx.

235  {
236  return m_calibrators.template calibrator<DIM,measurement_t>();
237  }

◆ preCalibrator()

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM, typename measurement_t >
auto AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::preCalibrator ( ) const
inline

Definition at line 242 of file AtlasMeasurementSelector.cxx.

242  {
243  if constexpr(s_fullPreCalibration) {
244  // full calibration during selection
245  return m_preCalibrators.template calibrator<DIM,measurement_t>();
246  }
247  else {
248  // no calibration is performed before the measurement selection, so just Eigen maps to the stored location
249  // and covariance are returned.
250  // @TODO unfortunately the Eigen Maps cannot be used directly because they are incompatible with the
251  // temporary measurement storage used in the measurement selector, so need to convert to the
252  // above ConstVectorMapWithInvalidDef etc. Does this introduce some overhead ?
253  return []( [[maybe_unused]] const Acts::GeometryContext&,
254  [[maybe_unused]] const Acts::CalibrationContext&,
255  const measurement_t &measurement,
256  [[maybe_unused]] const typename traits::BoundTrackParameters &) {
257  return std::make_pair( measurement.template localPosition<DIM>(), measurement.template localCovariance<DIM>() );
258  };
259  }
260  }

◆ setCalibrator()

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM, typename T_ValueType >
void AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::setCalibrator ( const Calibrator< DIM, T_ValueType > &  calibrator)
inline

Definition at line 198 of file AtlasMeasurementSelector.cxx.

198  {
199  m_calibrators.template setCalibrator<DIM, T_ValueType>(calibrator);
200  }

◆ setPreCalibrator()

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM, typename T_ValueType >
void AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::setPreCalibrator ( typename std::enable_if< s_CanPreCalibrate< DIM >, const Calibrator< DIM, T_ValueType > & >::type  calibrator)
inline

Definition at line 209 of file AtlasMeasurementSelector.cxx.

209  {
210  m_preCalibrators.template setCalibrator<DIM, T_ValueType>(calibrator);
211  }

Member Data Documentation

◆ m_calibrators

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t> AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::m_calibrators {}

Definition at line 190 of file AtlasMeasurementSelector.cxx.

◆ m_preCalibrators

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
std::conditional<s_fullPreCalibration, CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t>, Empty>::type AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::m_preCalibrators {}

Definition at line 194 of file AtlasMeasurementSelector.cxx.

◆ m_projector

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
ActsTrk::MeasurementParameterMap AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::m_projector {}

Definition at line 189 of file AtlasMeasurementSelector.cxx.

◆ s_CanPreCalibrate

template<std::size_t NMeasMax, typename traj_t , typename measurement_container_variant_t >
template<std::size_t DIM>
constexpr bool AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t >::s_CanPreCalibrate
staticconstexpr
Initial value:
= std::is_same< typename traits::template PreSelectionMeasurement<DIM>,
typename traits::template CalibratedMeasurement<DIM> >::value
&& std::is_same< typename traits::template PreSelectionMeasurementCovariance<DIM>,
typename traits::template CalibratedMeasurementCovariance<DIM> >::value

Definition at line 203 of file AtlasMeasurementSelector.cxx.


The documentation for this struct was generated from the following file:
taskman.template
dictionary template
Definition: taskman.py:317
athena.value
value
Definition: athena.py:122
AtlasMeasurementSelector::m_preCalibrators
std::conditional< s_fullPreCalibration, CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t >, Empty >::type m_preCalibrators
Definition: AtlasMeasurementSelector.cxx:194
xAOD::UncalibratedMeasurement_v1
Definition: UncalibratedMeasurement_v1.h:13
ActsTrk::makeATLASUncalibSourceLink
ATLASUncalibSourceLink makeATLASUncalibSourceLink(const xAOD::UncalibratedMeasurementContainer *container, std::size_t index, [[maybe_unused]] const EventContext &ctx)
Definition: ATLASSourceLink.h:31
AtlasMeasurementSelector::m_calibrators
CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t > m_calibrators
Definition: AtlasMeasurementSelector.cxx:190
AtlasMeasurementSelector::m_projector
ActsTrk::MeasurementParameterMap m_projector
Definition: AtlasMeasurementSelector.cxx:189
ActsTrk::MeasurementParameterMap::parameterMap
ParameterMap< DIM > parameterMap([[maybe_unused]] const Acts::GeometryContext &, [[maybe_unused]] const Acts::CalibrationContext &, const Acts::Surface &surface) const
Definition: MeasurementCalibrator2.h:84