ATLAS Offline Software
TrackFindingBaseAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 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 // Gaudi includes
12 #include "GaudiKernel/ToolHandle.h"
13 
14 // Tools
21 
22 // ACTS
23 #include "Acts/EventData/ProxyAccessor.hpp"
24 
25 // ActsTrk
28 #include "IMeasurementSelector.h"
29 
30 // Athena
32 
33 // Handle Keys
34 #include "src/detail/Definitions.h"
37 
38 namespace ActsTrk {
39  namespace detail {
40  class TrackFindingMeasurements;
41  class SharedHitCounter;
42  }
43 
45  public:
46  TrackFindingBaseAlg(const std::string &name, ISvcLocator *pSvcLocator);
48 
49  virtual StatusCode initialize() override;
50  virtual StatusCode finalize() override;
51  virtual StatusCode execute(const EventContext &ctx) const override;
52 
53  protected:
54  using TrackFinderOptions = Acts::CombinatorialKalmanFilterOptions<detail::RecoTrackContainer>;
55 
57  std::vector<std::pair<float, float>> m_chi2CutOffOutlier;
58  std::vector<float> m_etaBins;
60 
62  Acts::GeometryContext geometry;
63  Acts::MagneticFieldContext magField;
64  Acts::CalibrationContext calib;
65  };
66 
70  std::unique_ptr<ActsTrk::IMeasurementSelector> measurementSelector;
71  };
72 
73  // Access Acts::CombinatorialKalmanFilter etc using "pointer to implementation"
74  // so we don't have to instantiate the heavily templated classes in the header.
75  // To maintain const-correctness, only use this via the accessor functions.
76  struct CKF_pimpl;
77 
79  const CKF_pimpl &trackFinder() const;
80 
81  std::unique_ptr<CKF_pimpl> m_trackFinder;
82 
84 
85 
86  // Tool Handles
87  ToolHandle<GenericMonitoringTool> m_monTool{this, "MonTool", "", "Monitoring tool"};
88  ToolHandle<ActsTrk::IExtrapolationTool> m_extrapolationTool{this, "ExtrapolationTool", ""};
89  PublicToolHandle<ActsTrk::ITrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", ""};
90  ToolHandle<ActsTrk::TrackStatePrinterTool> m_trackStatePrinter{this, "TrackStatePrinter", "", "optional track state printer"};
91  ToolHandle<ActsTrk::IActsToTrkConverterTool > m_ATLASConverterTool{this, "ATLASConverterTool", ""};
92  ToolHandle<ActsTrk::IFitterTool> m_fitterTool{this, "FitterTool", "", "Fitter Tool for Seeds"};
93  ToolHandle<ActsTrk::IOnTrackCalibratorTool<detail::RecoTrackStateContainer>> m_pixelCalibTool{this, "PixelCalibrator", "", "Opt. pixel measurement calibrator"};
94  ToolHandle<ActsTrk::IOnTrackCalibratorTool<detail::RecoTrackStateContainer>> m_stripCalibTool{this, "StripCalibrator", "", "Opt. strip measurement calibrator"};
95  ToolHandle<ActsTrk::IOnTrackCalibratorTool<detail::RecoTrackStateContainer>> m_hgtdCalibTool{this, "HGTDCalibrator", "", "Opt. HGTD measurement calibrator"};
96 
97  SG::WriteHandleKey<ActsTrk::TrackContainer> m_trackContainerKey{this, "ACTSTracksLocation", "", "Output track collection (ActsTrk variant)"};
99 
100  // Configuration
101  Gaudi::Property<unsigned int> m_maxPropagationStep{this, "maxPropagationStep", 1000, "Maximum number of steps for one propagate call"};
102  Gaudi::Property<std::vector<double>> m_etaBins{this, "etaBins", {}, "bins in |eta| to specify variable selections"};
103  // Acts::MeasurementSelector selection cuts for associating measurements with predicted track parameters on a surface.
104  Gaudi::Property<std::vector<double>> m_chi2CutOff{this, "chi2CutOff", {}, "MeasurementSelector: maximum local chi2 contribution"};
105  Gaudi::Property<std::vector<double>> m_chi2OutlierCutOff{this, "chi2OutlierCutOff", {}, "MeasurementSelector: maximum local chi2 contribution for outlier"};
106  Gaudi::Property<std::vector<size_t>> m_numMeasurementsCutOff{this, "numMeasurementsCutOff", {}, "MeasurementSelector: maximum number of associated measurements on a single surface"};
107  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"};
108  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"};
109  Gaudi::Property<bool> m_doBranchStopper{this, "doBranchStopper", true, "use branch stopper"};
110  Gaudi::Property<bool> m_doTwoWay{this, "doTwoWay", true, "run CKF twice, first with forward propagation with smoothing, then with backward propagation"};
111  Gaudi::Property<double> m_branchStopperPtMinFactor{this, "branchStopperPtMinFactor", 1.0, "factor to multiply ptMin cut when used in the branch stopper"};
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 
156  enum EStat : std::size_t
157  {
174  kNStat
175  };
176 
177  using EventStats = std::vector<std::array<unsigned int, kNStat>>;
178 
179  // initialize measurement selector to be called during initialize
181 
189  [[nodiscard]] std::unique_ptr<ActsTrk::IMeasurementSelector> setMeasurementSelector(
190  const detail::TrackFindingMeasurements &measurements,
191  TrackFinderOptions &options) const;
192 
201  const detail::TrackFindingMeasurements &measurements,
202  const Acts::PerigeeSurface* pSurface) const;
203 
215  template <class HandleArrayKeyType, class ContainerType>
217  const EventContext &ctx,
218  HandleArrayKeyType &handleKeyArray,
219  std::vector<const ContainerType *> &outputContainers,
220  std::size_t &sum) const;
221 
227  const Acts::TrackSelector::Config &getCuts(double eta) const;
228 
240  template <class MeasurementSource>
241  std::unique_ptr<Acts::BoundTrackParameters> doRefit(
242  const MeasurementSource &measurement,
243  const Acts::BoundTrackParameters &initialParameters,
244  const DetectorContextHolder &detContext,
245  const bool paramsAtOutermostSurface) const;
246 
247  using TrkProxy = Acts::TrackProxy<Acts::VectorTrackContainer, Acts::VectorMultiTrajectory, Acts::detail::RefHolder, false>;
248 
264  std::vector<typename detail::RecoTrackContainer::TrackProxy>
266  const TrkProxy &trackProxy,
267  detail::RecoTrackContainer &tracksContainerTemp,
268  const TrackFinderOptions &options) const;
269 
270  static xAOD::UncalibMeasType measurementType (const detail::RecoTrackContainer::TrackStateProxy &trackState);
271 
272  using BranchStopperResult = Acts::CombinatorialKalmanFilterBranchStopperResult;
273 
287  const detail::RecoTrackContainer::TrackProxy &track,
288  const detail::RecoTrackContainer::TrackStateProxy &trackState,
289  const Acts::TrackSelector::EtaBinnedConfig &trackSelectorCfg,
290  const Acts::GeometryContext &tgContext,
291  const detail::MeasurementIndex &measurementIndex,
292  const std::size_t typeIndex,
293  EventStats::value_type &event_stat_category_i) const;
294 
295  struct BranchState {
296  static constexpr Acts::ProxyAccessor<unsigned int> nPixelHits{"nPixelHits"};
297  static constexpr Acts::ProxyAccessor<unsigned int> nStripHits{"nStripHits"};
298  static constexpr Acts::ProxyAccessor<unsigned int> nHgtdHits{"nHgtdHits"};
299  static constexpr Acts::ProxyAccessor<unsigned int> nPixelHoles{"nPixelHoles"};
300  static constexpr Acts::ProxyAccessor<unsigned int> nStripHoles{"nStripHoles"};
301  static constexpr Acts::ProxyAccessor<unsigned int> nHgtdHoles{"nHgtdHoles"};
302  static constexpr Acts::ProxyAccessor<unsigned int> nPixelOutliers{"nPixelOutliers"};
303  static constexpr Acts::ProxyAccessor<unsigned int> nStripOutliers{"nStripOutliers"};
304  static constexpr Acts::ProxyAccessor<unsigned int> nHgtdOutliers{"nHgtdOutliers"};
305  };
306  static constexpr BranchState s_branchState{};
307 
308  static void addCounts(detail::RecoTrackContainer &tracksContainer);
309  static void initCounts(const detail::RecoTrackContainer::TrackProxy &track);
310  static void updateCounts(const detail::RecoTrackContainer::TrackProxy &track,
311  Acts::ConstTrackStateType typeFlags,
312  xAOD::UncalibMeasType detType);
313  void checkCounts(const detail::RecoTrackContainer::TrackProxy &track) const;
314  std::array<bool, 3> selectCounts(const detail::RecoTrackContainer::TrackProxy &track, double eta) const;
315 
316  bool selectCountsFinal(const detail::RecoTrackContainer::TrackProxy &track) const;
317 
319  const Acts::Logger &logger() const
320  {
321  return *m_logger;
322  }
323 
325  std::unique_ptr<const Acts::Logger> m_logger;
326 
327  // statistics
328  void initStatTables();
329  void copyStats(const EventStats &event_stat) const;
330  void printStatTables() const;
331 
332  std::size_t nSeedCollections() const {
333  return m_seedLabels.size();
334  }
335  std::size_t seedCollectionStride() const {
336  return m_statEtaBins.size() + 1;
337  }
338  std::size_t getStatCategory(std::size_t seed_collection, float eta) const;
339  std::size_t computeStatSum(std::size_t seed_collection, EStat counter_i, const EventStats &stat) const;
340 
341  bool m_useAbsEtaForStat = false;
342  mutable std::mutex m_mutex ATLAS_THREAD_SAFE;
343  mutable std::vector<std::array<std::size_t, kNStat>> m_stat ATLAS_THREAD_SAFE{};
344  };
345 } // namespace ActsTrk
346 
348 
349 #endif
ActsTrk::detail::RecoTrackStateContainerProxy
RecoTrackStateContainer::TrackStateProxy RecoTrackStateContainerProxy
Definition: Tracking/Acts/ActsTrackReconstruction/src/detail/Definitions.h:25
ActsTrk::TrackFindingBaseAlg::m_trackContainerKey
SG::WriteHandleKey< ActsTrk::TrackContainer > m_trackContainerKey
Definition: TrackFindingBaseAlg.h:97
ActsTrk::TrackFindingBaseAlg::BranchState::nPixelOutliers
static constexpr Acts::ProxyAccessor< unsigned int > nPixelOutliers
Definition: TrackFindingBaseAlg.h:302
ActsTrk::TrackFindingBaseAlg::doTwoWayTrackFinding
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.
Definition: TrackFindingBaseAlg.cxx:237
ActsTrk::TrackFindingBaseAlg::m_d0Min
Gaudi::Property< std::vector< double > > m_d0Min
Definition: TrackFindingBaseAlg.h:126
ActsTrk::TrackFindingBaseAlg::m_doBranchStopper
Gaudi::Property< bool > m_doBranchStopper
Definition: TrackFindingBaseAlg.h:109
ActsTrk::TrackFindingBaseAlg::m_absEtaMax
Gaudi::Property< double > m_absEtaMax
Definition: TrackFindingBaseAlg.h:123
ActsTrk::TrackFindingBaseAlg::kNStat
@ kNStat
Definition: TrackFindingBaseAlg.h:174
ActsTrk::TrackFindingBaseAlg::EStat
EStat
Definition: TrackFindingBaseAlg.h:157
TrackFindingBaseAlg.icc
ActsTrk::TrackFindingBaseAlg::m_pixelCalibTool
ToolHandle< ActsTrk::IOnTrackCalibratorTool< detail::RecoTrackStateContainer > > m_pixelCalibTool
Definition: TrackFindingBaseAlg.h:93
ActsTrk::TrackFindingBaseAlg::m_maxStripHoles
Gaudi::Property< std::vector< std::size_t > > m_maxStripHoles
Definition: TrackFindingBaseAlg.h:143
ActsTrk::TrackFindingBaseAlg::TrkProxy
Acts::TrackProxy< Acts::VectorTrackContainer, Acts::VectorMultiTrajectory, Acts::detail::RefHolder, false > TrkProxy
Definition: TrackFindingBaseAlg.h:247
ActsTrk::TrackFindingBaseAlg::m_z0Max
Gaudi::Property< std::vector< double > > m_z0Max
Definition: TrackFindingBaseAlg.h:129
ActsTrk::TrackFindingBaseAlg::s_branchState
static constexpr BranchState s_branchState
Definition: TrackFindingBaseAlg.h:306
ActsTrk::detail::TrackFindingMeasurements
Definition: TrackFindingMeasurements.h:21
Definitions.h
ActsTrk::TrackFindingBaseAlg::m_unalibMeasSurfAcc
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc
Definition: TrackFindingBaseAlg.h:83
ActsTrk::TrackFindingBaseAlg::TrackFinderOptions
Acts::CombinatorialKalmanFilterOptions< detail::RecoTrackContainer > TrackFinderOptions
Definition: TrackFindingBaseAlg.h:54
ActsTrk::TrackFindingBaseAlg::TrackFindingDefaultOptions::options
TrackFinderOptions options
Definition: TrackFindingBaseAlg.h:68
ActsTrk::TrackFindingBaseAlg::updateCounts
static void updateCounts(const detail::RecoTrackContainer::TrackProxy &track, Acts::ConstTrackStateType typeFlags, xAOD::UncalibMeasType detType)
Definition: TrackFindingBaseAlg.cxx:410
ActsTrk::TrackFindingBaseAlg::m_tracksBackendHandlesHelper
ActsTrk::MutableTrackContainerHandlesHelper m_tracksBackendHandlesHelper
Definition: TrackFindingBaseAlg.h:98
ActsTrk::TrackFindingBaseAlg::kNoSecond
@ kNoSecond
Definition: TrackFindingBaseAlg.h:169
ActsTrk::TrackFindingBaseAlg::m_phiMax
Gaudi::Property< std::vector< double > > m_phiMax
Definition: TrackFindingBaseAlg.h:119
ActsTrk::TrackFindingBaseAlg::m_etaMin
Gaudi::Property< std::vector< double > > m_etaMin
Definition: TrackFindingBaseAlg.h:120
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
ActsTrk::TrackFindingBaseAlg::m_addCounts
Gaudi::Property< bool > m_addCounts
Definition: TrackFindingBaseAlg.h:137
ActsTrk::TrackFindingBaseAlg::m_maxHoles
Gaudi::Property< std::vector< std::size_t > > m_maxHoles
Definition: TrackFindingBaseAlg.h:132
ActsTrk::TrackFindingBaseAlg::initialize
virtual StatusCode initialize() override
Definition: TrackFindingBaseAlg.cxx:26
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
ActsTrk::TrackFindingBaseAlg::finalize
virtual StatusCode finalize() override
Definition: TrackFindingBaseAlg.cxx:177
IOnTrackCalibratorTool.h
ActsTrk::TrackFindingBaseAlg::m_maxHgtdHoles
Gaudi::Property< std::vector< std::size_t > > m_maxHgtdHoles
Definition: TrackFindingBaseAlg.h:144
ActsTrk::TrackFindingBaseAlg::m_minHgtdHits
Gaudi::Property< std::vector< std::size_t > > m_minHgtdHits
Definition: TrackFindingBaseAlg.h:141
ActsTrk::TrackFindingBaseAlg::EventStats
std::vector< std::array< unsigned int, kNStat > > EventStats
Definition: TrackFindingBaseAlg.h:177
ActsTrk::TrackFindingBaseAlg::TrackFindingDefaultOptions::measurementSelector
std::unique_ptr< ActsTrk::IMeasurementSelector > measurementSelector
Definition: TrackFindingBaseAlg.h:70
ActsTrk::TrackFindingBaseAlg::m_maxPixelHoles
Gaudi::Property< std::vector< std::size_t > > m_maxPixelHoles
Definition: TrackFindingBaseAlg.h:142
ActsTrk::TrackFindingBaseAlg::addCounts
static void addCounts(detail::RecoTrackContainer &tracksContainer)
Definition: TrackFindingBaseAlg.cxx:384
ActsTrk::TrackFindingBaseAlg::getDefaultOptions
TrackFindingDefaultOptions getDefaultOptions(const DetectorContextHolder &detContext, const detail::TrackFindingMeasurements &measurements, const Acts::PerigeeSurface *pSurface) const
Get CKF options for first and second pass + pointer to MeasurementSelector.
Definition: TrackFindingBaseAlg.cxx:201
ActsTrk::TrackFindingBaseAlg::m_dumpAllStatEtaBins
Gaudi::Property< bool > m_dumpAllStatEtaBins
Definition: TrackFindingBaseAlg.h:154
ActsTrk::TrackFindingBaseAlg::BranchState::nHgtdHits
static constexpr Acts::ProxyAccessor< unsigned int > nHgtdHits
Definition: TrackFindingBaseAlg.h:298
ActsTrk::TrackFindingBaseAlg::m_maxChi2
Gaudi::Property< std::vector< double > > m_maxChi2
Definition: TrackFindingBaseAlg.h:135
ActsTrk::TrackFindingBaseAlg::m_extrapolationTool
ToolHandle< ActsTrk::IExtrapolationTool > m_extrapolationTool
Definition: TrackFindingBaseAlg.h:88
ActsTrk::TrackFindingBaseAlg::m_absEtaMaxMeasurements
Gaudi::Property< std::vector< std::size_t > > m_absEtaMaxMeasurements
Definition: TrackFindingBaseAlg.h:108
ActsTrk::TrackFindingBaseAlg::BranchStopperResult
Acts::CombinatorialKalmanFilterBranchStopperResult BranchStopperResult
Definition: TrackFindingBaseAlg.h:272
ActsTrk::TrackFindingBaseAlg::m_hgtdCalibTool
ToolHandle< ActsTrk::IOnTrackCalibratorTool< detail::RecoTrackStateContainer > > m_hgtdCalibTool
Definition: TrackFindingBaseAlg.h:95
ActsTrk::TrackFindingBaseAlg::printStatTables
void printStatTables() const
Definition: TrackFindingBaseAlg.cxx:551
IExtrapolationTool.h
ActsTrk::TrackFindingBaseAlg::computeStatSum
std::size_t computeStatSum(std::size_t seed_collection, EStat counter_i, const EventStats &stat) const
Definition: TrackFindingBaseAlg.cxx:746
ActsTrk::TrackFindingBaseAlg::DetectorContextHolder::magField
Acts::MagneticFieldContext magField
Definition: TrackFindingBaseAlg.h:63
detail
Definition: extract_histogram_tag.cxx:14
ActsTrk::TrackFindingBaseAlg::kNUsedSeeds
@ kNUsedSeeds
Definition: TrackFindingBaseAlg.h:160
ActsTrk::TrackFindingBaseAlg::BranchState::nPixelHits
static constexpr Acts::ProxyAccessor< unsigned int > nPixelHits
Definition: TrackFindingBaseAlg.h:296
ActsTrk::TrackFindingBaseAlg::m_branchStopperAbsEtaMaxExtra
Gaudi::Property< double > m_branchStopperAbsEtaMaxExtra
Definition: TrackFindingBaseAlg.h:112
ActsTrk::TrackFindingBaseAlg::m_chi2OutlierCutOff
Gaudi::Property< std::vector< double > > m_chi2OutlierCutOff
Definition: TrackFindingBaseAlg.h:105
ActsTrk::detail::MeasurementIndex
Definition: MeasurementIndex.h:16
ActsTrk::TrackFindingBaseAlg::m_ATLASConverterTool
ToolHandle< ActsTrk::IActsToTrkConverterTool > m_ATLASConverterTool
Definition: TrackFindingBaseAlg.h:91
ActsTrk::detail::RecoTrackContainer
Acts::TrackContainer< Acts::VectorTrackContainer, Acts::VectorMultiTrajectory > RecoTrackContainer
Definition: Tracking/Acts/ActsTrackReconstruction/src/detail/Definitions.h:22
ActsTrk::TrackFindingBaseAlg::m_maxOutliers
Gaudi::Property< std::vector< std::size_t > > m_maxOutliers
Definition: TrackFindingBaseAlg.h:133
ActsTrk::TrackFindingBaseAlg::BranchState::nStripHoles
static constexpr Acts::ProxyAccessor< unsigned int > nStripHoles
Definition: TrackFindingBaseAlg.h:300
ActsTrk::TrackFindingBaseAlg::initStatTables
void initStatTables()
Definition: TrackFindingBaseAlg.cxx:518
ActsTrk::TrackFindingBaseAlg::trackFinder
CKF_pimpl & trackFinder()
Definition: TrackFindingBaseAlg.cxx:19
ActsTrk::TrackFindingBaseAlg::TrackFindingDefaultOptions
Definition: TrackFindingBaseAlg.h:67
ActsTrk::TrackFindingBaseAlg::kMultipleBranches
@ kMultipleBranches
Definition: TrackFindingBaseAlg.h:168
ActsTrk::TrackFindingBaseAlg::kNoTrackParam
@ kNoTrackParam
Definition: TrackFindingBaseAlg.h:159
ActsTrk::TrackFindingBaseAlg::m_etaMax
Gaudi::Property< std::vector< double > > m_etaMax
Definition: TrackFindingBaseAlg.h:121
ActsTrk::TrackFindingBaseAlg::MeasurementSelectorConfig::m_chi2CutOffOutlier
std::vector< std::pair< float, float > > m_chi2CutOffOutlier
Definition: TrackFindingBaseAlg.h:57
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
ActsTrk::TrackFindingBaseAlg::m_endOfWorldVolumeIds
Gaudi::Property< std::vector< std::uint32_t > > m_endOfWorldVolumeIds
Definition: TrackFindingBaseAlg.h:149
ActsTrk::TrackFindingBaseAlg::kNStoppedTracksMinPt
@ kNStoppedTracksMinPt
Definition: TrackFindingBaseAlg.h:170
ActsTrk::TrackFindingBaseAlg::getStatCategory
std::size_t getStatCategory(std::size_t seed_collection, float eta) const
Definition: TrackFindingBaseAlg.cxx:737
ActsTrk::TrackFindingBaseAlg::checkCounts
void checkCounts(const detail::RecoTrackContainer::TrackProxy &track) const
Definition: TrackFindingBaseAlg.cxx:440
ActsTrk::TrackFindingBaseAlg::m_maxSharedHits
Gaudi::Property< std::vector< std::size_t > > m_maxSharedHits
Definition: TrackFindingBaseAlg.h:134
ActsTrk::TrackFindingBaseAlg::m_branchStopperPtMinFactor
Gaudi::Property< double > m_branchStopperPtMinFactor
Definition: TrackFindingBaseAlg.h:111
ActsTrk::TrackFindingBaseAlg::setMeasurementSelector
std::unique_ptr< ActsTrk::IMeasurementSelector > setMeasurementSelector(const detail::TrackFindingMeasurements &measurements, TrackFinderOptions &options) const
Setup and attach measurement selector to KF options.
Definition: TrackFindingBaseAlg.cxx:183
ActsTrk::TrackFindingBaseAlg::m_phiMin
Gaudi::Property< std::vector< double > > m_phiMin
Definition: TrackFindingBaseAlg.h:118
GenericMonitoringTool.h
ActsTrk::TrackFindingBaseAlg::m_minMeasurements
Gaudi::Property< std::vector< std::size_t > > m_minMeasurements
Definition: TrackFindingBaseAlg.h:131
ActsTrk::TrackFindingBaseAlg::m_chi2CutOff
Gaudi::Property< std::vector< double > > m_chi2CutOff
Definition: TrackFindingBaseAlg.h:104
ActsTrk::TrackFindingBaseAlg::getContainersFromKeys
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...
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
SG::WriteHandleKey< ActsTrk::TrackContainer >
ActsTrk::TrackFindingBaseAlg::kNOutputTracks
@ kNOutputTracks
Definition: TrackFindingBaseAlg.h:164
ActsTrk::TrackFindingBaseAlg::DetectorContextHolder::calib
Acts::CalibrationContext calib
Definition: TrackFindingBaseAlg.h:64
ActsTrk::TrackFindingBaseAlg::m_branchStopperMeasCutReduce
Gaudi::Property< double > m_branchStopperMeasCutReduce
Definition: TrackFindingBaseAlg.h:113
ActsTrk::TrackFindingBaseAlg::doRefit
std::unique_ptr< Acts::BoundTrackParameters > doRefit(const MeasurementSource &measurement, const Acts::BoundTrackParameters &initialParameters, const DetectorContextHolder &detContext, const bool paramsAtOutermostSurface) const
Perform Kalman Filter fit and update given initialParameters.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::TrackFindingBaseAlg::seedCollectionStride
std::size_t seedCollectionStride() const
Definition: TrackFindingBaseAlg.h:335
ActsTrk::TrackFindingBaseAlg::m_seedLabels
Gaudi::Property< std::vector< std::string > > m_seedLabels
Definition: TrackFindingBaseAlg.h:153
ActsTrk::TrackFindingBaseAlg::m_maxPixelOutliers
Gaudi::Property< std::vector< std::size_t > > m_maxPixelOutliers
Definition: TrackFindingBaseAlg.h:145
ActsTrk::TrackFindingBaseAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrackFindingBaseAlg.h:87
ActsTrk::TrackFindingBaseAlg::m_d0Max
Gaudi::Property< std::vector< double > > m_d0Max
Definition: TrackFindingBaseAlg.h:127
ActsTrk::TrackFindingBaseAlg::TrackFindingDefaultOptions::secondOptions
TrackFinderOptions secondOptions
Definition: TrackFindingBaseAlg.h:69
ActsTrk::TrackFindingBaseAlg::DetectorContextHolder
Definition: TrackFindingBaseAlg.h:61
ActsTrk::TrackFindingBaseAlg::BranchState::nStripOutliers
static constexpr Acts::ProxyAccessor< unsigned int > nStripOutliers
Definition: TrackFindingBaseAlg.h:303
ActsTrk::MutableTrackContainerHandlesHelper
Definition: TrackContainerHandlesHelper.h:33
ActsTrk::TrackFindingBaseAlg::measurementType
static xAOD::UncalibMeasType measurementType(const detail::RecoTrackContainer::TrackStateProxy &trackState)
Definition: TrackFindingBaseAlg.cxx:261
TrackStatePrinterTool.h
ActsTrk::TrackFindingBaseAlg::ATLAS_THREAD_SAFE
std::mutex m_mutex ATLAS_THREAD_SAFE
Definition: TrackFindingBaseAlg.h:342
ActsTrk::TrackFindingBaseAlg::m_branchStopperAbsEtaMeasCut
Gaudi::Property< double > m_branchStopperAbsEtaMeasCut
Definition: TrackFindingBaseAlg.h:114
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:378
ActsTrk::TrackFindingBaseAlg::selectCounts
std::array< bool, 3 > selectCounts(const detail::RecoTrackContainer::TrackProxy &track, double eta) const
Definition: TrackFindingBaseAlg.cxx:463
ActsTrk::TrackFindingBaseAlg::m_maxPropagationStep
Gaudi::Property< unsigned int > m_maxPropagationStep
Definition: TrackFindingBaseAlg.h:101
beamspotman.stat
stat
Definition: beamspotman.py:262
ActsTrk::TrackFindingBaseAlg::DetectorContextHolder::geometry
Acts::GeometryContext geometry
Definition: TrackFindingBaseAlg.h:62
ActsTrk::TrackFindingBaseAlg::m_numMeasurementsCutOff
Gaudi::Property< std::vector< size_t > > m_numMeasurementsCutOff
Definition: TrackFindingBaseAlg.h:106
ActsTrk::TrackFindingBaseAlg::m_stripCalibTool
ToolHandle< ActsTrk::IOnTrackCalibratorTool< detail::RecoTrackStateContainer > > m_stripCalibTool
Definition: TrackFindingBaseAlg.h:94
AthReentrantAlgorithm.h
ActsTrk::TrackFindingBaseAlg::m_minStripHits
Gaudi::Property< std::vector< std::size_t > > m_minStripHits
Definition: TrackFindingBaseAlg.h:140
ActsTrk::TrackFindingBaseAlg::kNStoppedTracksMaxHoles
@ kNStoppedTracksMaxHoles
Definition: TrackFindingBaseAlg.h:167
ActsTrk::TrackFindingBaseAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: TrackFindingBaseAlg.cxx:171
ActsTrk::TrackFindingBaseAlg::m_useAbsEtaForStat
bool m_useAbsEtaForStat
Definition: TrackFindingBaseAlg.h:341
ActsTrk::TrackFindingBaseAlg::m_etaBins
Gaudi::Property< std::vector< double > > m_etaBins
Definition: TrackFindingBaseAlg.h:102
ActsTrk::TrackFindingBaseAlg::kNNoEstimatedParams
@ kNNoEstimatedParams
Definition: TrackFindingBaseAlg.h:163
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ActsTrk::TrackFindingBaseAlg::kNTotalSeeds
@ kNTotalSeeds
Definition: TrackFindingBaseAlg.h:158
ActsTrk::TrackFindingBaseAlg::selectCountsFinal
bool selectCountsFinal(const detail::RecoTrackContainer::TrackProxy &track) const
Definition: TrackFindingBaseAlg.cxx:758
ActsTrk::TrackFindingBaseAlg::TrackFindingBaseAlg
TrackFindingBaseAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrackFindingBaseAlg.cxx:22
ActsTrk::TrackFindingBaseAlg::stopBranch
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.
Definition: TrackFindingBaseAlg.cxx:279
ActsTrk::TrackFindingBaseAlg::kNStoppedTracksMaxEta
@ kNStoppedTracksMaxEta
Definition: TrackFindingBaseAlg.h:171
IFitterTool.h
ActsTrk::TrackFindingBaseAlg::getCuts
const Acts::TrackSelector::Config & getCuts(double eta) const
Retrieves track selector configuration for given eta value.
Definition: TrackFindingBaseAlg.cxx:228
ActsTrk::TrackFindingBaseAlg::initializeMeasurementSelector
StatusCode initializeMeasurementSelector()
Definition: TrackFindingBaseAlg.cxx:489
ActsTrk::TrackFindingBaseAlg::kNForcedSeedMeasurements
@ kNForcedSeedMeasurements
Definition: TrackFindingBaseAlg.h:173
ActsTrk::TrackFindingBaseAlg::m_minPixelHits
Gaudi::Property< std::vector< std::size_t > > m_minPixelHits
Definition: TrackFindingBaseAlg.h:139
xAODUncalibMeasSurfAcc.h
ActsTrk::TrackFindingBaseAlg::m_checkCounts
Gaudi::Property< bool > m_checkCounts
Definition: TrackFindingBaseAlg.h:138
TrigCaloRecConfig.outputContainers
outputContainers
Definition: TrigCaloRecConfig.py:561
ActsTrk::TrackFindingBaseAlg::BranchState::nStripHits
static constexpr Acts::ProxyAccessor< unsigned int > nStripHits
Definition: TrackFindingBaseAlg.h:297
ActsTrk::TrackFindingBaseAlg::CKF_pimpl
Definition: TrackFindingAlg.cxx:71
ActsTrk::TrackFindingBaseAlg::m_trackingGeometryTool
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
Definition: TrackFindingBaseAlg.h:89
ActsTrk::TrackFindingBaseAlg::BranchState::nPixelHoles
static constexpr Acts::ProxyAccessor< unsigned int > nPixelHoles
Definition: TrackFindingBaseAlg.h:299
ActsTrk::TrackFindingBaseAlg::nSeedCollections
std::size_t nSeedCollections() const
Definition: TrackFindingBaseAlg.h:332
ActsTrk::TrackFindingBaseAlg::m_ptMin
Gaudi::Property< std::vector< double > > m_ptMin
Definition: TrackFindingBaseAlg.h:124
ActsTrk::TrackFindingBaseAlg::m_ptMax
Gaudi::Property< std::vector< double > > m_ptMax
Definition: TrackFindingBaseAlg.h:125
ActsTrk::TrackFindingBaseAlg::kNDuplicateSeeds
@ kNDuplicateSeeds
Definition: TrackFindingBaseAlg.h:162
ActsTrk::TrackFindingBaseAlg::m_absEtaMin
Gaudi::Property< double > m_absEtaMin
Definition: TrackFindingBaseAlg.h:122
ActsTrk::TrackFindingBaseAlg::kNTotalSharedHits
@ kNTotalSharedHits
Definition: TrackFindingBaseAlg.h:172
ActsTrk::TrackFindingBaseAlg::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: TrackFindingBaseAlg.h:325
ActsTrk::TrackFindingBaseAlg::m_ptMinMeasurements
Gaudi::Property< std::vector< std::size_t > > m_ptMinMeasurements
Definition: TrackFindingBaseAlg.h:107
ActsTrk::TrackFindingBaseAlg::m_trackStatePrinter
ToolHandle< ActsTrk::TrackStatePrinterTool > m_trackStatePrinter
Definition: TrackFindingBaseAlg.h:90
ActsTrk::TrackFindingBaseAlg::copyStats
void copyStats(const EventStats &event_stat) const
Definition: TrackFindingBaseAlg.cxx:536
ActsTrk::TrackFindingBaseAlg::BranchState::nHgtdHoles
static constexpr Acts::ProxyAccessor< unsigned int > nHgtdHoles
Definition: TrackFindingBaseAlg.h:301
ActsTrk::TrackFindingBaseAlg::m_measurementSelectorConfig
struct ActsTrk::TrackFindingBaseAlg::MeasurementSelectorConfig m_measurementSelectorConfig
ITrackingGeometryTool.h
ActsTrk::TrackFindingBaseAlg::BranchState::nHgtdOutliers
static constexpr Acts::ProxyAccessor< unsigned int > nHgtdOutliers
Definition: TrackFindingBaseAlg.h:304
xAOD::UncalibMeasType
UncalibMeasType
Define the type of the uncalibrated measurement.
Definition: MeasurementDefs.h:25
ActsTrk::TrackFindingBaseAlg::MeasurementSelectorConfig::m_etaBins
std::vector< float > m_etaBins
Definition: TrackFindingBaseAlg.h:58
ITrackParamsEstimationTool.h
ActsTrk::TrackFindingBaseAlg::m_statEtaBins
Gaudi::Property< std::vector< float > > m_statEtaBins
Definition: TrackFindingBaseAlg.h:152
ActsTrk::TrackFindingBaseAlg::m_maxStripOutliers
Gaudi::Property< std::vector< std::size_t > > m_maxStripOutliers
Definition: TrackFindingBaseAlg.h:146
ActsTrk::TrackFindingBaseAlg::initCounts
static void initCounts(const detail::RecoTrackContainer::TrackProxy &track)
Definition: TrackFindingBaseAlg.cxx:397
ActsTrk::TrackFindingBaseAlg::m_fitterTool
ToolHandle< ActsTrk::IFitterTool > m_fitterTool
Definition: TrackFindingBaseAlg.h:92
ActsTrk::TrackFindingBaseAlg::BranchState
Definition: TrackFindingBaseAlg.h:295
ActsTrk::TrackFindingBaseAlg::m_maxHgtdOutliers
Gaudi::Property< std::vector< std::size_t > > m_maxHgtdOutliers
Definition: TrackFindingBaseAlg.h:147
ActsTrk::TrackFindingBaseAlg::kNSelectedTracks
@ kNSelectedTracks
Definition: TrackFindingBaseAlg.h:166
IActsToTrkConverterTool.h
ActsTrk::TrackFindingBaseAlg::kNoTrack
@ kNoTrack
Definition: TrackFindingBaseAlg.h:161
ActsTrk::TrackFindingBaseAlg::m_trackFinder
std::unique_ptr< CKF_pimpl > m_trackFinder
Definition: TrackFindingBaseAlg.h:81
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MdtCalibInput.h:31
ActsTrk::TrackFindingBaseAlg::~TrackFindingBaseAlg
~TrackFindingBaseAlg()
ActsTrk::detail::xAODUncalibMeasSurfAcc
Helper class to access the Acts::surface associated with an Uncalibrated xAOD measurement.
Definition: xAODUncalibMeasSurfAcc.h:22
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
IMeasurementSelector.h
TrackContainerHandlesHelper.h
ActsTrk::TrackFindingBaseAlg::m_z0Min
Gaudi::Property< std::vector< double > > m_z0Min
Definition: TrackFindingBaseAlg.h:128
ActsTrk::TrackFindingBaseAlg
Definition: TrackFindingBaseAlg.h:44
ActsTrk::TrackFindingBaseAlg::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition: TrackFindingBaseAlg.h:319
TrackContainer.h
ActsTrk::TrackFindingBaseAlg::MeasurementSelectorConfig
Definition: TrackFindingBaseAlg.h:56
ActsTrk::TrackFindingBaseAlg::m_doTwoWay
Gaudi::Property< bool > m_doTwoWay
Definition: TrackFindingBaseAlg.h:110
ActsTrk::TrackFindingBaseAlg::kNRejectedRefinedSeeds
@ kNRejectedRefinedSeeds
Definition: TrackFindingBaseAlg.h:165