26 if (not ptrTrackRelation)
return false;
33 const CDCTrack& fromTrack = *ptrFromTrack;
34 const CDCTrack& toTrack = *ptrToTrack;
42 const ROOT::Math::XYZVector& fromLastHitPos = fromLastHit.
getRecoPos3D();
43 const ROOT::Math::XYZVector& fromFirstHitPos = fromFirstHit.
getRecoPos3D();
45 const ROOT::Math::XYZVector& toFirstHitPos = toFirstHit.
getRecoPos3D();
46 const ROOT::Math::XYZVector& toLastHitPos = toLastHit.
getRecoPos3D();
48 const ROOT::Math::XYZVector hitPosGap = toFirstHitPos - fromLastHitPos;
49 const ROOT::Math::XYZVector longHitPosGap = toLastHitPos - fromFirstHitPos;
51 const double hitDistance = hitPosGap.R();
52 const double longHitDistance = longHitPosGap.R();
57 finitevar<
named(
"delta_hit_pos_phi")>() = ROOT::Math::VectorUtil::DeltaPhi(fromLastHitPos, toFirstHitPos);
58 finitevar<
named(
"delta_hit_mom_phi")>() = ROOT::Math::VectorUtil::DeltaPhi(fromLastHitMom, toFirstHitMom);
60 double fromLastHitAlpha = fromLastHit.
getAlpha();
61 double toFirstHitAlpha = toFirstHit.
getAlpha();
64 finitevar<
named(
"delta_hit_z")>() = fromLastHitPos.z() - toFirstHitPos.z();
69 finitevar<
named(
"delta_hit_distance")>() = longHitDistance - hitDistance;
71 finitevar<
named(
"from_hit_forward")>() = VectorUtil::getXYVector(hitPosGap).Dot(fromLastHitMom);
72 finitevar<
named(
"to_hit_forward")>() = VectorUtil::getXYVector(hitPosGap).Dot(toFirstHitMom);
73 finitevar<
named(
"hit_forward")>() = VectorUtil::getXYVector(hitPosGap).Dot(VectorUtil::average(fromLastHitMom, toFirstHitMom));
75 const ROOT::Math::XYZVector fromStretch = fromLastHitPos - fromFirstHitPos;
76 const ROOT::Math::XYZVector toStretch = toLastHitPos - toFirstHitPos;
78 const double fromLength = fromStretch.R();
79 const double toLength = toStretch.R();
81 const ROOT::Math::XYZVector firstPosGap = toFirstHitPos - fromFirstHitPos;
82 const ROOT::Math::XYZVector lastPosGap = toLastHitPos - fromLastHitPos;
84 const double firstOffset = firstPosGap.R();
85 const double lastOffset = lastPosGap.R();
88 firstOffset * lastOffset - longHitDistance * hitDistance - fromLength * toLength;