10 #include <tracking/ckf/svd/filters/states/ResidualSVDStateFilter.h>
12 #include <tracking/trackFindingCDC/geometry/Vector3D.h>
13 #include <tracking/spacePointCreation/SpacePoint.h>
14 #include <framework/core/ModuleParamList.h>
15 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
18 using namespace TrackFindingCDC;
22 moduleParamList->
addParameter(TrackFindingCDC::prefixed(prefix,
"maximalResidual"), m_param_maximalResidual,
23 "Maximal residual.", m_param_maximalResidual);
28 const std::vector<TrackFindingCDC::WithWeight<const CKFToSVDState*>>& previousStates = pair.first;
31 const auto* spacePoint = currentState->
getHit();
37 firstMeasurement = previousStates.back()->getMeasuredStateOnPlane();
41 const Vector3D hitPosition =
static_cast<Vector3D>(spacePoint->getPosition());
43 const bool sameHemisphere = fabs(position.phi() - hitPosition.phi()) < TMath::PiOver2();
44 if (not sameHemisphere) {
48 const double residual = m_kalmanStepper.calculateResidual(firstMeasurement, *currentState);
49 if (residual > m_param_maximalResidual) {
54 return 1 / (residual + 1e-6);