ATLAS Offline Software
Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
ActsTrk::MeasurementCalibratorBase Class Reference

#include <MeasurementCalibrator.h>

Inheritance diagram for ActsTrk::MeasurementCalibratorBase:
Collaboration diagram for ActsTrk::MeasurementCalibratorBase:

Public Member Functions

 MeasurementCalibratorBase (const ActsTrk::IActsToTrkConverterTool &converter_tool)
 
template<typename state_t >
void setProjectorBitSet (xAOD::UncalibMeasType measType, Acts::SurfaceBounds::BoundsType boundType, state_t &trackState) const
 
template<size_t Dim, typename pos_t , typename cov_t , typename state_t >
void setState (xAOD::UncalibMeasType measType, const pos_t &locpos, const cov_t &cov, Acts::SurfaceBounds::BoundsType boundType, state_t &trackState) const
 
template<class measurement_t , typename trajectory_t >
void setStateFromMeasurement (const measurement_t &measurement, Acts::SurfaceBounds::BoundsType bound_type, typename Acts::MultiTrajectory< trajectory_t >::TrackStateProxy &trackState) const
 

Static Protected Member Functions

template<typename Derived >
static Acts::ProjectorBitset makeProjectorBitset (const Eigen::MatrixBase< Derived > &proj)
 
static Acts::ProjectorBitset makeStripProjector (bool annulus_strip)
 
static std::array< Acts::ProjectorBitset, 2 > makeStripProjectorArray ()
 
static Acts::ProjectorBitset makePixelProjector ()
 

Protected Attributes

std::array< Acts::ProjectorBitset, 2 > m_stripProjector
 
Acts::ProjectorBitset m_pixelProjector
 
const ActsTrk::IActsToTrkConverterToolm_converterTool
 

Detailed Description

Definition at line 33 of file MeasurementCalibrator.h.

Constructor & Destructor Documentation

◆ MeasurementCalibratorBase()

ActsTrk::MeasurementCalibratorBase::MeasurementCalibratorBase ( const ActsTrk::IActsToTrkConverterTool converter_tool)
inline

Definition at line 81 of file MeasurementCalibrator.h.

Member Function Documentation

◆ makePixelProjector()

static Acts::ProjectorBitset ActsTrk::MeasurementCalibratorBase::makePixelProjector ( )
inlinestaticprotected

Definition at line 66 of file MeasurementCalibrator.h.

66  {
67  Acts::ActsMatrix<Acts::MultiTrajectoryTraits::MeasurementSizeMax, 2> proj;
68  proj.setZero();
69  proj(Acts::eBoundLoc0, Acts::eBoundLoc0) = 1;
70  proj(Acts::eBoundLoc1, Acts::eBoundLoc1) = 1;
71  return makeProjectorBitset(proj);
72  }

◆ makeProjectorBitset()

template<typename Derived >
static Acts::ProjectorBitset ActsTrk::MeasurementCalibratorBase::makeProjectorBitset ( const Eigen::MatrixBase< Derived > &  proj)
inlinestaticprotected

Definition at line 37 of file MeasurementCalibrator.h.

37  {
38  constexpr int rows = Eigen::MatrixBase<Derived>::RowsAtCompileTime;
39  constexpr int cols = Eigen::MatrixBase<Derived>::ColsAtCompileTime;
40 
41  Acts::TrackStateTraits<Acts::MultiTrajectoryTraits::MeasurementSizeMax>::Projector fullProjector =
42  decltype(fullProjector)::Zero();
43 
44  fullProjector.template topLeftCorner<rows, cols>() = proj;
45 
46  return Acts::matrixToBitset(fullProjector).to_ullong();
47  }

◆ makeStripProjector()

static Acts::ProjectorBitset ActsTrk::MeasurementCalibratorBase::makeStripProjector ( bool  annulus_strip)
inlinestaticprotected

Definition at line 49 of file MeasurementCalibrator.h.

49  {
50  Acts::ActsMatrix<Acts::MultiTrajectoryTraits::MeasurementSizeMax, 2> proj;
51  proj.setZero();
52  if (annulus_strip) {
53  // transforms predicted[1] -> calibrated[0] in Acts::MeasurementSelector::calculateChi2()
54  proj(Acts::eBoundLoc0, Acts::eBoundLoc1) = 1;
55  } else {
56  proj(Acts::eBoundLoc0, Acts::eBoundLoc0) = 1;
57  }
58  return makeProjectorBitset(proj);
59  }

◆ makeStripProjectorArray()

static std::array<Acts::ProjectorBitset,2> ActsTrk::MeasurementCalibratorBase::makeStripProjectorArray ( )
inlinestaticprotected

Definition at line 61 of file MeasurementCalibrator.h.

61  {
62  return std::array<Acts::ProjectorBitset,2>{makeStripProjector(false), makeStripProjector(true) };
63  }

◆ setProjectorBitSet()

template<typename state_t >
void ActsTrk::MeasurementCalibratorBase::setProjectorBitSet ( xAOD::UncalibMeasType  measType,
Acts::SurfaceBounds::BoundsType  boundType,
state_t &  trackState 
) const
inline

