ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::detail::OnTrackCalibrator< traj_t > Class Template Reference

Inner detector / ITk calibrator implementation used in the KalmanFilterTool. More...

#include <OnTrackCalibrator.h>

Inheritance diagram for ActsTrk::detail::OnTrackCalibrator< traj_t >:
Collaboration diagram for ActsTrk::detail::OnTrackCalibrator< traj_t >:

Public Types

using TrackStateProxy = typename Acts::MultiTrajectory<traj_t>::TrackStateProxy
using PixelPos = xAOD::MeasVector<2>
using PixelCov = xAOD::MeasMatrix<2>
using StripPos = xAOD::MeasVector<1>
using StripCov = xAOD::MeasMatrix<1>
using HgtdPos = xAOD::MeasVector<3>
using HgtdCov = xAOD::MeasMatrix<3>
template<typename T_Cluster, std::size_t NDIM>
using OnTrackCalibratorDelegate
using PixelCalibrator = OnTrackCalibratorDelegate<const xAOD::PixelCluster,2>
using StripCalibrator = OnTrackCalibratorDelegate<const xAOD::StripCluster,1>
using HGTDCalibrator = OnTrackCalibratorDelegate<const xAOD::HGTDCluster,3>

Public Member Functions

 OnTrackCalibrator ()=default
 Empty default constructor.
 OnTrackCalibrator (const EventContext &ctx, const ActsTrk::ITrackingGeometryTool *trackGeoTool, const ToolHandle< IPixelOnTrackCalibratorTool< traj_t > > &pixelTool, const ToolHandle< IStripOnTrackCalibratorTool< traj_t > > &stripTool, const ToolHandle< IHGTDOnTrackCalibratorTool< traj_t > > &hgtdTool)
 Standard cosntructor which activates the calibration of the ITk & HGTD measurements based on the best track predicition.
void calibrate (const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, TrackStateProxy state) const
 Function that's hooked to the calibration delegate of the implemented Acts fitters.

Static Public Member Functions

static OnTrackCalibrator NoCalibration (const ActsTrk::ITrackingGeometryTool *trackGeoTool)
 Constructs a calibrator which copies the local position & covariance of the ITk measurements onto the track state.

Public Attributes

PixelCalibrator pixelCalibrator
StripCalibrator stripCalibrator
HGTDCalibrator hgtdCalibrator

Protected Member Functions

 OnTrackCalibrator (const ActsTrk::ITrackingGeometryTool *trackGeoTool)
 create a "NoCalibration" on track calibrator for all measurement types.

Private Types

enum class  ProjectorType {
  e1DimNoTime = 0 , e1DimRotNoTime = 1 , e2DimNoTime = 2 , e1DimWithTime = 3 ,
  e1DimRotWithTime = 4 , e2DimWithTime = 5
}
 Enum encoding the possible projectors used in ATLAS. More...
using SourceLink_t
 Encode the source links supported by the Calibrator class as a variant of the measurement class type pointer used within Athena.

Private Member Functions

template<std::size_t Dim, typename Cluster>
void passthrough (const Acts::GeometryContext &gctx, const Acts::CalibrationContext &, const Cluster &cluster, TrackStateProxy &state) const
template<typename T_CalibratorToolHandle, typename T_Delegate>
void connectPassThrough (T_Delegate &delegate)
template<typename T_CalibratorToolHandle, typename T_Delegate>
void connect (const EventContext &ctx, const T_CalibratorToolHandle &calibrator_tool, T_Delegate &delegate)
template<std::size_t Dim, Acts::TrackStateProxyConcept proxy_t, typename pos_t, typename cov_t>
void setState (const ProjectorType projector, const pos_t &locpos, const cov_t &cov, Acts::SourceLink link, proxy_t &trackState) const
 Copy the local position & covariance into the Acts track state proxy.
template<std::size_t Dim, Acts::TrackStateProxyConcept proxy_t>
void prepareCalibratedState (const ProjectorType projector, Acts::SourceLink link, proxy_t &trackState) const
 Queries the track proxy to allocate memory for the incoming calibration object.

Static Private Member Functions

static SourceLinkType getType (const Acts::SourceLink &sl)
 Returns the enumeration corresponding to the object type cached within the Acts::SourceLink.
static SourceLink_t unpackBase (const Acts::SourceLink &sl)
 Unpack the SourceLink_t from the passed Acts source link.
template<Acts::PointerConcept Ptr_t>
static Acts::SourceLink pack (const Ptr_t &measurement)
 Pack the measurement type pointer to an Acts::SourceLink including the intermediate conversion into a SourceLink_t.
