22 float r_3 =
static_cast<float>( Tp(0,2) );
23 float r_4 =
static_cast<float>( Tp(1,2) );
24 float r_5 =
static_cast<float>( Tp(2,2) );
27 float f22 =
static_cast<float>(
v(1,1) );
28 float wid =
static_cast<float>(
c->width().z() );
29 float cov = wid*wid*.08333;
31 float covr = 6 *
cov * (r_5*r_5);
32 float covz = 6 *
cov * (r_3*r_3 + r_4*r_4);
35 globPos.cast<
float>(),
40 return StatusCode::SUCCESS;
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;