ATLAS Offline Software
AtlasMeasurementSelector.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
11 
12 #include "Acts/Definitions/Common.hpp"
13 #include "Acts/Definitions/Algebra.hpp"
14 #include "Acts/Utilities/VectorHelpers.hpp"
15 #include "Acts/Utilities/Delegate.hpp"
16 #include "Acts/Utilities/Result.hpp"
17 #include "Acts/Geometry/GeometryContext.hpp"
18 #include "Acts/Utilities/CalibrationContext.hpp"
19 #include "Acts/EventData/TrackParameters.hpp"
20 #include "Acts/Surfaces/Surface.hpp"
21 #include "Acts/Utilities/Logger.hpp"
22 #include "Acts/TrackFinding/CombinatorialKalmanFilter.hpp"
23 #include "Acts/TrackFinding/TrackStateCreator.hpp"
24 
30 
35 
36 #include "boost/container/small_vector.hpp"
37 
38 #include <tuple>
39 #include <type_traits>
40 #include <span>
41 #include <ranges>
42 
44 
45 template <std::size_t NMeasMax, typename traj_t, typename measurement_container_variant_t>
47 
48 static constexpr bool s_fullPreCalibration=true;
49 
50 // need an "Eigen Map" which is default constructable and assignable
51 // and where an assignment changes the data pointer not the contents of
52 // the data it was pointing to.
53 template <std::size_t DIM>
57  this->m_data = a.m_data;
58  return *this;
59  }
61  this->m_data = a.m_data;
62  return *this;
63  }
65  this->m_data = a.data();
66  return *this;
67  }
69 };
70 
71 // see above
72 template <std::size_t DIM>
76  this->m_data = a.m_data;
77  return *this;
78  }
80  this->m_data = a.m_data;
81  return *this;
82  }
84  this->m_data = a.data();
85  return *this;
86  }
88 };
89 
94 template <std::size_t NMeasMax, typename traj_t, typename measurement_container_variant_t>
95 struct MeasurementSelectorTraits< AtlasMeasurementSelector<NMeasMax, traj_t, measurement_container_variant_t> >
96 {
97  // the measurement type after the selection e.g. a Matrix<N,1>
98  template <std::size_t N>
100 
101  // the measurement covariance type after the selection e.g. a Matrix<N,N>
102  template <std::size_t N>
104 
105  // the measurement type before the selection e.g. an Eigen::Map< Matrix<N,1> > if
106  // the calibration is performed after the selection
107  template <std::size_t N>
108  using PreSelectionMeasurement = std::conditional< s_fullPreCalibration,
111 
112  // the measurement covariance type before the selection e.g. an Eigen::Map<Matrix<N,N> > if
113  // the calibration is performed after the selection
114  template <std::size_t N>
115  using PreSelectionMeasurementCovariance = std::conditional< s_fullPreCalibration,
118  // e.g. the same as CalibratedMeasurement
119  template <std::size_t N>
121 
122  // e.g. the same as CalibratedMeasurementCovariance
123  template <std::size_t N>
125 
126  // e.g. helper template to get the value_type from the measurement range iterator type
127  template <typename T_MeasurementRangeIterator>
128  struct MeasurementContainerTraits {
129  using value_type = typename T_MeasurementRangeIterator::value_type;
130  };
131 
132  using abstract_measurement_range_t = std::ranges::iota_view<unsigned int, unsigned int>;
133 
134  // the trajectory type to which states for selected measurements are to be added
135  using trajectory_t = traj_t;
136  // the track state type for new track states
137  using TrackStateProxy = typename traj_t::TrackStateProxy;
138 
139  // the value type usd for matrices
141  using BoundTrackParameters = Acts::BoundTrackParameters;
142  using BoundMatrix = Acts::BoundMatrix;
143 
144  using BoundState = std::tuple<BoundTrackParameters, BoundMatrix, double>;
145 
146  // maximum dimension of measurements determined from the measurement "container" variant
148 
149  // must be the same as what is used for the CKF
150  static constexpr std::size_t s_maxBranchesPerSurface = 10;
151 };
152 
154 template <std::size_t NMeasMax, typename traj_t, typename measurement_container_variant_t>
156  : public MeasurementSelectorBaseImpl<NMeasMax,
157  AtlasMeasurementSelector<NMeasMax, traj_t, measurement_container_variant_t> ,
158  measurement_container_variant_t >
159 {
160  // @TODO can these redundent definitions been avoided ?
163  measurement_container_variant_t >;
164  // BASE::trats are MeasurementSelectorTraits< ... decltype(*this) >
165  using traits = typename BASE::traits;
166 
167  template <std::size_t DIM>
168  using Measurement = typename traits::template CalibratedMeasurement<DIM>;
169 
171 
172  // the delegate used for the final calibration
173  template <std::size_t DIM, typename measurement_t>
174  using Calibrator = Acts::Delegate<
175  std::pair < typename traits::template CalibratedMeasurement<DIM>,
176  typename traits::template CalibratedMeasurementCovariance<DIM> >
177  (const Acts::GeometryContext&,
178  const Acts::CalibrationContext&,
179  const measurement_t &,
180  const typename traits::BoundTrackParameters &)>;
181 
182  // helper to determine the calibrator type from the measurement container tyoe
183  // and to define the types used for the calibrated measurement and covariance
185  // the types used for the calibrated measurement and covariance
186  template <std::size_t DIM>
187  using Measurement = typename traits::template CalibratedMeasurement<DIM>;
188  template <std::size_t DIM>
189  using MeasurementCovariance = typename traits::template CalibratedMeasurementCovariance<DIM>;
190 
191  // helper to determine the measurement value type from the container type
192  template <typename T_Container>
193  using MeassurementContainerValueType = typename traits::template MeasurementContainerTraits<T_Container>::value_type;
194  };
195 
197  // Helper to provide the mapping between bound parameters and coordinates
198  // @TODO is the default projector always good enough or is there some dependency
199  // on the geoemtry ?
202  struct Empty {};
203  std::conditional<s_fullPreCalibration,
206 
207 
209  const ActsTrk::detail::MeasurementRangeList &measurementRanges)
210  : BASE{std::move(config)},
211  m_measurementRanges(&measurementRanges)
212  {}
213 
214  // register a calibrator for the given measurement type and the measurement dimension i.e. number of coordinates
215  template <std::size_t DIM, typename T_ValueType>
216  void setCalibrator(const Calibrator<DIM, T_ValueType> &calibrator) {
217  m_calibrators.template setCalibrator<DIM, T_ValueType>(calibrator);
218  }
219 
220  template <std::size_t DIM>
221  static constexpr bool s_CanPreCalibrate = std::is_same< typename traits::template PreSelectionMeasurement<DIM>,
222  typename traits::template CalibratedMeasurement<DIM> >::value
223  && std::is_same< typename traits::template PreSelectionMeasurementCovariance<DIM>,
224  typename traits::template CalibratedMeasurementCovariance<DIM> >::value;
225 
226  template < std::size_t DIM, typename T_ValueType >
227  void setPreCalibrator(typename std::enable_if<s_CanPreCalibrate<DIM>, const Calibrator<DIM, T_ValueType> &>::type calibrator) {
228  m_preCalibrators.template setCalibrator<DIM, T_ValueType>(calibrator);
229  }
230 
231  // helper to create a Acts::SourceLink from an uncalibrated measurement pointer
232  template <typename T_Value>
233  static Acts::SourceLink makeSourceLink(T_Value &&value) {
234  // value is pointer
235  static_assert( !std::is_same<std::remove_pointer_t<T_Value>, T_Value>::value );
236  // ... and pointer to xAOD::UncalibgratedMeasurement
237  static_assert(std::is_base_of_v< xAOD::UncalibratedMeasurement, std::remove_cv_t<std::remove_pointer_t<T_Value> > > );
238  return Acts::SourceLink{ ActsTrk::makeATLASUncalibSourceLink(value) };
239  }
240 
241  // helper to provide a map from bound parameters to coordinates
242  template <std::size_t DIM>
244  parameterMap(const Acts::GeometryContext& geometryContext,
245  const Acts::CalibrationContext& calibrationContext,
246  const Acts::Surface& surface) const {
247  return m_projector.parameterMap<DIM>(geometryContext,calibrationContext,surface);
248  }
249 
250  // helper which returns a delegate to perform the post calibration for the given measurement type and dimension
251  template <std::size_t DIM, typename measurement_t>
253  postCalibrator() const {
254  return m_calibrators.template calibrator<DIM,measurement_t>();
255  }
256 
257  // helper which returns a delegate or lambda to get the measurement and covariance used during the selection
258  template <std::size_t DIM, typename measurement_t>
259  auto
260  preCalibrator() const {
261  if constexpr(s_fullPreCalibration) {
262  // full calibration during selection
263  return m_preCalibrators.template calibrator<DIM,measurement_t>();
264  }
265  else {
266  // no calibration is performed before the measurement selection, so just Eigen maps to the stored location
267  // and covariance are returned.
268  // @TODO unfortunately the Eigen Maps cannot be used directly because they are incompatible with the
269  // temporary measurement storage used in the measurement selector, so need to convert to the
270  // above ConstVectorMapWithInvalidDef etc. Does this introduce some overhead ?
271  return []( [[maybe_unused]] const Acts::GeometryContext&,
272  [[maybe_unused]] const Acts::CalibrationContext&,
273  const measurement_t &measurement,
274  [[maybe_unused]] const typename traits::BoundTrackParameters &) {
275  return std::make_pair( measurement.template localPosition<DIM>(), measurement.template localCovariance<DIM>() );
276  };
277  }
278  }
279 
280  std::tuple<const measurement_container_variant_t *, abstract_measurement_range_t >
281  containerAndRange(const Acts::Surface &surface) const {
282 
283  const ActsTrk::detail::MeasurementRangeList::const_iterator
284  range_iter = m_measurementRanges->find(surface.geometryId().value());
285  if (range_iter == m_measurementRanges->end())
286  {
287  return {nullptr, abstract_measurement_range_t{}};
288  }
289  else {
290  abstract_measurement_range_t range{range_iter->second.elementBeginIndex(),
291  range_iter->second.elementEndIndex()};
292  assert( !range_iter->second.isMeasurementExpected() && range.begin() > range.end());
293  // if surface marked as defect
294  return { range_iter->second.isMeasurementExpected() ? &(m_measurementRanges->container(range_iter->second.containerIndex())) : nullptr,
295  std::move(range)};
296  }
297  }
298 
299  bool expectMeasurements([[maybe_unused]] const Acts::Surface &surface,
300  [[maybe_unused]] const measurement_container_variant_t *container_variant_ptr,
301  const abstract_measurement_range_t &abstract_range) const {
302  return (abstract_range.begin()<=abstract_range.end());
303  }
304 
305  template <typename measurement_container_t>
306  auto
307  rangeForContainer(const measurement_container_t &concrete_container,
308  const abstract_measurement_range_t &abstract_range) const {
309  unsigned int begin_idx = abstract_range.front();
310  auto begin_iter = concrete_container.container().begin() + begin_idx;
311  auto end_iter = begin_iter + static_cast<unsigned int>(abstract_range.size());
312  return std::ranges::subrange(begin_iter, end_iter);
313  }
314 };
315 
316 namespace {
317  // the track back-end used during track finding
318  using RecoTrackContainer = Acts::TrackContainer<Acts::VectorTrackContainer,
319  Acts::VectorMultiTrajectory>;
320 
321  static constexpr std::size_t gAbsoluteMaxBranchesPerSurface = 3; // the absolute maximum number of branches per surface
322  // the actual value is configurable up to this number
323 
324 
325  // Wrapper class which provides the actual measurement selector and
326  // allows to connect it to the delegate used by the track finder
327  template <typename track_container_t>
328  class AtlasActsMeasurmentSelector : public ActsTrk::IMeasurementSelector {
329  public:
330  using TheAtlasMeasurementSelector
332  gAbsoluteMaxBranchesPerSurface,
333  typename track_container_t::TrackStateContainerBackend,
335  // where measurement_container_variant_t is e.g.
336  // variant< ContainerRefWithDim<xAOD::PixelClusterContainer,2>, ... >
337  >;
338 
339  using BoundState = std::tuple<Acts::BoundTrackParameters, Acts::BoundMatrix, double>;
340  // the delegate used by the track finder to which the measurement selector needs to be connected to
341 
342  AtlasActsMeasurmentSelector(ActsTrk::MeasurementCalibrator2 &&calibrator,
343  const ActsTrk::detail::MeasurementRangeList &measurementRanges,
344  TheAtlasMeasurementSelector::Config &&config)
345  : m_calibrator( std::move(calibrator)),
346  m_measurementSelector(std::move(config),
347  measurementRanges)
348  {
349  // have to register one calibrator per measurement container type and associated dimension.
350  // @TODO unfortunately automatic type deduction does not work, so have to provide the type
351  // additionally
352  if constexpr( s_fullPreCalibration) {
353  m_measurementSelector.template setPreCalibrator<2,xAOD::PixelCluster>(m_calibrator.pixelPreCalibrator());
354  m_measurementSelector.template setPreCalibrator<1,xAOD::StripCluster>(m_calibrator.stripPreCalibrator());
355  m_measurementSelector.template setPreCalibrator<3,xAOD::HGTDCluster>(m_calibrator.hgtdPreCalibrator());
356  m_measurementSelector.template setCalibrator<2,xAOD::PixelCluster>(m_calibrator.pixelPostCalibrator());
357  m_measurementSelector.template setCalibrator<1,xAOD::StripCluster>(m_calibrator.stripPostCalibrator());
358  m_measurementSelector.template setCalibrator<3,xAOD::HGTDCluster>(m_calibrator.hgtdPostCalibrator());
359  }
360  else {
361  m_measurementSelector.template setCalibrator<2,xAOD::PixelCluster>(m_calibrator.pixelPostCalibrator());
362  m_measurementSelector.template setCalibrator<1,xAOD::StripCluster>(m_calibrator.stripPostCalibrator());
363  m_measurementSelector.template setCalibrator<3,xAOD::HGTDCluster>(m_calibrator.hgtdPostCalibrator());
364  }
365  }
366 
367  // called by the track finder to connect this measurement selector to the ckf.
368  void connect(std::any delegate_ptr) const override {
369  using TrackStateCreator = Acts::CombinatorialKalmanFilterExtensions<RecoTrackContainer>::TrackStateCreator;
370 
371  auto delegate = std::any_cast< TrackStateCreator *>(delegate_ptr);
372  delegate->template connect< & TheAtlasMeasurementSelector::createTrackStates >(&m_measurementSelector);
373  }
374 
375  // provides the calibrators
376  ActsTrk::MeasurementCalibrator2 m_calibrator;
377 
378  // the actual measurement selector
379  TheAtlasMeasurementSelector m_measurementSelector;
380  };
381 }
382 
383 namespace ActsTrk::detail {
384 // return a configured, wrapper for the measurement selector
385 std::unique_ptr<ActsTrk::IMeasurementSelector> getMeasurementSelector(const ActsTrk::IOnBoundStateCalibratorTool *onTrackCalibratorTool,
386  const ActsTrk::detail::MeasurementRangeList &measurementRanges,
387  const std::vector<float> &etaBinsf,
388  const std::vector<std::pair<float, float> > &chi2CutOffOutlier,
389  const std::vector<size_t> &numMeasurementsCutOff) {
390 
391  // set calibrators per measurement container type (order does not matter);
392  ActsTrk::MeasurementCalibrator2 atl_measurement_calibrator(onTrackCalibratorTool);
393  using AtlMeasurementSelectorCuts = AtlasMeasurementSelectorCuts;
394 
395  using AtlMeasurementSelector = AtlasActsMeasurmentSelector<RecoTrackContainer>;
396  using AtlMeasurementSelectorConfig = AtlMeasurementSelector::TheAtlasMeasurementSelector::Config;
397 
398  std::unique_ptr<ActsTrk::IMeasurementSelector>
399  selector(new AtlMeasurementSelector(
400  std::move(atl_measurement_calibrator),
401  measurementRanges,
402  AtlMeasurementSelectorConfig{ {Acts::GeometryIdentifier(),
403  AtlMeasurementSelectorCuts{ etaBinsf,
404  chi2CutOffOutlier,
405  numMeasurementsCutOff} }}));
406  return selector;
407 
408 }
409 }
MeasurementSelector.h
ConstVectorMapWithInvalidDef::operator=
ConstVectorMapWithInvalidDef< DIM > & operator=(ConstVectorMapWithInvalidDef< DIM > &&a)
Definition: AtlasMeasurementSelector.cxx:56
ActsTrk::IOnBoundStateCalibratorTool
Definition: IOnBoundStateCalibratorTool.h:20
ConstMatrixMapWithInvalidDef::operator=
ConstMatrixMapWithInvalidDef< DIM > & operator=(const xAOD::ConstMatrixMap< DIM > &a)
Definition: AtlasMeasurementSelector.cxx:83
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::PreSelectionMeasurementCovariance
std::conditional< s_fullPreCalibration, CalibratedMeasurementCovariance< N >, ConstMatrixMapWithInvalidDef< N > >::type PreSelectionMeasurementCovariance
Definition: AtlasMeasurementSelector.cxx:117
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::BoundTrackParameters
Acts::BoundTrackParameters BoundTrackParameters
Definition: AtlasMeasurementSelector.cxx:141
ConstMatrixMapWithInvalidDef
Definition: AtlasMeasurementSelector.cxx:73
AtlasMeasurementSelector::CalibratedMeasurementTraits::Measurement
typename traits::template CalibratedMeasurement< DIM > Measurement
Definition: AtlasMeasurementSelector.cxx:187
ParameterMapping::type
std::array< unsigned char, N > type
Definition: MeasurementSelector.h:134
ActsTrk::detail::getMeasurementSelector
std::unique_ptr< ActsTrk::IMeasurementSelector > getMeasurementSelector(const ActsTrk::IOnBoundStateCalibratorTool *onTrackCalibratorTool, const ActsTrk::detail::MeasurementRangeList &measurementRanges, const std::vector< float > &etaBinsf, const std::vector< std::pair< float, float > > &chi2CutOffOutlier, const std::vector< size_t > &numMeasurementsCutOff)
Definition: AtlasMeasurementSelector.cxx:385
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::traits
MeasurementSelectorTraits< derived_t > traits
Definition: MeasurementSelector.h:310
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::BoundState
std::tuple< BoundTrackParameters, BoundMatrix, double > BoundState
Definition: AtlasMeasurementSelector.cxx:144
CalibratorRegistry.h
ActsTrk::IMeasurementSelector::connect
virtual void connect(std::any delegate_wrap) const =0
MeasurementSelectorTraits::s_dimMax
static const std::size_t s_dimMax
Definition: MeasurementSelector.h:97
TrackParameters.h
AtlasMeasurementSelector::CalibratedMeasurementTraits::MeassurementContainerValueType
typename traits::template MeasurementContainerTraits< T_Container >::value_type MeassurementContainerValueType
Definition: AtlasMeasurementSelector.cxx:193
AtlasMeasurementSelector::makeSourceLink
static Acts::SourceLink makeSourceLink(T_Value &&value)
Definition: AtlasMeasurementSelector.cxx:233
AtlasMeasurementSelector::expectMeasurements
bool expectMeasurements([[maybe_unused]] const Acts::Surface &surface, [[maybe_unused]] const measurement_container_variant_t *container_variant_ptr, const abstract_measurement_range_t &abstract_range) const
Definition: AtlasMeasurementSelector.cxx:299
m_data
std::vector< T > m_data
Definition: TrackTruthMatchingBaseAlg.cxx:660
Calibrator
A structure to contain data associated with the calibration of a certain sub-module.
Definition: Calibrator.h:178
MeasurementContainerWithDimension< AtlasMeasurementContainerList, T_Container... >::measurement_container_variant_t
std::variant< T_Container... > measurement_container_variant_t
Definition: MeasurementContainerWithDimension.h:40
xAOD::ConstMatrixMap
Eigen::Map< const MeasMatrix< N > > ConstMatrixMap
Definition: MeasurementDefs.h:65
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::PredictedCovariance
CalibratedMeasurementCovariance< N > PredictedCovariance
Definition: AtlasMeasurementSelector.cxx:124
AtlasUncalibSourceLinkAccessor.h
taskman.template
dictionary template
Definition: taskman.py:317
AtlasMeasurementSelector::rangeForContainer
auto rangeForContainer(const measurement_container_t &concrete_container, const abstract_measurement_range_t &abstract_range) const
Definition: AtlasMeasurementSelector.cxx:307
athena.value
value
Definition: athena.py:124
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
ActsTrk::detail::GenMeasurementRangeList< AtlasMeasurementContainerList >
AtlasMeasurementSelector::Measurement
typename traits::template CalibratedMeasurement< DIM > Measurement
Definition: AtlasMeasurementSelector.cxx:168
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::CalibratedMeasurement
xAOD::MeasVector< N > CalibratedMeasurement
Definition: AtlasMeasurementSelector.cxx:99
ActsTrk::detail::RecoTrackContainer
Acts::TrackContainer< Acts::VectorTrackContainer, Acts::VectorMultiTrajectory > RecoTrackContainer
Definition: Tracking/Acts/ActsTrackReconstruction/src/detail/Definitions.h:22
AtlasMeasurementSelector::m_preCalibrators
std::conditional< s_fullPreCalibration, CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t >, Empty >::type m_preCalibrators
Definition: AtlasMeasurementSelector.cxx:205
AtlasMeasurementSelector::postCalibrator
const Calibrator< DIM, measurement_t > & postCalibrator() const
Definition: AtlasMeasurementSelector.cxx:253
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
ConstVectorMapWithInvalidDef::operator=
ConstVectorMapWithInvalidDef< DIM > & operator=(const ConstVectorMapWithInvalidDef< DIM > &a)
Definition: AtlasMeasurementSelector.cxx:60
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::MatrixFloatType
double MatrixFloatType
Definition: AtlasMeasurementSelector.cxx:140
MeasurementSelectorBase< NMeasMax, MeasurementSelectorTraits< derived_t >::s_dimMax, derived_t >::Config
Acts::GeometryHierarchyMap< AtlasMeasurementSelectorCuts > Config
Definition: MeasurementSelector.h:309
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::BoundMatrix
Acts::BoundMatrix BoundMatrix
Definition: AtlasMeasurementSelector.cxx:142
ActsTrk::MeasurementParameterMap
Definition: MeasurementCalibrator2.h:34
xAOD::UncalibratedMeasurement_v1
Definition: UncalibratedMeasurement_v1.h:13
AtlasMeasurementSelector::s_CanPreCalibrate
static constexpr bool s_CanPreCalibrate
Definition: AtlasMeasurementSelector.cxx:221
ActsTrk::makeATLASUncalibSourceLink
ATLASUncalibSourceLink makeATLASUncalibSourceLink(const xAOD::UncalibratedMeasurementContainer *container, std::size_t index, [[maybe_unused]] const EventContext &ctx)
Definition: ATLASSourceLink.h:30
AtlasMeasurementSelector::containerAndRange
std::tuple< const measurement_container_variant_t *, abstract_measurement_range_t > containerAndRange(const Acts::Surface &surface) const
Definition: AtlasMeasurementSelector.cxx:281
AtlasMeasurementSelectorCuts
Definition: MeasurementSelector.h:289
AtlasMeasurementSelector::CalibratedMeasurementTraits::MeasurementCovariance
typename traits::template CalibratedMeasurementCovariance< DIM > MeasurementCovariance
Definition: AtlasMeasurementSelector.cxx:189
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::PreSelectionMeasurement
std::conditional< s_fullPreCalibration, CalibratedMeasurement< N >, ConstVectorMapWithInvalidDef< N > >::type PreSelectionMeasurement
Definition: AtlasMeasurementSelector.cxx:110
PixelClusterContainer.h
CalibratorRegistry
Definition: CalibratorRegistry.h:19
HGTDClusterContainer.h
MeasurementSelectorTraits::s_maxBranchesPerSurface
static constexpr std::size_t s_maxBranchesPerSurface
Definition: MeasurementSelector.h:101
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
AtlasMeasurementSelector::m_calibrators
CalibratorRegistry< CalibratedMeasurementTraits, typename traits::BoundTrackParameters, measurement_container_variant_t > m_calibrators
Definition: AtlasMeasurementSelector.cxx:201
ConstVectorMapWithInvalidDef::operator=
ConstVectorMapWithInvalidDef< DIM > & operator=(const xAOD::ConstVectorMap< DIM > &a)
Definition: AtlasMeasurementSelector.cxx:64
MeasurementSelectorBaseImpl::abstract_measurement_range_t
MeasurementSelectorTraits< derived_t >::abstract_measurement_range_t abstract_measurement_range_t
Definition: MeasurementSelector.h:776
AtlasMeasurementSelector::abstract_measurement_range_t
BASE::abstract_measurement_range_t abstract_measurement_range_t
Definition: AtlasMeasurementSelector.cxx:170
MeasurementCalibrator2.h
AtlasMeasurementSelector::setCalibrator
void setCalibrator(const Calibrator< DIM, T_ValueType > &calibrator)
Definition: AtlasMeasurementSelector.cxx:216
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
AtlasMeasurementSelector::Empty
Definition: AtlasMeasurementSelector.cxx:202
AtlasMeasurementSelector::m_projector
ActsTrk::MeasurementParameterMap m_projector
Definition: AtlasMeasurementSelector.cxx:200
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::abstract_measurement_range_t
std::ranges::iota_view< unsigned int, unsigned int > abstract_measurement_range_t
Definition: AtlasMeasurementSelector.cxx:132
ActsTrk::MeasurementCalibrator2
Definition: MeasurementCalibrator2.h:101
AtlasMeasurementSelector::traits
typename BASE::traits traits
Definition: AtlasMeasurementSelector.cxx:165
xAOD::MeasVector
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.
Definition: MeasurementDefs.h:53
AtlasMeasurementSelector::preCalibrator
auto preCalibrator() const
Definition: AtlasMeasurementSelector.cxx:260
ConstMatrixMapWithInvalidDef::operator=
ConstMatrixMapWithInvalidDef< DIM > & operator=(ConstMatrixMapWithInvalidDef< DIM > &&a)
Definition: AtlasMeasurementSelector.cxx:75
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::trajectory_t
traj_t trajectory_t
Definition: AtlasMeasurementSelector.cxx:135
AtlasMeasurementSelector.h
AtlasMeasurementSelector::parameterMap
ParameterMapping::type< DIM > parameterMap(const Acts::GeometryContext &geometryContext, const Acts::CalibrationContext &calibrationContext, const Acts::Surface &surface) const
Definition: AtlasMeasurementSelector.cxx:244
AtlasMeasurementSelector
ATALS specific Implementation of the member functions needed by the measurement selector.
Definition: AtlasMeasurementSelector.cxx:46
ConstVectorMapWithInvalidDef
Definition: AtlasMeasurementSelector.cxx:54
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::TrackStateProxy
typename traj_t::TrackStateProxy TrackStateProxy
Definition: AtlasMeasurementSelector.cxx:137
ConstMatrixMapWithInvalidDef::operator=
ConstMatrixMapWithInvalidDef< DIM > & operator=(const ConstMatrixMapWithInvalidDef< DIM > &a)
Definition: AtlasMeasurementSelector.cxx:79
MeasurementSelectorTraits
Definition: MeasurementSelector.h:43
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::Predicted
CalibratedMeasurement< N > Predicted
Definition: AtlasMeasurementSelector.cxx:120
a
TList * a
Definition: liststreamerinfos.cxx:10
python.selector.AtlRunQuerySelectorLhcOlc.selector
selector
Definition: AtlRunQuerySelectorLhcOlc.py:611
StripClusterContainer.h
MeasurementSelectorBaseImpl
Definition: MeasurementSelector.h:774
AtlasMeasurementSelector::m_measurementRanges
const ActsTrk::detail::MeasurementRangeList * m_measurementRanges
Definition: AtlasMeasurementSelector.cxx:196
ActsTrk::detail::GenMeasurementRangeList::container
const MeasurementContainer & container(unsigned index) const
Definition: AtlasUncalibSourceLinkAccessor.h:104
ActsTrk::MeasurementParameterMap::parameterMap
Acts::SubspaceIndices< DIM > parameterMap([[maybe_unused]] const Acts::GeometryContext &, [[maybe_unused]] const Acts::CalibrationContext &, const Acts::Surface &surface) const
Definition: MeasurementCalibrator2.h:65
xAOD::MeasMatrix
Eigen::Matrix< float, N, N > MeasMatrix
Definition: MeasurementDefs.h:55
IMeasurementSelector.h
ActsTrk::detail
Definition: Decoration.h:15
ActsTrk::IMeasurementSelector
Definition: IMeasurementSelector.h:10
AtlasMeasurementSelector::AtlasMeasurementSelector
AtlasMeasurementSelector(typename BASE::Config &&config, const ActsTrk::detail::MeasurementRangeList &measurementRanges)
Definition: AtlasMeasurementSelector.cxx:208
MeasurementSelectorTraits< AtlasMeasurementSelector< NMeasMax, traj_t, measurement_container_variant_t > >::CalibratedMeasurementCovariance
xAOD::MeasMatrix< N > CalibratedMeasurementCovariance
Definition: AtlasMeasurementSelector.cxx:103
value_type
Definition: EDM_MasterSearch.h:11
AtlasMeasurementSelector::CalibratedMeasurementTraits
Definition: AtlasMeasurementSelector.cxx:184
AtlasMeasurementSelector::setPreCalibrator
void setPreCalibrator(typename std::enable_if< s_CanPreCalibrate< DIM >, const Calibrator< DIM, T_ValueType > & >::type calibrator)
Definition: AtlasMeasurementSelector.cxx:227
ConstVectorMapWithInvalidDef::ConstVectorMapWithInvalidDef
ConstVectorMapWithInvalidDef()
Definition: AtlasMeasurementSelector.cxx:55
TrackContainer.h
xAOD::ConstVectorMap
Eigen::Map< const MeasVector< N > > ConstVectorMap
Definition: MeasurementDefs.h:60
IActsTrackingGeometryTool.h
ConstMatrixMapWithInvalidDef::ConstMatrixMapWithInvalidDef
ConstMatrixMapWithInvalidDef()
Definition: AtlasMeasurementSelector.cxx:74
IActsExtrapolationTool.h
MeasurementContainerListWithDimension< AtlasMeasurementContainerList, ContainerRefWithDim< xAOD::PixelClusterContainer, 2 >, ContainerRefWithDim< xAOD::StripClusterContainer, 1 >, ContainerRefWithDim< xAOD::HGTDClusterContainer, 3 > >::getMeasurementDimMax
static constexpr std::size_t getMeasurementDimMax()
Definition: MeasurementContainerWithDimension.h:266