template<Acts::PointerConcept Ptr_t>
static void pack (const std::vector< Ptr_t > &measList, std::vector< Acts::SourceLink > &targetSL)
 Converts a vector measurement pointers to Acts::SourceLinks.

Private Attributes

xAODUncalibMeasSurfAcc m_surfAcc {}
 Helper class to access the Acts surfaces.
boost::container::static_vector< std::unique_ptr< ClusterCalibratorBase >, 3 > m_calibrators
 all the calibrator objects used and owned by this on track calibrator.

Static Private Attributes

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 measurements.

Detailed Description

template<typename traj_t>
class ActsTrk::detail::OnTrackCalibrator< traj_t >

Inner detector / ITk calibrator implementation used in the KalmanFilterTool.

Definition at line 27 of file OnTrackCalibrator.h.

Member Typedef Documentation

◆ HGTDCalibrator

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::HGTDCalibrator = OnTrackCalibratorDelegate<const xAOD::HGTDCluster,3>

Definition at line 48 of file OnTrackCalibrator.h.

◆ HgtdCov

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::HgtdCov = xAOD::MeasMatrix<3>

Definition at line 38 of file OnTrackCalibrator.h.

◆ HgtdPos

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::HgtdPos = xAOD::MeasVector<3>

Definition at line 37 of file OnTrackCalibrator.h.

◆ OnTrackCalibratorDelegate

