ATLAS Offline Software
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 
16 namespace ActsTrk::detail {
17 
18  // Helper class to keep track of measurement indices, used for shared hits and debug printing
20  public:
21  SharedHitCounter() = default;
22  SharedHitCounter(const SharedHitCounter &) = default;
25  SharedHitCounter &operator=(SharedHitCounter &&) noexcept = 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:
53  struct TrackStateIndex {
54  std::size_t trackIndex;
55  std::size_t stateIndex;
56  };
58  std::vector<TrackStateIndex> m_firstTrackStateOnTheHit;
59  };
60 
61 } // namespace ActsTrk::detail
62 
64 
65 #endif
ActsTrk::detail::SharedHitCounter::SharedHitCounter
SharedHitCounter()=default
ActsTrk::detail::SharedHitCounter::m_firstTrackStateOnTheHit
std::vector< TrackStateIndex > m_firstTrackStateOnTheHit
Definition: SharedHitCounter.h:58
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
ActsTrk::detail::SharedHitCounter::TrackStateIndex::stateIndex
std::size_t stateIndex
Definition: SharedHitCounter.h:55
taskman.template
dictionary template
Definition: taskman.py:316
ActsTrk::detail::SharedHitCounter::ReturnSharedAndBad
std::pair< std::size_t, std::size_t > ReturnSharedAndBad
Definition: SharedHitCounter.h:28
SharedHitCounter.icc
ActsTrk::detail::SharedHitCounter
Definition: SharedHitCounter.h:19
ActsTrk::detail::SharedHitCounter::TrackStateIndex::trackIndex
std::size_t trackIndex
Definition: SharedHitCounter.h:54
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
ActsTrk::detail::MeasurementIndex
Definition: MeasurementIndex.h:16
MeasurementIndex.h
ActsTrk::detail::SharedHitCounter::computeSharedHitsDynamic
auto computeSharedHitsDynamic(typename track_container_t::TrackProxy &track, track_container_t &tracks, MeasurementIndex &measurementIndex, bool removeSharedHits=false) -> ReturnSharedAndBad
ActsTrk::detail::SharedHitCounter::s_noTrackState
static constexpr TrackStateIndex s_noTrackState
Definition: SharedHitCounter.h:57
Acts
Definition: MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:17
ActsTrk::detail::SharedHitCounter::SharedHitCounter
SharedHitCounter(const SharedHitCounter &)=default
ActsTrk::detail::SharedHitCounter::SharedHitCounter
SharedHitCounter(SharedHitCounter &&) noexcept=default
ActsTrk::detail::SharedHitCounter::TrackStateIndex
Definition: SharedHitCounter.h:53
python.Dumpers.typename
def typename(t)
Definition: Dumpers.py:193
python.CaloAddPedShiftConfig.default
default
Definition: CaloAddPedShiftConfig.py:43
private
#define private
Definition: xAODTruthCnvAlg.h:20
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
ActsTrk::detail
Athena definition of the Eigen plugin.
Definition: MeasurementCalibratorBase.h:19
ActsTrk::detail::SharedHitCounter::operator=
SharedHitCounter & operator=(const SharedHitCounter &)=default
ActsTrk::detail::SharedHitCounter::computeSharedHits
auto computeSharedHits(typename track_container_t::TrackProxy &track, track_container_t &tracks, const MeasurementIndex &measurementIndex, bool removeSharedHits=false) -> ReturnSharedAndBad