File MeasurementSelector.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

class MeasurementSelector
#include <Acts/TrackFinding/MeasurementSelector.hpp>

Measurement selection struct selecting those measurements compatible with the given track parameter against provided criteria on one surface.

The selection criteria could be allowed maximum chi2 and allowed maximum number of measurements on one surface

If there is no compatible measurement, the measurement with the mininum chi2 will be selected and the status will be tagged as an outlier

Public Types

using Config = Acts::GeometryHierarchyMap<MeasurementSelectorCuts>

Geometry-dependent cut configuration.

Different components on the geometry can require different cut settings. The configuration must either contain explicit settings for all geometry components that are used or contain a global default.

Public Functions

MeasurementSelector() = default

Default constructor.

inline MeasurementSelector(Config config)

Constructor with config and (non-owning) logger.


config – a config instance

template<typename traj_t>
inline Result<std::pair<typename std::vector<typename traj_t::TrackStateProxy>::iterator, typename std::vector<typename traj_t::TrackStateProxy>::iterator>> select(std::vector<typename traj_t::TrackStateProxy> &candidates, bool &isOutlier, const Logger &logger) const

Function that select the measurements compatible with the given track parameter on a surface.

  • candidates – The track state candidates which already contain predicted parameters

  • isOutlier – The indicator for outlier or not

  • logger – The logger wrapper


Pair of iterators into candidates marking the range of selected candidates

Private Functions

double calculateChi2(double *fullCalibrated, double *fullCalibratedCovariance, TrackStateTraits<MultiTrajectoryTraits::MeasurementSizeMax, false>::Parameters predicted, TrackStateTraits<MultiTrajectoryTraits::MeasurementSizeMax, false>::Covariance predictedCovariance, TrackStateTraits<MultiTrajectoryTraits::MeasurementSizeMax, false>::Projector projector, unsigned int calibratedSize) const

Private Members

Config m_config

Private Static Functions

template<typename traj_t, typename cut_value_t>
static inline cut_value_t VariableCut(const typename traj_t::TrackStateProxy &trackState, const Acts::MeasurementSelector::Config::Iterator selector, const std::vector<cut_value_t> &cuts, const Logger &logger)
struct MeasurementSelectorCuts
#include <Acts/TrackFinding/MeasurementSelector.hpp>

Selection cuts for associating measurements with predicted track parameters on a surface.

The default configuration only takes the best matching measurement without a cut on the local chi2.

Public Members

std::vector<double> chi2CutOff = {std::numeric_limits<double>::max()}

Maximum local chi2 contribution.

std::vector<double> etaBins

bins in |eta| to specify variable selections

std::vector<size_t> numMeasurementsCutOff = {1}

Maximum number of associated measurements on a single surface.