10 #include <tracking/trackFindingCDC/filters/facetRelation/BendFacetRelationVarSet.h>
12 #include <tracking/trackFindingCDC/eventdata/hits/CDCFacet.h>
15 using namespace TrackFindingCDC;
19 if (not ptrFacetRelation)
return false;
22 const CDCFacet& fromFacet = *facetRelation.first;
23 const CDCFacet& toFacet = *facetRelation.second;
58 const double sAB = fromAB;
59 const double sBC = (fromBC + toBC) / 2;
60 const double sCD = toCD;
62 const double sAC = fromAC;
63 const double sBD = toBD;
67 const double fromDeltaPhi =
69 const double toDeltaPhi =
72 const double deltaPhi = fromDeltaPhi - toDeltaPhi;
74 const double fromCurv = 2 * fromDeltaPhi / sAC;
75 const double toCurv = 2 * toDeltaPhi / sBD;
76 const double deltaCurv = toCurv - fromCurv;
78 const double dPhiA = 1 / sAB;
79 const double dPhiB = 1 / sAB + 2 / sBC;
80 const double dPhiC = 1 / sCD + 2 / sBC;
81 const double dPhiD = 1 / sCD;
83 const double dCurvA = 2 / sAC / sAB;
84 const double dCurvB = 2 / sAC / sAB + (2 / sAC + 2 / sBD) / sBC;
85 const double dCurvC = 2 / sBD / sCD + (2 / sAC + 2 / sBD) / sBC;
86 const double dCurvD = 2 / sBD / sCD;
88 const double varLA = fromStartVarL;
89 const double varLB = (fromMiddleVarL + toStartVarL) / 2;
90 const double varLC = (fromEndVarL + toMiddleVarL) / 2;
91 const double varLD = toEndVarL;
93 const double deltaPhiVar =
94 varLA * dPhiA * dPhiA +
95 varLB * dPhiB * dPhiB +
96 varLC * dPhiC * dPhiC +
97 varLD * dPhiD * dPhiD;
99 const double deltaCurvVar =
100 varLA * dCurvA * dCurvA +
101 varLB * dCurvB * dCurvB +
102 varLC * dCurvC * dCurvC +
103 varLD * dCurvD * dCurvD;
105 const double deltaCurvPull = deltaCurv / std::sqrt(deltaCurvVar);
106 const double deltaPhiPull = deltaPhi / std::sqrt(deltaPhiVar);
108 var<
named(
"delta_phi")>() = std::fabs(deltaPhi);
109 var<
named(
"delta_phi_pull")>() = std::fabs(deltaPhiPull);
110 var<
named(
"delta_curv")>() = std::fabs(deltaCurv);
111 var<
named(
"delta_curv_pull")>() = std::fabs(deltaCurvPull);
114 var<
named(
"delta_phi_pull_per_r")>() = std::fabs(deltaPhiPull) / r;
115 var<
named(
"delta_curv_pull_per_r")>() = std::fabs(deltaCurvPull) / r;