46 std::pair<unsigned int, unsigned int> idHashes = trkSpacePoint.
elementIdList();
57 std::pair<Amg::Vector3D, Amg::Vector3D> e0 =
59 std::pair<Amg::Vector3D, Amg::Vector3D> e1 =
62 auto stripCenter_1 = 0.5 * (e0.first + e0.second);
63 auto stripDir_1 = e0.first - e0.second;
65 auto stripCenter_2 = 0.5 * (e1.first + e1.second);
66 auto stripDir_2 = e1.first - e1.second;
68 float topHalfStripLength = 0.5 * stripDir_1.norm();
69 Eigen::Matrix<double, 3, 1> topStripDirection = - stripDir_1 / (2. * topHalfStripLength);
70 Eigen::Matrix<double, 3, 1> topStripCenter = stripCenter_1;
71 float bottomHalfStripLength = 0.5 * stripDir_2.norm();
72 Eigen::Matrix<double, 3, 1> bottomStripDirection = - stripDir_2 / (2. * bottomHalfStripLength);
73 Eigen::Matrix<double, 3, 1> stripCenterDistance = stripCenter_1 - stripCenter_2;
76 float f22 =
static_cast<float>( v(1,1) );
78 float covr = d0->isBarrel() ? .1 : 8.*f22;
79 float covz = d0->isBarrel() ? 8.*f22 : .1;
81 xaodSpacePoint.
setSpacePoint({idHashes.first, idHashes.second},
82 globPos.cast<
float>(),
87 bottomHalfStripLength,
88 topStripDirection.cast<
float>(),
89 bottomStripDirection.cast<
float>(),
90 stripCenterDistance.cast<
float>(),
91 topStripCenter.cast<
float>());
93 return StatusCode::SUCCESS;
void setSpacePoint(DetectorIDHashType idHash, const Eigen::Matrix< float, 3, 1 > &globPos, float cov_r, float cov_z, std::vector< const xAOD::UncalibratedMeasurement * > &&measurementIndexes)