ATLAS Offline Software
Loading...
Searching...
No Matches
SharedHitCounter.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_SHAREDHITCOUNTER_H
6#define ACTSTRACKRECONSTRUCTION_SHAREDHITCOUNTER_H
7
9
10#include "Acts/EventData/TrackContainerFrontendConcept.hpp"
11
12#include <utility>
13#include <vector>
14
15
16namespace ActsTrk::detail {
17
18 // Helper class to keep track of measurement indices, used for shared hits and debug printing
20 public:
21 SharedHitCounter() = default;
24 SharedHitCounter(SharedHitCounter &&) noexcept = default;
25 SharedHitCounter &operator=(SharedHitCounter &&) noexcept = default;
26 ~SharedHitCounter() = default;
27
28 using ReturnSharedAndBad = std::pair<std::size_t, std::size_t>;
29
30 template <Acts::TrackContainerFrontend track_container_t>
31 inline auto computeSharedHitsDynamic(typename track_container_t::TrackProxy &track,
32 track_container_t &tracks,
33 MeasurementIndex &measurementIndex,
34 bool removeSharedHits = false)
36
37 template <Acts::TrackContainerFrontend track_container_t>
38 inline auto computeSharedHits(typename track_container_t::TrackProxy &track,
39 track_container_t &tracks,
40 const MeasurementIndex &measurementIndex,
41 bool removeSharedHits = false)
43
44 template <Acts::TrackContainerFrontend track_container_t, typename IndexFun>
45 inline auto computeSharedHits(typename track_container_t::TrackProxy &track,
46 track_container_t &tracks,
47 std::size_t indexSize,
48 IndexFun &&indexFun,
49 bool removeSharedHits = false)
51
52 private:
54 std::size_t trackIndex;
55 std::size_t stateIndex;
56 };
57 static constexpr TrackStateIndex s_noTrackState{std::numeric_limits<std::size_t>::max(), std::numeric_limits<std::size_t>::max()};
58 std::vector<TrackStateIndex> m_firstTrackStateOnTheHit;
59 };
60
61} // namespace ActsTrk::detail
62
64
65#endif
auto computeSharedHits(typename track_container_t::TrackProxy &track, track_container_t &tracks, const MeasurementIndex &measurementIndex, bool removeSharedHits=false) -> ReturnSharedAndBad
auto computeSharedHitsDynamic(typename track_container_t::TrackProxy &track, track_container_t &tracks, MeasurementIndex &measurementIndex, bool removeSharedHits=false) -> ReturnSharedAndBad
static constexpr TrackStateIndex s_noTrackState
std::pair< std::size_t, std::size_t > ReturnSharedAndBad
std::vector< TrackStateIndex > m_firstTrackStateOnTheHit
SharedHitCounter(SharedHitCounter &&) noexcept=default
SharedHitCounter(const SharedHitCounter &)=default
SharedHitCounter & operator=(const SharedHitCounter &)=default
STL class.
Athena definition of the Eigen plugin.
STL namespace.
#define private