ATLAS Offline Software
Loading...
Searching...
No Matches
TrackFindingBaseAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSTRACKRECONSTRUCTION_TRACKFINDINGBASEALG_H
6#define ACTSTRACKRECONSTRUCTION_TRACKFINDINGBASEALG_H
7
8// Base Class
10
11
12// Tools
17
18// ACTS
19#include "Acts/EventData/ProxyAccessor.hpp"
20
21// ActsTrk
26
27// Athena
29
30// Handle Keys
35
36namespace ActsTrk {
37 namespace detail {
39 class SharedHitCounter;
40 }
41
43 public:
44 TrackFindingBaseAlg(const std::string &name, ISvcLocator *pSvcLocator);
46
47 virtual StatusCode initialize() override;
48 virtual StatusCode finalize() override;
49 virtual StatusCode execute(const EventContext &ctx) const override;
50
51 protected:
52 using TrackFinderOptions = Acts::CombinatorialKalmanFilterOptions<detail::RecoTrackContainer>;
53
55 std::vector<std::pair<float, float>> m_chi2CutOffOutlier;
56 std::vector<float> m_etaBins;
58
60 Acts::GeometryContext geometry;
61 Acts::MagneticFieldContext magField;
62 Acts::CalibrationContext calib;
63 };
64
70
71 // Access Acts::CombinatorialKalmanFilter etc using "pointer to implementation"
72 // so we don't have to instantiate the heavily templated classes in the header.
73 // To maintain const-correctness, only use this via the accessor functions.
74 struct CKF_pimpl;
75
77 const CKF_pimpl &trackFinder() const;
78
79 std::unique_ptr<CKF_pimpl> m_trackFinder;
80
81
82 // Tool Handles
83 ToolHandle<GenericMonitoringTool> m_monTool{this, "MonTool", "", "Monitoring tool"};
84 ServiceHandle<ActsTrk::ITrackingGeometrySvc> m_trackingGeometrySvc{this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"};
85 ToolHandle<ActsTrk::TrackStatePrinterTool> m_trackStatePrinter{this, "TrackStatePrinter", "", "optional track state printer"};
86 ToolHandle<ActsTrk::IPixelOnTrackCalibratorTool<detail::RecoTrackStateContainer>> m_pixelCalibTool{this, "PixelCalibrator", "", "Opt. pixel measurement calibrator"};
87 ToolHandle<ActsTrk::IStripOnTrackCalibratorTool<detail::RecoTrackStateContainer>> m_stripCalibTool{this, "StripCalibrator", "", "Opt. strip measurement calibrator"};
88 ToolHandle<ActsTrk::IHGTDOnTrackCalibratorTool<detail::RecoTrackStateContainer>> m_hgtdCalibTool{this, "HGTDCalibrator", "", "Opt. HGTD measurement calibrator"};
89
90 SG::WriteHandleKey<ActsTrk::TrackContainer> m_trackContainerKey{this, "ACTSTracksLocation", "", "Output track collection (ActsTrk variant)"};
92
95 // Configuration
96 Gaudi::Property<unsigned int> m_maxPropagationStep{this, "maxPropagationStep", 1000, "Maximum number of steps for one propagate call"};
97 Gaudi::Property<std::vector<double>> m_etaBins{this, "etaBins", {}, "bins in |eta| to specify variable selections"};
98 // Acts::MeasurementSelector selection cuts for associating measurements with predicted track parameters on a surface.
99 Gaudi::Property<std::vector<double>> m_chi2CutOff{this, "chi2CutOff", {}, "MeasurementSelector: maximum local chi2 contribution"};
100 Gaudi::Property<std::vector<double>> m_chi2OutlierCutOff{this, "chi2OutlierCutOff", {}, "MeasurementSelector: maximum local chi2 contribution for outlier"};
101 Gaudi::Property<std::vector<size_t>> m_numMeasurementsCutOff{this, "numMeasurementsCutOff", {}, "MeasurementSelector: maximum number of associated measurements on a single surface"};
102 Gaudi::Property<double> m_edgeHoleBorderWidth{this,"EdgeHoleBorderWidth", 0. ,"Width of the border of surfaces (mm) within which holes are not counted as holes."};
103 Gaudi::Property<std::vector<std::size_t>> m_ptMinMeasurements{this, "ptMinMeasurements", {}, "if specified for the given seed collection, applies ptMin cut in branch stopper once ptMinMinMeasurements have been encountered"};
104 Gaudi::Property<std::vector<std::size_t>> m_absEtaMaxMeasurements{this, "absEtaMaxMeasurements", {}, "if specified for the given seed collection, applies absEtaMax cut in branch stopper once absEtaMaxMeasurements have been encountered"};
105 Gaudi::Property<bool> m_doBranchStopper{this, "doBranchStopper", true, "use branch stopper"};
106 Gaudi::Property<bool> m_doTwoWay{this, "doTwoWay", true, "run CKF twice, first with forward propagation with smoothing, then with backward propagation"};
107 Gaudi::Property<bool> m_recordMaterialStates{this, "recordMaterialStates", false, "record track states on surfaces which have material but no measurement; keeping them off is faster, but they have to be on for the multi-component stepper and for anything downstream which needs the full track state sequence"};
108 Gaudi::Property<bool> m_inflateCovarianceTwoWay{this, "inflateCovarianceTwoWay", false, "inflate covariance matrix at the beginning of two-way track finding"};
109 Gaudi::Property<double> m_twoWayinflateCovarianceFactor{this, "twoWayinflateCovarianceFactor", 1.0, "factor to multiply the initial covariance matrix at the beginning of two-way track finding"};
110 Gaudi::Property<double> m_branchStopperPtMinFactor{this, "branchStopperPtMinFactor", 1.0, "factor to multiply ptMin cut when used in the branch stopper"};
111 Gaudi::Property<double> m_seedRefitPtMinFactor{this, "seedRefitPtMinFactor", 1.0, "factor to multiply ptMin cut when used in the seed refit"};
112 Gaudi::Property<double> m_branchStopperAbsEtaMaxExtra{this, "branchStopperAbsEtaMaxExtra", 0.0, "increase absEtaMax cut when used in the branch stopper"};
113 Gaudi::Property<double> m_branchStopperMeasCutReduce{this, "branchStopperMeasCutReduce", 2, "how much to reduce the minMeas requirement for the branch stopper"};
114 Gaudi::Property<double> m_branchStopperAbsEtaMeasCut{this, "branchStopperAbsEtaMeasCut", 1.2, "the minimum |eta| to apply the reduction to the minMeas requirement for the branch stopper"};
115
116 // Acts::TrackSelector cuts
117 // Use max double, because mergeConfdb2.py doesn't like std::numeric_limits<double>::infinity() (produces bad Python "inf.0")
118 Gaudi::Property<std::vector<double>> m_phiMin{this, "phiMin", {}, "TrackSelector: phiMin"};
119 Gaudi::Property<std::vector<double>> m_phiMax{this, "phiMax", {}, "TrackSelector: phiMax"};
120 Gaudi::Property<std::vector<double>> m_etaMin{this, "etaMin", {}, "TrackSelector: etaMin"};
121 Gaudi::Property<std::vector<double>> m_etaMax{this, "etaMax", {}, "TrackSelector: etaMax"};
122 Gaudi::Property<double> m_absEtaMin{this, "absEtaMin", 0.0, "TrackSelector: absEtaMin"};
123 Gaudi::Property<double> m_absEtaMax{this, "absEtaMax", std::numeric_limits<double>::max(), "TrackSelector: absEtaMax"};
124 Gaudi::Property<std::vector<double>> m_ptMin{this, "ptMin", {}, "TrackSelector: ptMin"};
125 Gaudi::Property<std::vector<double>> m_ptMax{this, "ptMax", {}, "TrackSelector: ptMax"};
126 Gaudi::Property<std::vector<double>> m_d0Min{this, "d0Min", {}, "TrackSelector: d0Min"};
127 Gaudi::Property<std::vector<double>> m_d0Max{this, "d0Max", {}, "TrackSelector: d0Max"};
128 Gaudi::Property<std::vector<double>> m_z0Min{this, "z0Min", {}, "TrackSelector: z0Min"};
129 Gaudi::Property<std::vector<double>> m_z0Max{this, "z0Max", {}, "TrackSelector: z0Max"};
130
131 Gaudi::Property<std::vector<std::size_t>> m_minMeasurements{this, "minMeasurements", {}, "TrackSelector: minMeasurements"};
132 Gaudi::Property<std::vector<std::size_t>> m_maxHoles{this, "maxHoles", {}, "TrackSelector: maxHoles"};
133 Gaudi::Property<std::vector<std::size_t>> m_maxOutliers{this, "maxOutliers", {}, "TrackSelector: maxOutliers"};
134 Gaudi::Property<std::vector<std::size_t>> m_maxSharedHits{this, "maxSharedHits", {}, "TrackSelector: maxSharedHits"};
135 Gaudi::Property<std::vector<double>> m_maxChi2{this, "maxChi2", {}, "TrackSelector: maxChi2"};
136
137 Gaudi::Property<bool> m_addCounts{this, "addCounts", true, "keep separate pixel, strip and hgtd counts and apply the following cuts"};
138 Gaudi::Property<bool> m_checkCounts{this, "checkCounts", false, "check consistency among track state counts"};
139 Gaudi::Property<std::vector<std::size_t>> m_minPixelHits{this, "minPixelHits", {}, "minimum number of pixel hits"};
140 Gaudi::Property<std::vector<std::size_t>> m_minStripHits{this, "minStripHits", {}, "minimum number of strip hits"};
141 Gaudi::Property<std::vector<std::size_t>> m_minHgtdHits{this, "minHgtdHits", {}, "minimum number of hgtd hits"};
142 Gaudi::Property<std::vector<std::size_t>> m_maxPixelHoles{this, "maxPixelHoles", {}, "maximum number of pixel holes"};
143 Gaudi::Property<std::vector<std::size_t>> m_maxStripHoles{this, "maxStripHoles", {}, "maximum number of strip holes"};
144 Gaudi::Property<std::vector<std::size_t>> m_maxHgtdHoles{this, "maxHgtdHoles", {}, "maximum number of hgtd holes"};
145 Gaudi::Property<std::vector<std::size_t>> m_maxPixelOutliers{this, "maxPixelOutliers", {}, "maximum number of pixel outliers"};
146 Gaudi::Property<std::vector<std::size_t>> m_maxStripOutliers{this, "maxStripOutliers", {}, "maximum number of strip outliers"};
147 Gaudi::Property<std::vector<std::size_t>> m_maxHgtdOutliers{this, "maxHgtdOutliers", {}, "maximum number of hgtd outliers"};
148
149 Gaudi::Property<std::vector<std::uint32_t>> m_endOfWorldVolumeIds {this, "EndOfTheWorldVolumeIds", {}, ""};
150
151 // configuration of statistics tables
152 Gaudi::Property<std::vector<float>> m_statEtaBins{this, "StatisticEtaBins", {-4, -2.6, -2, 0, 2., 2.6, 4}, "Gather statistics separately for these bins."};
153 Gaudi::Property<std::vector<std::string>> m_seedLabels{this, "SeedLabels", {}, "One label per seed key used in outputs"};
154 Gaudi::Property<bool> m_dumpAllStatEtaBins{this, "DumpEtaBinsForAll", false, "Dump eta bins of all statistics counter."};
155
178
179 using EventStats = std::vector<std::array<unsigned int, kNStat>>;
180
181 // initialize measurement selector to be called during initialize
183
192 [[nodiscard]] std::unique_ptr<ActsTrk::IMeasurementSelector> setMeasurementSelector(
193 const EventContext &ctx,
194 const detail::TrackFindingMeasurements &measurements,
195 TrackFinderOptions &options) const;
196
204 TrackFindingDefaultOptions getDefaultOptions(const EventContext &ctx,
205 const DetectorContextHolder &detContext,
206 const detail::TrackFindingMeasurements &measurements,
207 const Acts::PerigeeSurface* pSurface) const;
208
220 template <class HandleArrayKeyType, class ContainerType>
222 const EventContext &ctx,
223 HandleArrayKeyType &handleKeyArray,
224 std::vector<const ContainerType *> &outputContainers,
225 std::size_t &sum) const;
226
232 const Acts::TrackSelector::Config &getCuts(double eta) const;
233
234 using TrkProxy = detail::RecoTrackContainer::TrackProxy;
235
251 std::vector<typename detail::RecoTrackContainer::TrackProxy>
253 const TrkProxy &trackProxy,
254 detail::RecoTrackContainer &tracksContainerTemp,
255 const TrackFinderOptions &options) const;
256
257 static xAOD::UncalibMeasType measurementType (const detail::RecoTrackContainer::TrackStateProxy &trackState);
258
259 using BranchStopperResult = Acts::CombinatorialKalmanFilterBranchStopperResult;
260
274 const detail::RecoTrackContainer::TrackProxy &track,
275 const detail::RecoTrackContainer::TrackStateProxy &trackState,
276 const Acts::TrackSelector::EtaBinnedConfig &trackSelectorCfg,
277 const Acts::GeometryContext &tgContext,
278 const detail::MeasurementIndex &measurementIndex,
279 const std::size_t typeIndex,
280 EventStats::value_type &event_stat_category_i) const;
281
282 struct BranchState {
283 static constexpr Acts::ProxyAccessor<unsigned int> nPixelHits{"nPixelHits"};
284 static constexpr Acts::ProxyAccessor<unsigned int> nStripHits{"nStripHits"};
285 static constexpr Acts::ProxyAccessor<unsigned int> nHgtdHits{"nHgtdHits"};
286 static constexpr Acts::ProxyAccessor<unsigned int> nPixelHoles{"nPixelHoles"};
287 static constexpr Acts::ProxyAccessor<unsigned int> nStripHoles{"nStripHoles"};
288 static constexpr Acts::ProxyAccessor<unsigned int> nHgtdHoles{"nHgtdHoles"};
289 static constexpr Acts::ProxyAccessor<unsigned int> nPixelOutliers{"nPixelOutliers"};
290 static constexpr Acts::ProxyAccessor<unsigned int> nStripOutliers{"nStripOutliers"};
291 static constexpr Acts::ProxyAccessor<unsigned int> nHgtdOutliers{"nHgtdOutliers"};
292 };
293 static constexpr BranchState s_branchState{};
294
295 static void addCountsAndProperties(detail::RecoTrackContainer &tracksContainer, bool add_counts);
296 static void initCounts(const detail::RecoTrackContainer::TrackProxy &track);
297 static void updateCounts(const detail::RecoTrackContainer::TrackProxy &track,
298 Acts::ConstTrackStateTypeMap typeFlags,
299 xAOD::UncalibMeasType detType);
300 void checkCounts(const detail::RecoTrackContainer::TrackProxy &track) const;
301 std::array<bool, 3> selectCounts(const detail::RecoTrackContainer::TrackProxy &track, double eta) const;
302
303 bool selectCountsFinal(const detail::RecoTrackContainer::TrackProxy &track) const;
304
306 const Acts::Logger &logger() const
307 {
308 return *m_logger;
309 }
310
312 std::unique_ptr<const Acts::Logger> m_logger;
313
314 // statistics
315 void initStatTables();
316 void copyStats(const EventStats &event_stat) const;
317 void printStatTables() const;
318
319 std::size_t nSeedCollections() const {
320 return m_seedLabels.size();
321 }
322 std::size_t seedCollectionStride() const {
323 return m_statEtaBins.size() + 1;
324 }
325 std::size_t getStatCategory(std::size_t seed_collection, float eta) const;
326 std::size_t computeStatSum(std::size_t seed_collection, EStat counter_i, const EventStats &stat) const;
327
328 bool m_useAbsEtaForStat = false;
330 mutable std::mutex m_mutex ATLAS_THREAD_SAFE;
331 mutable std::vector<std::array<std::size_t, kNStat>> m_stat ATLAS_THREAD_SAFE{};
332 };
333} // namespace ActsTrk
334
336
337#endif
Scalar eta() const
pseudorapidity method
Utility class to handle the three contexts neeeded in an ACTS reconstruction job 1) GeometryContext -...
Gaudi::Property< std::vector< std::size_t > > m_maxStripHoles
Gaudi::Property< double > m_branchStopperAbsEtaMeasCut
Gaudi::Property< std::vector< float > > m_statEtaBins
Gaudi::Property< double > m_branchStopperPtMinFactor
Gaudi::Property< std::vector< std::size_t > > m_maxOutliers
Gaudi::Property< std::vector< std::size_t > > m_maxHgtdHoles
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Gaudi::Property< std::vector< double > > m_etaBins
Gaudi::Property< bool > m_doTwoWay
Gaudi::Property< bool > m_dumpAllStatEtaBins
Gaudi::Property< std::vector< size_t > > m_numMeasurementsCutOff
Gaudi::Property< std::vector< std::size_t > > m_maxSharedHits
Gaudi::Property< unsigned int > m_maxPropagationStep
static xAOD::UncalibMeasType measurementType(const detail::RecoTrackContainer::TrackStateProxy &trackState)
ToolHandle< ActsTrk::TrackStatePrinterTool > m_trackStatePrinter
Gaudi::Property< double > m_edgeHoleBorderWidth
Gaudi::Property< std::vector< double > > m_etaMax
Gaudi::Property< std::vector< double > > m_ptMin
Gaudi::Property< std::vector< std::size_t > > m_minPixelHits
Gaudi::Property< std::vector< std::size_t > > m_maxStripOutliers
SG::WriteHandleKey< ActsTrk::TrackContainer > m_trackContainerKey
Gaudi::Property< std::vector< double > > m_ptMax
Gaudi::Property< std::vector< double > > m_chi2CutOff
Gaudi::Property< double > m_seedRefitPtMinFactor
detail::RecoTrackContainer::TrackProxy TrkProxy
Gaudi::Property< std::vector< std::size_t > > m_maxPixelHoles
static constexpr BranchState s_branchState
void copyStats(const EventStats &event_stat) const
Gaudi::Property< std::vector< double > > m_phiMin
Gaudi::Property< double > m_branchStopperMeasCutReduce
ToolHandle< ActsTrk::IPixelOnTrackCalibratorTool< detail::RecoTrackStateContainer > > m_pixelCalibTool
Gaudi::Property< std::vector< std::uint32_t > > m_endOfWorldVolumeIds
Gaudi::Property< std::vector< std::size_t > > m_minStripHits
ActsTrk::MutableTrackContainerHandlesHelper m_tracksBackendHandlesHelper
std::size_t getStatCategory(std::size_t seed_collection, float eta) const
std::size_t seedCollectionStride() const
Gaudi::Property< double > m_branchStopperAbsEtaMaxExtra
ToolHandle< GenericMonitoringTool > m_monTool
std::vector< typename detail::RecoTrackContainer::TrackProxy > doTwoWayTrackFinding(const detail::RecoTrackStateContainerProxy &firstMeasurement, const TrkProxy &trackProxy, detail::RecoTrackContainer &tracksContainerTemp, const TrackFinderOptions &options) const
Perform two-way track finding.
Gaudi::Property< std::vector< std::size_t > > m_absEtaMaxMeasurements
TrackFindingBaseAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< std::vector< double > > m_etaMin
Gaudi::Property< bool > m_recordMaterialStates
Gaudi::Property< std::vector< double > > m_d0Min
virtual StatusCode execute(const EventContext &ctx) const override
Gaudi::Property< std::vector< std::size_t > > m_maxHgtdOutliers
Gaudi::Property< std::vector< double > > m_z0Max
Gaudi::Property< double > m_absEtaMax
std::size_t computeStatSum(std::size_t seed_collection, EStat counter_i, const EventStats &stat) const
virtual StatusCode initialize() override
StatusCode getContainersFromKeys(const EventContext &ctx, HandleArrayKeyType &handleKeyArray, std::vector< const ContainerType * > &outputContainers, std::size_t &sum) const
Take the array of handle keys and for each key retrieve containers, then append them to the output ve...
Gaudi::Property< std::vector< double > > m_z0Min
void checkCounts(const detail::RecoTrackContainer::TrackProxy &track) const
Gaudi::Property< bool > m_doBranchStopper
static void addCountsAndProperties(detail::RecoTrackContainer &tracksContainer, bool add_counts)
Gaudi::Property< std::vector< std::size_t > > m_minMeasurements
Gaudi::Property< std::vector< double > > m_maxChi2
const Acts::Logger & logger() const
Private access to the logger.
Gaudi::Property< double > m_absEtaMin
BranchStopperResult stopBranch(const detail::RecoTrackContainer::TrackProxy &track, const detail::RecoTrackContainer::TrackStateProxy &trackState, const Acts::TrackSelector::EtaBinnedConfig &trackSelectorCfg, const Acts::GeometryContext &tgContext, const detail::MeasurementIndex &measurementIndex, const std::size_t typeIndex, EventStats::value_type &event_stat_category_i) const
Branch stopper.
static void initCounts(const detail::RecoTrackContainer::TrackProxy &track)
Gaudi::Property< std::vector< std::size_t > > m_maxPixelOutliers
const Acts::TrackSelector::Config & getCuts(double eta) const
Retrieves track selector configuration for given eta value.
Gaudi::Property< bool > m_checkCounts
Gaudi::Property< std::vector< std::size_t > > m_maxHoles
ToolHandle< ActsTrk::IStripOnTrackCalibratorTool< detail::RecoTrackStateContainer > > m_stripCalibTool
std::array< bool, 3 > selectCounts(const detail::RecoTrackContainer::TrackProxy &track, double eta) const
std::unique_ptr< CKF_pimpl > m_trackFinder
ServiceHandle< ActsTrk::ITrackingGeometrySvc > m_trackingGeometrySvc
TrackFindingDefaultOptions getDefaultOptions(const EventContext &ctx, const DetectorContextHolder &detContext, const detail::TrackFindingMeasurements &measurements, const Acts::PerigeeSurface *pSurface) const
Get CKF options for first and second pass + pointer to MeasurementSelector.
Acts::CombinatorialKalmanFilterOptions< detail::RecoTrackContainer > TrackFinderOptions
virtual StatusCode finalize() override
ContextUtility m_ctxProvider
Utility to fetch the geometry, magnetic field and calibration context in the event.
std::vector< std::array< unsigned int, kNStat > > EventStats
ToolHandle< ActsTrk::IHGTDOnTrackCalibratorTool< detail::RecoTrackStateContainer > > m_hgtdCalibTool
Gaudi::Property< double > m_twoWayinflateCovarianceFactor
static void updateCounts(const detail::RecoTrackContainer::TrackProxy &track, Acts::ConstTrackStateTypeMap typeFlags, xAOD::UncalibMeasType detType)
Gaudi::Property< bool > m_addCounts
Gaudi::Property< std::vector< std::size_t > > m_minHgtdHits
struct ActsTrk::TrackFindingBaseAlg::MeasurementSelectorConfig m_measurementSelectorConfig
Gaudi::Property< std::vector< double > > m_phiMax
Gaudi::Property< std::vector< std::size_t > > m_ptMinMeasurements
Gaudi::Property< std::vector< double > > m_d0Max
Gaudi::Property< bool > m_inflateCovarianceTwoWay
Gaudi::Property< std::vector< double > > m_chi2OutlierCutOff
Acts::CombinatorialKalmanFilterBranchStopperResult BranchStopperResult
std::unique_ptr< ActsTrk::IMeasurementSelector > setMeasurementSelector(const EventContext &ctx, const detail::TrackFindingMeasurements &measurements, TrackFinderOptions &options) const
Setup and attach measurement selector to KF options.
bool selectCountsFinal(const detail::RecoTrackContainer::TrackProxy &track) const
Gaudi::Property< std::vector< std::string > > m_seedLabels
An algorithm that can be simultaneously executed in multiple threads.
Property holding a SG store/key/clid from which a WriteHandle is made.
Hash functions to pack the source link into unordered_maps / unordered_sets.
RecoTrackStateContainer::TrackStateProxy RecoTrackStateContainerProxy
Acts::TrackContainer< Acts::VectorTrackContainer, Acts::VectorMultiTrajectory > RecoTrackContainer
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
UncalibMeasType
Define the type of the uncalibrated measurement.
static constexpr Acts::ProxyAccessor< unsigned int > nStripHoles
static constexpr Acts::ProxyAccessor< unsigned int > nPixelHoles
static constexpr Acts::ProxyAccessor< unsigned int > nStripHits
static constexpr Acts::ProxyAccessor< unsigned int > nPixelHits
static constexpr Acts::ProxyAccessor< unsigned int > nHgtdHits
static constexpr Acts::ProxyAccessor< unsigned int > nStripOutliers
static constexpr Acts::ProxyAccessor< unsigned int > nHgtdHoles
static constexpr Acts::ProxyAccessor< unsigned int > nPixelOutliers
static constexpr Acts::ProxyAccessor< unsigned int > nHgtdOutliers
std::vector< std::pair< float, float > > m_chi2CutOffOutlier
std::unique_ptr< ActsTrk::IMeasurementSelector > measurementSelector