ATLAS Offline Software
Loading...
Searching...
No Matches
MeasurementCalibratorBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef ACTSCALIBBASE_DETAIL_MEASUREMENTCALIBRATORBASE_H
5#define ACTSCALIBBASE_DETAIL_MEASUREMENTCALIBRATORBASE_H
6
9#include "Acts/EventData/Types.hpp"
10#include "Acts/Surfaces/SurfaceBounds.hpp"
11#include "Acts/EventData/MultiTrajectory.hpp"
12#include "Acts/EventData/TrackStateProxy.hpp"
13#include "Acts/Utilities/CalibrationContext.hpp"
14
16
17#include <array>
18
19namespace ActsTrk::detail {
25 public:
38
40 template<typename trajectory_t>
41 using TrackState_t = typename Acts::MultiTrajectory<trajectory_t>::TrackStateProxy;
43 template<typename trajectory_t>
44 using ConstTrackState_t = typename Acts::MultiTrajectory<trajectory_t>::ConstTrackStateProxy;
45
56 template <std::size_t Dim, typename trajectory_t,
57 typename pos_t, typename cov_t>
58 void setState(const ProjectorType projector,
59 const pos_t& locpos,
60 const cov_t& cov,
61 Acts::SourceLink link,
62 TrackState_t<trajectory_t>& trackState) const;
63 private:
66 constexpr static std::array<Acts::BoundSubspaceIndices, 6> s_boundSpaceIndices{
67 Acts::BoundSubspaceIndices{Acts::eBoundLoc0}, // One dimenion without time
68 Acts::BoundSubspaceIndices{Acts::eBoundLoc1}, // Complementary one dimension without time
69 Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundLoc1},
70 Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundTime}, // One dimension with time
71 Acts::BoundSubspaceIndices{Acts::eBoundLoc1, Acts::eBoundTime}, // Complementary one dimension with time
72 Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundTime}
73 };
74 };
75
76} // namespace ActsTrk::detail
77
79
80#endif
ProjectorType
Enum encoding the possible projectors used in ATLAS.
@ e2DimWithTime
Project out the locY & time coordinate - (Applies to Rpc, Tgc, sTgc)
@ e2DimNoTime
Project out solely the locY - Complementary projector if the strip plane is rotated (Applies to Itk e...
@ e1DimWithTime
Project out the two spatial coordinates - (Applies to ITk pixel, BI-Rpc, sTgc pad)
@ e1DimRotNoTime
Project out solely the locX (Applies to Itk strips, Rpc, Tgc, sTgc, Mm)
@ e1DimRotWithTime
Project out the locX & time coordinate - (Applies to Rpc, Tgc, Mm, sTgc)
static constexpr std::array< Acts::BoundSubspaceIndices, 6 > s_boundSpaceIndices
Array to map the Projector types to the bound index configurations used by the ATLAS detector measure...
typename Acts::MultiTrajectory< trajectory_t >::TrackStateProxy TrackState_t
Abbrivation of the track state proxy type.
typename Acts::MultiTrajectory< trajectory_t >::ConstTrackStateProxy ConstTrackState_t
Abbrivation of the const track state proxy type.
void setState(const ProjectorType projector, const pos_t &locpos, const cov_t &cov, Acts::SourceLink link, TrackState_t< trajectory_t > &trackState) const
Copy the local position & covariance into the Acts track state proxy.
Athena definition of the Eigen plugin.