ATLAS Offline Software
Loading...
Searching...
No Matches
TrackFindingMeasurements.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_TRACKFINDINGMEASUREMENTS_H
6#define ACTSTRACKRECONSTRUCTION_TRACKFINDINGMEASUREMENTS_H
7
8#include <vector>
9
13
14namespace ActsTrk {
16}
17
18namespace ActsTrk::detail {
19
20 // Helper class to convert and store MeasurementContainer specializations to MeasurementRangeList
22 public:
23 TrackFindingMeasurements(std::size_t nMeasurementContainerMax);
27 TrackFindingMeasurements &operator=(TrackFindingMeasurements &&) noexcept = default;
29
30 void addMeasurements(std::size_t typeIndex,
31 const xAOD::UncalibratedMeasurementContainer &clusterContainer,
32 const DetectorElementToActsGeometryIdMap &detectorElementToGeoid,
33 const MeasurementIndex *measurementIndex = nullptr);
35 const MeasurementIndex &measurementIndex) const;
36 MeasurementRange markSurfaceInsensitive(const Acts::GeometryIdentifier &identifier);
37
39 inline std::size_t nMeasurements() const;
41 inline const xAOD::UncalibratedMeasurementContainer *container(std::size_t typeIndex) const;
42
43 private:
45 Acts::GeometryIdentifier measurementSurfaceId;
46 unsigned int typeIndex;
47 unsigned int sl_idx;
48 };
49
50 template <typename MeasurementRangeList_t>
51 static MeasurementRange *addMeasurementToRange(MeasurementRangeList_t &measurementRanges,
52 unsigned int typeIndex,
53 unsigned int sl_idx,
54 unsigned int sl_idx_end,
55 const xAOD::UncalibratedMeasurement *measurement,
56 Acts::GeometryIdentifier measurementSurfaceId);
57
58 std::vector<std::size_t> m_measurementOffsets;
59 // ActsTrk::detail::MeasurementRangeList is an std::unordered_map;
61 std::vector<const xAOD::UncalibratedMeasurementContainer *> m_containers{};
62 std::vector<MeasurementSurfaceIndex> m_surfaceIndices;
63
64 std::size_t m_measurementsTotal{0ul};
65 };
66
67} // namespace ActsTrk::detail
68
70
71#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
void addMeasurements(std::size_t typeIndex, const xAOD::UncalibratedMeasurementContainer &clusterContainer, const DetectorElementToActsGeometryIdMap &detectorElementToGeoid, const MeasurementIndex *measurementIndex=nullptr)
TrackFindingMeasurements & operator=(const TrackFindingMeasurements &)=default
MeasurementRangeListFlat setMeasurementRangesForced(const ActsTrk::Seed &seed, const MeasurementIndex &measurementIndex) const
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)
Athena definition of the Eigen plugin.
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