Definition at line 87 of file MeasurementCalibrator.h.

89  {
90  switch (measType) {
92  const std::size_t projector_idx = boundType == Acts::SurfaceBounds::eAnnulus;
93  trackState.setProjectorBitset(m_stripProjector[projector_idx]);
94  break;
95  }
97  trackState.setProjectorBitset(m_pixelProjector);
98  break;
99  }
100  default:
101  throw std::domain_error("Can only handle measurement type pixel or strip");
102  }
103  }

◆ setState()

template<size_t Dim, typename pos_t , typename cov_t , typename state_t >
void ActsTrk::MeasurementCalibratorBase::setState ( xAOD::UncalibMeasType  measType,
const pos_t &  locpos,
const cov_t &  cov,
Acts::SurfaceBounds::BoundsType  boundType,
state_t &  trackState 
) const
inline

Definition at line 106 of file MeasurementCalibrator.h.

110  {
111  trackState.allocateCalibrated(Dim);
112  setProjectorBitSet(measType, boundType, trackState);
113  trackState.template calibrated<Dim>() = locpos.template cast<Acts::ActsScalar>();
114  trackState.template calibratedCovariance<Dim>() = cov.template cast<Acts::ActsScalar>();
115  }

◆ setStateFromMeasurement()

template<class measurement_t , typename trajectory_t >
void ActsTrk::MeasurementCalibratorBase::setStateFromMeasurement ( const measurement_t &  measurement,
Acts::SurfaceBounds::BoundsType  bound_type,
typename Acts::MultiTrajectory< trajectory_t >::TrackStateProxy &  trackState 
) const
inline

Definition at line 119 of file MeasurementCalibrator.h.

121  {
122  switch (measurement.type()) {
124  setState<1>(
125  measurement.type(),
126  measurement.template localPosition<1>(),
127  measurement.template localCovariance<1>().template topLeftCorner<1, 1>(),
128  bound_type,
129  trackState);
130  break;
131  }
133  setState<2>(
134  measurement.type(),
135  measurement.template localPosition<2>(),
136  measurement.template localCovariance<2>().template topLeftCorner<2, 2>(),
137  bound_type,
138  trackState);
139  break;
140  }
141  default:
142  throw std::domain_error("Can only handle measurement type pixel or strip");
143  }
144  }

Member Data Documentation

◆ m_converterTool

const ActsTrk::IActsToTrkConverterTool* ActsTrk::MeasurementCalibratorBase::m_converterTool
protected

Definition at line 79 of file MeasurementCalibrator.h.

◆ m_pixelProjector

Acts::ProjectorBitset ActsTrk::MeasurementCalibratorBase::m_pixelProjector
protected

Definition at line 77 of file MeasurementCalibrator.h.

◆ m_stripProjector

std::array<Acts::ProjectorBitset,2> ActsTrk::MeasurementCalibratorBase::m_stripProjector
protected

Definition at line 76 of file MeasurementCalibrator.h.


The documentation for this class was generated from the following file:
xAOD::UncalibMeasType::StripClusterType
@ StripClusterType
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
ActsTrk::MeasurementCalibratorBase::makePixelProjector
static Acts::ProjectorBitset makePixelProjector()
Definition: MeasurementCalibrator.h:66
ActsTrk::MeasurementCalibratorBase::m_converterTool
const ActsTrk::IActsToTrkConverterTool * m_converterTool
Definition: MeasurementCalibrator.h:79
beamspotnt.cols
list cols
Definition: bin/beamspotnt.py:1114
ActsTrk::MeasurementCalibratorBase::m_pixelProjector
Acts::ProjectorBitset m_pixelProjector
Definition: MeasurementCalibrator.h:77
ActsTrk::MeasurementCalibratorBase::makeStripProjectorArray
static std::array< Acts::ProjectorBitset, 2 > makeStripProjectorArray()
Definition: MeasurementCalibrator.h:61
beamspotnt.rows
list rows
Definition: bin/beamspotnt.py:1112
make_coralServer_rep.proj
proj
Definition: make_coralServer_rep.py:48
ActsTrk::MeasurementCalibratorBase::setProjectorBitSet
void setProjectorBitSet(xAOD::UncalibMeasType measType, Acts::SurfaceBounds::BoundsType boundType, state_t &trackState) const
Definition: MeasurementCalibrator.h:87
ActsTrk::MeasurementCalibratorBase::makeProjectorBitset
static Acts::ProjectorBitset makeProjectorBitset(const Eigen::MatrixBase< Derived > &proj)
Definition: MeasurementCalibrator.h:37
ActsTrk::MeasurementCalibratorBase::m_stripProjector
std::array< Acts::ProjectorBitset, 2 > m_stripProjector
Definition: MeasurementCalibrator.h:76
ActsTrk::MeasurementCalibratorBase::makeStripProjector
static Acts::ProjectorBitset makeStripProjector(bool annulus_strip)
Definition: MeasurementCalibrator.h:49
xAOD::UncalibMeasType::PixelClusterType
@ PixelClusterType
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32