47 std::pair<unsigned int, unsigned int> idHashes = trkSpacePoint.
elementIdList();
58 std::pair<Amg::Vector3D, Amg::Vector3D> e0 =
60 std::pair<Amg::Vector3D, Amg::Vector3D> e1 =
63 auto stripCenter_1 = 0.5 * (e0.first + e0.second);
64 auto stripDir_1 = e0.first - e0.second;
65 auto trajDir_1 = 2. * ( stripCenter_1 - vertex);
67 auto stripCenter_2 = 0.5 * (e1.first + e1.second);
68 auto stripDir_2 = e1.first - e1.second;
70 float topHalfStripLength = 0.5 * stripDir_1.norm();
71 Eigen::Matrix<double, 3, 1> topStripDirection = - stripDir_1 / (2. * topHalfStripLength);
72 Eigen::Matrix<double, 3, 1> topStripCenter = 0.5 * trajDir_1;
73 float bottomHalfStripLength = 0.5 * stripDir_2.norm();
74 Eigen::Matrix<double, 3, 1> bottomStripDirection = - stripDir_2 / (2. * bottomHalfStripLength);
75 Eigen::Matrix<double, 3, 1> stripCenterDistance = stripCenter_1 - stripCenter_2;
78 float f22 =
static_cast<float>( v(1,1) );
80 float covr = d0->isBarrel() ? .1 : 8.*f22;
81 float covz = d0->isBarrel() ? 8.*f22 : .1;
83 xaodSpacePoint.
setSpacePoint({idHashes.first, idHashes.second},
84 globPos.cast<
float>(),
89 bottomHalfStripLength,
90 topStripDirection.cast<
float>(),
91 bottomStripDirection.cast<
float>(),
92 stripCenterDistance.cast<
float>(),
93 topStripCenter.cast<
float>());
95 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)