60 const Acts::CalibrationContext& ,
61 const Acts::SourceLink& genericSourceLink ,
62 typename traj_t::TrackStateProxy trackState)
const {
65 assert(m_measurements_ and
66 "Undefined measurement container in LdmxMeasurementCalibrator");
67 assert((source_link.index() < m_measurements_->size()) and
68 "Source link index is outside the container bounds in "
69 "LdmxMeasurementCalibrator");
71 auto meas = m_measurements_->at(source_link.index());
72 Acts::Vector2 local_pos{meas.getLocalPosition()[0],
73 meas.getLocalPosition()[1]};
74 auto ts_cal{trackState.template calibrated<2>()};
75 auto ts_cal_cov{trackState.template calibratedCovariance<2>()};
77 ts_cal.template head<2>() = local_pos;
78 Acts::SquareMatrix2 local_cov;
80 local_cov(0, 0) = meas.getLocalCovariance()[0];
81 local_cov(1, 1) = meas.getLocalCovariance()[1];
84 ts_cal_cov.block(0, 0, 2, 2) = local_cov;
86 Acts::ActsMatrix<2, 6> projector;
91 trackState.setProjector(projector);
102 const Acts::CalibrationContext& ,
103 const Acts::SourceLink& genericSourceLink ,
104 typename traj_t::TrackStateProxy trackState)
const {
108 assert(m_measurements_ and
109 "Undefined measurement container in LdmxMeasurementCalibrator");
110 assert((source_link.index() < m_measurements_->size()) and
111 "Source link index is outside the container bounds in "
112 "LdmxMeasurementCalibrator");
114 auto meas = m_measurements_->at(source_link.index());
116 trackState.allocateCalibrated(1);
117 auto ts_cal{trackState.template calibrated<1>()};
118 auto ts_cal_cov{trackState.template calibratedCovariance<1>()};
121 ts_cal(0) = (meas.getLocalPosition())[0];
122 ts_cal_cov.setZero();
123 ts_cal_cov(0, 0) = (meas.getLocalCovariance())[0];
125 Acts::ActsMatrix<2, 6> projector;
127 projector(0, 0) = 1.;
128 projector(1, 1) = 1.;
129 trackState.setProjector(projector.row(0));
130 trackState.setUncalibratedSourceLink(genericSourceLink);