71 auto transformationMatrix = mGeo->
getMatrixT2L(detector);
73 ROOT::Math::Impl::Transform3D<double>::Point localPoint(point[0], point[1], point[2]);
74 auto gobalPoint = transformationMatrix ^ localPoint;
76 return {(float)gobalPoint.x(), (float)gobalPoint.y(), (float)gobalPoint.z()};
81 auto detector = tracklet.getDetector();
82 auto hcid = tracklet.getHCID();
83 auto padrow = tracklet.getPadRow();
84 auto column = tracklet.getColumn();
88 position = tracklet.getPosition() ^ 0x80;
89 if (position & (1 << (constants::NBITSTRKLPOS - 1))) {
90 position = -((~(position - 1)) & ((1 << constants::NBITSTRKLPOS) - 1));
92 slope = tracklet.getSlope() ^ 0x80;
93 if (
slope & (1 << (constants::NBITSTRKLSLOPE - 1))) {
94 slope = -((~(
slope - 1)) & ((1 << constants::NBITSTRKLSLOPE) - 1));
97 position = tracklet.getPositionBinSigned();
98 slope = tracklet.getSlopeBinSigned();
102 const auto padPlane = mGeo->getPadPlane(detector);
105 float x = mGeo->cdrHght() - 0.5;
106 float y = tracklet.getUncalibratedY(mApplyShift);
115 std::array<float, 3> sectorSpacePoint =
transformL2T(detector, std::array<double, 3>{calibratedX,
y,
z});
116 LOG(
debug) <<
"x: " << sectorSpacePoint[0] <<
" | "
117 <<
"y: " << sectorSpacePoint[1] <<
" | "
118 <<
"z: " << sectorSpacePoint[2];
119 return CalibratedTracklet(sectorSpacePoint[0], sectorSpacePoint[1], sectorSpacePoint[2], dy);