template<typename traj_t>
template<typename T_Cluster, std::size_t NDIM>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::OnTrackCalibratorDelegate
Initial value:
Acts::Delegate<
void(const Acts::GeometryContext&,
const Acts::CalibrationContext&,
const T_Cluster &,
typename Acts::MultiTrajectory< traj_t >::TrackStateProxy TrackStateProxy

Definition at line 41 of file OnTrackCalibrator.h.

◆ PixelCalibrator

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::PixelCalibrator = OnTrackCalibratorDelegate<const xAOD::PixelCluster,2>

Definition at line 46 of file OnTrackCalibrator.h.

◆ PixelCov

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::PixelCov = xAOD::MeasMatrix<2>

Definition at line 32 of file OnTrackCalibrator.h.

◆ PixelPos

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::PixelPos = xAOD::MeasVector<2>

Definition at line 31 of file OnTrackCalibrator.h.

◆ SourceLink_t

Initial value:
std::variant<std::monostate,
This class is the pure abstract base class for all fittable tracking measurements.
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.

Encode the source links supported by the Calibrator class as a variant of the measurement class type pointer used within Athena.

The std::monostate is used to encode nullptrs or not yet supported types

Definition at line 53 of file MeasurementCalibratorBase.h.

◆ StripCalibrator

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::StripCalibrator = OnTrackCalibratorDelegate<const xAOD::StripCluster,1>

Definition at line 47 of file OnTrackCalibrator.h.

◆ StripCov

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::StripCov = xAOD::MeasMatrix<1>

Definition at line 35 of file OnTrackCalibrator.h.

◆ StripPos

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::StripPos = xAOD::MeasVector<1>

Definition at line 34 of file OnTrackCalibrator.h.

◆ TrackStateProxy

template<typename traj_t>
using ActsTrk::detail::OnTrackCalibrator< traj_t >::TrackStateProxy = typename Acts::MultiTrajectory<traj_t>::TrackStateProxy

Definition at line 29 of file OnTrackCalibrator.h.

Member Enumeration Documentation

◆ ProjectorType

Enum encoding the possible projectors used in ATLAS.

Their integer representations correspond to the element index in the s_boundSpaceIndices member

Enumerator
e1DimNoTime 
e1DimRotNoTime 

Project out solely the locX (Applies to Itk strips, Rpc, Tgc, sTgc, Mm).

e2DimNoTime 

Project out solely the locY - Complementary projector if the strip plane is rotated (Applies to Itk endcap strips, Rpc, Tgc, sTgc).

e1DimWithTime 

Project out the two spatial coordinates - (Applies to ITk pixel, BI-Rpc, sTgc pad).

e1DimRotWithTime 

Project out the locX & time coordinate - (Applies to Rpc, Tgc, Mm, sTgc).

e2DimWithTime 

Project out the locY & time coordinate - (Applies to Rpc, Tgc, sTgc).

Definition at line 41 of file MeasurementCalibratorBase.h.

41 {
42 e1DimNoTime = 0,
43 e1DimRotNoTime = 1,
45 e2DimNoTime = 2,
46 e1DimWithTime = 3,
47 e1DimRotWithTime = 4,
48 e2DimWithTime = 5,
49 };

Constructor & Destructor Documentation

◆ OnTrackCalibrator() [1/3]

template<typename traj_t>
ActsTrk::detail::OnTrackCalibrator< traj_t >::OnTrackCalibrator ( )
default

Empty default constructor.

Surface look will fail.

◆ OnTrackCalibrator() [2/3]

template<typename traj_t>
ActsTrk::detail::OnTrackCalibrator< traj_t >::OnTrackCalibrator ( const ActsTrk::ITrackingGeometryTool * trackGeoTool)
protected

create a "NoCalibration" on track calibrator for all measurement types.

◆ OnTrackCalibrator() [3/3]

template<typename traj_t>
ActsTrk::detail::OnTrackCalibrator< traj_t >::OnTrackCalibrator ( const EventContext & ctx,
const ActsTrk::ITrackingGeometryTool * trackGeoTool,
const ToolHandle< IPixelOnTrackCalibratorTool< traj_t > > & pixelTool,
const ToolHandle< IStripOnTrackCalibratorTool< traj_t > > & stripTool,
const ToolHandle< IHGTDOnTrackCalibratorTool< traj_t > > & hgtdTool )

Standard cosntructor which activates the calibration of the ITk & HGTD measurements based on the best track predicition.

It takes the configured instance to the TrackingGeometryTool and then for each silicon measurement type a calibration tool handle. There's also the possibility to pass an empty tool, then the information from the measurement is directly copied onto the track state. *

Parameters
trackGeoToolPointer to the tracking geometry tool to access the needed surfaces during the calibration
pixelToolReference to a (configured) calibration tool responsible for the PixelCluster measurements
stripToolReference to a (configured) calibration tool responsible for the ITk strip measurements
hdtdToolReference to a (configured) calibration tool responsible for the HGTD strip measurements

Member Function Documentation

◆ calibrate()

template<typename traj_t>
void ActsTrk::detail::OnTrackCalibrator< traj_t >::calibrate ( const Acts::GeometryContext & geoctx,
const Acts::CalibrationContext & cctx,
const Acts::SourceLink & link,
TrackStateProxy state ) const

Function that's hooked to the calibration delegate of the implemented Acts fitters.

Parameters
geoctxThe geometry context to fetch the local -> global transformations for the surfaces
cctxCalibration context which is a packed pointer to the current ATLAS EventContext
linkSourcelink to the actual measurement to calibrate
stateProxy to the track state onto which the calibrated information is copied.

◆ connect()

template<typename traj_t>
template<typename T_CalibratorToolHandle, typename T_Delegate>
void ActsTrk::detail::OnTrackCalibrator< traj_t >::connect ( const EventContext & ctx,
const T_CalibratorToolHandle & calibrator_tool,
T_Delegate & delegate )
private

◆ connectPassThrough()

template<typename traj_t>
template<typename T_CalibratorToolHandle, typename T_Delegate>
void ActsTrk::detail::OnTrackCalibrator< traj_t >::connectPassThrough ( T_Delegate & delegate)
private

◆ getType()

SourceLinkType ActsTrk::detail::MeasurementCalibratorBase::getType ( const Acts::SourceLink & sl)
staticinherited

Returns the enumeration corresponding to the object type cached within the Acts::SourceLink.

The SourceLink must have been created by a MeasurementCalibrator to ensure that the underlying variant is cached. If the variant is a monostate, nTypes is returned

Parameters
slReference to the source link to unpack.

◆ NoCalibration()

template<typename traj_t>
OnTrackCalibrator ActsTrk::detail::OnTrackCalibrator< traj_t >::NoCalibration ( const ActsTrk::ITrackingGeometryTool * trackGeoTool)
inlinestatic

Constructs a calibrator which copies the local position & covariance of the ITk measurements onto the track state.

Parameters
trackGeoToolPointer to a valid tracking geometry tool to associate the surfaces to the measurements

Definition at line 57 of file OnTrackCalibrator.h.

57 {
59 }
Inner detector / ITk calibrator implementation used in the KalmanFilterTool.
OnTrackCalibrator()=default
Empty default constructor.

◆ pack() [1/2]

template<Acts::PointerConcept Ptr_t>
Acts::SourceLink ActsTrk::detail::MeasurementCalibratorBase::pack ( const Ptr_t & measurement)
staticinherited

Pack the measurement type pointer to an Acts::SourceLink including the intermediate conversion into a SourceLink_t.

Nullptrs are converted to a std::monostate.

Parameters
measurementPointer to the measurement to transform into a SourceLInk

◆ pack() [2/2]

template<Acts::PointerConcept Ptr_t>
void ActsTrk::detail::MeasurementCalibratorBase::pack ( const std::vector< Ptr_t > & measList,
std::vector< Acts::SourceLink > & targetSL )
staticinherited

Converts a vector measurement pointers to Acts::SourceLinks.

Parameters
measListThe list of measurement pointers for conversion
targetSLThe allocated SourceLink vectors to which the Acts::SourceLink objects are appended.

◆ passthrough()

template<typename traj_t>
template<std::size_t Dim, typename Cluster>
void ActsTrk::detail::OnTrackCalibrator< traj_t >::passthrough ( const Acts::GeometryContext & gctx,
const Acts::CalibrationContext & ,
const Cluster & cluster,
TrackStateProxy & state ) const
private

◆ prepareCalibratedState()

template<std::size_t Dim, Acts::TrackStateProxyConcept proxy_t>
void ActsTrk::detail::MeasurementCalibratorBase::prepareCalibratedState ( const ProjectorType projector,
Acts::SourceLink link,
proxy_t & trackState ) const
protectedinherited

Queries the track proxy to allocate memory for the incoming calibration object.

Defines the projector indices and allocates the source link to the state

Parameters
projectorProjector configuration of the measurement
linkSource link to associate with the state
trackStateRefrence to the track state proxy to write.

◆ setState()

template<std::size_t Dim, Acts::TrackStateProxyConcept proxy_t, typename pos_t, typename cov_t>
void ActsTrk::detail::MeasurementCalibratorBase::setState ( const ProjectorType projector,
const pos_t & locpos,
const cov_t & cov,
Acts::SourceLink link,
proxy_t & trackState ) const
inherited

Copy the local position & covariance into the Acts track state proxy.

Template Parameters
DimDimension of the measurement
trajectory_tData type of the track state proxy backend
pos_tData type of the [Dim x 1] position vector
cov_tData type of the [Dim x Dim] covariance matrix
Parameters
projectorProjector configuration of the measurement
locposCalibrated local postion
covCalibrated local covariance
linkSource link to associate with the state
trackStateRefrence to the track state proxy to write.

◆ unpackBase()

SourceLink_t ActsTrk::detail::MeasurementCalibratorBase::unpackBase ( const Acts::SourceLink & sl)
staticinherited

Unpack the SourceLink_t from the passed Acts source link.

Parameters
slReference to the source link to unpack.

Member Data Documentation

◆ hgtdCalibrator

template<typename traj_t>
HGTDCalibrator ActsTrk::detail::OnTrackCalibrator< traj_t >::hgtdCalibrator

Definition at line 52 of file OnTrackCalibrator.h.

◆ m_calibrators

template<typename traj_t>
boost::container::static_vector<std::unique_ptr<ClusterCalibratorBase >, 3> ActsTrk::detail::OnTrackCalibrator< traj_t >::m_calibrators
private

all the calibrator objects used and owned by this on track calibrator.

Definition at line 98 of file OnTrackCalibrator.h.

◆ m_surfAcc

template<typename traj_t>
xAODUncalibMeasSurfAcc ActsTrk::detail::OnTrackCalibrator< traj_t >::m_surfAcc {}
private

Helper class to access the Acts surfaces.

Definition at line 95 of file OnTrackCalibrator.h.

95{};

◆ pixelCalibrator

template<typename traj_t>
PixelCalibrator ActsTrk::detail::OnTrackCalibrator< traj_t >::pixelCalibrator

Definition at line 50 of file OnTrackCalibrator.h.

◆ s_boundSpaceIndices

std::array<Acts::BoundSubspaceIndices, 6> ActsTrk::detail::MeasurementCalibratorBase::s_boundSpaceIndices
staticconstexprprivateinherited
Initial value:
{
Acts::BoundSubspaceIndices{Acts::eBoundLoc0},
Acts::BoundSubspaceIndices{Acts::eBoundLoc1},
Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundLoc1},
Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundTime},
Acts::BoundSubspaceIndices{Acts::eBoundLoc1, Acts::eBoundTime},
}

Array to map the Projector types to the bound index configurations used by the ATLAS detector measurements.

Definition at line 115 of file MeasurementCalibratorBase.h.

115 {
116 Acts::BoundSubspaceIndices{Acts::eBoundLoc0}, // One dimenion without time
117 Acts::BoundSubspaceIndices{Acts::eBoundLoc1}, // Complementary one dimension without time
118 Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundLoc1},
119 Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundTime}, // One dimension with time
120 Acts::BoundSubspaceIndices{Acts::eBoundLoc1, Acts::eBoundTime}, // Complementary one dimension with time
121 Acts::BoundSubspaceIndices{Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundTime}
122 };

◆ stripCalibrator

template<typename traj_t>
StripCalibrator ActsTrk::detail::OnTrackCalibrator< traj_t >::stripCalibrator

Definition at line 51 of file OnTrackCalibrator.h.


The documentation for this class was generated from the following file: