ATLAS Offline Software
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 
19 namespace ActsTrk::detail {
25  public:
29  enum class ProjectorType{
30  e1DimNoTime = 0,
31  e1DimRotNoTime = 1,
32  e2DimNoTime = 2,
34  e1DimWithTime = 3,
35  e1DimRotWithTime = 4,
36  e2DimWithTime = 5,
37  };
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
ActsTrk::detail::MeasurementCalibratorBase::ProjectorType::e2DimNoTime
@ e2DimNoTime
Project out solely the locY - Complementary projector if the strip plane is rotated (Applies to Itk e...
ActsTrk::detail::MeasurementCalibratorBase::MeasurementCalibratorBase
MeasurementCalibratorBase()=default
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:200
ActsTrk::detail::MeasurementCalibratorBase::ProjectorType::e2DimWithTime
@ e2DimWithTime
Project out the locY & time coordinate - (Applies to Rpc, Tgc, sTgc)
ActsTrk::detail::MeasurementCalibratorBase::ProjectorType::e1DimRotNoTime
@ e1DimRotNoTime
Project out solely the locX (Applies to Itk strips, Rpc, Tgc, sTgc, Mm)
ActsTrk::detail::MeasurementCalibratorBase::ProjectorType
ProjectorType
Enum encoding the possible projectors used in ATLAS.
Definition: MeasurementCalibratorBase.h:29
ActsTrk::detail::MeasurementCalibratorBase::setState
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.
GeoPrimitives.h
ActsTrk::detail::MeasurementCalibratorBase
Base class providing the boiler code to fill the Acts multi trajectory track states.
Definition: MeasurementCalibratorBase.h:24
ActsTrk::detail::MeasurementCalibratorBase::ProjectorType::e1DimNoTime
@ e1DimNoTime
ActsTrk::detail::MeasurementCalibratorBase::ProjectorType::e1DimRotWithTime
@ e1DimRotWithTime
Project out the locX & time coordinate - (Applies to Rpc, Tgc, Mm, sTgc)
ActsTrk::detail::MeasurementCalibratorBase::s_boundSpaceIndices
constexpr static std::array< Acts::BoundSubspaceIndices, 6 > s_boundSpaceIndices
Array to map the Projector types to the bound index configurations used by the ATLAS detector measure...
Definition: MeasurementCalibratorBase.h:66
ActsTrk::detail::MeasurementCalibratorBase::ProjectorType::e1DimWithTime
@ e1DimWithTime
Project out the two spatial coordinates - (Applies to ITk pixel, BI-Rpc, sTgc pad)
MeasurementCalibratorBase.icc
SourceLinkType.h
ActsTrk::detail
Athena definition of the Eigen plugin.
Definition: MeasurementCalibratorBase.h:19
ActsTrk::detail::MeasurementCalibratorBase::TrackState_t
typename Acts::MultiTrajectory< trajectory_t >::TrackStateProxy TrackState_t
Abbrivation of the track state proxy type.
Definition: MeasurementCalibratorBase.h:41
ActsTrk::detail::MeasurementCalibratorBase::ConstTrackState_t
typename Acts::MultiTrajectory< trajectory_t >::ConstTrackStateProxy ConstTrackState_t
Abbrivation of the const track state proxy type.
Definition: MeasurementCalibratorBase.h:44