ATLAS Offline Software
Loading...
Searching...
No Matches
TrackFindingMeasurements.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_TRACKFINDINGMEASUREMENTS_H
6#define ACTSTRACKRECONSTRUCTION_TRACKFINDINGMEASUREMENTS_H
7
8
9
13#include <vector>
14
15namespace ActsTrk {
17}
18
19namespace ActsTrk::detail {
20
21 // Helper class to convert and store MeasurementContainer specializations to MeasurementRangeList
23 public:
24 TrackFindingMeasurements(std::size_t nMeasurementContainerMax);
28 TrackFindingMeasurements &operator=(TrackFindingMeasurements &&) noexcept = default;
30
31 void addMeasurements(std::size_t typeIndex,
32 const xAOD::UncalibratedMeasurementContainer &clusterContainer,
33 const DetectorElementToActsGeometryIdMap &detectorElementToGeoid,
34 const MeasurementIndex *measurementIndex = nullptr);
36 const MeasurementIndex &measurementIndex) const;
37 MeasurementRange markSurfaceInsensitive(const Acts::GeometryIdentifier &identifier);
38
40 inline std::size_t nMeasurements() const;
42 inline const xAOD::UncalibratedMeasurementContainer *container(std::size_t typeIndex) const;
43
44 private:
46 Acts::GeometryIdentifier measurementSurfaceId;
47 unsigned int typeIndex{};
48 unsigned int sl_idx{};
49 };
50
51 template <typename MeasurementRangeList_t>
52 static MeasurementRange *addMeasurementToRange(MeasurementRangeList_t &measurementRanges,
53 unsigned int typeIndex,
54 unsigned int sl_idx,
55 unsigned int sl_idx_end,
56 const xAOD::UncalibratedMeasurement *measurement,
57 Acts::GeometryIdentifier measurementSurfaceId);
58
59 std::vector<std::size_t> m_measurementOffsets;
60 // ActsTrk::detail::MeasurementRangeList is an std::unordered_map;
62 std::vector<const xAOD::UncalibratedMeasurementContainer *> m_containers{};
63 std::vector<MeasurementSurfaceIndex> m_surfaceIndices;
64
65 std::size_t m_measurementsTotal{0ul};
66 };
67
68} // namespace ActsTrk::detail
69
71
72#endif
std::vector< const xAOD::UncalibratedMeasurementContainer * > m_containers
const std::vector< std::size_t > & measurementOffsets() const
const xAOD::UncalibratedMeasurementContainer * container(std::size_t typeIndex) const
std::vector< MeasurementSurfaceIndex > m_surfaceIndices
std::unique_ptr< MeasurementRangeListFlat > createMeasurementRangesForced(const ActsTrk::Seed &seed, const MeasurementIndex &measurementIndex) const
void addMeasurements(std::size_t typeIndex, const xAOD::UncalibratedMeasurementContainer &clusterContainer, const DetectorElementToActsGeometryIdMap &detectorElementToGeoid, const MeasurementIndex *measurementIndex=nullptr)
TrackFindingMeasurements & operator=(const TrackFindingMeasurements &)=default
const MeasurementRangeList & measurementRanges() const
TrackFindingMeasurements(TrackFindingMeasurements &&) noexcept=default
static MeasurementRange * addMeasurementToRange(MeasurementRangeList_t &measurementRanges, unsigned int typeIndex, unsigned int sl_idx, unsigned int sl_idx_end, const xAOD::UncalibratedMeasurement *measurement, Acts::GeometryIdentifier measurementSurfaceId)
MeasurementRange markSurfaceInsensitive(const Acts::GeometryIdentifier &identifier)
TrackFindingMeasurements(const TrackFindingMeasurements &)=default
TrackFindingMeasurements(std::size_t nMeasurementContainerMax)
STL class.
Hash functions to pack the source link into unordered_maps / unordered_sets.
GenMeasurementRangeListFlat< AtlasMeasurementContainerList > MeasurementRangeListFlat
GenMeasurementRangeList< AtlasMeasurementContainerList > MeasurementRangeList
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
STL namespace.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.
#define private
Definition testRead.cxx:27