8#include <tracking/ckf/svd/filters/relations/SensorSVDPairFilter.h>
9#include <tracking/trackFindingCDC/filters/base/Filter.icc.h>
11#include <tracking/trackFindingCDC/utilities/StringManipulation.h>
12#include <framework/core/ModuleParamList.templateDetails.h>
14#include <vxd/geometry/GeoCache.h>
17using namespace TrackFindingCDC;
19TrackFindingCDC::Weight
25 const CKFToSVDState::stateCache& fromStateCache = fromState.
getStateCache();
26 const CKFToSVDState::stateCache& toStateCache = toState.
getStateCache();
28 B2ASSERT(
"You have filled the wrong states into this!", toStateCache.isHitState);
30 if (not fromStateCache.isHitState) {
33 float phiDiff = fromStateCache.phi - toStateCache.sensorCenterPhi;
34 while (phiDiff > M_PI) phiDiff -= 2. * M_PI;
35 while (phiDiff < -M_PI) phiDiff += 2. * M_PI;
47 if (fromStateCache.geoLayer == toStateCache.geoLayer and
48 fromStateCache.sensorID.getSensorNumber() == toStateCache.sensorID.getSensorNumber()) {
56 const int sensorNumberDifference =
57 static_cast<int>(fromStateCache.sensorID.getSensorNumber()) -
static_cast<int>(toStateCache.sensorID.getSensorNumber());
58 const int layerNumberDifference =
59 static_cast<int>(fromStateCache.geoLayer) -
static_cast<int>(toStateCache.geoLayer);
61 if ((abs(sensorNumberDifference) > 1 and layerNumberDifference == 1) or (abs(sensorNumberDifference) > 2)) {
65 float phiDiff = fromStateCache.sensorCenterPhi - toStateCache.sensorCenterPhi;
66 while (phiDiff > M_PI) phiDiff -= 2. * M_PI;
67 while (phiDiff < -M_PI) phiDiff += 2. * M_PI;
Specialized CKF State for extrapolating into the SVD.
const struct stateCache & getStateCache() const
Get the cached data of this state.
The Module parameter list class.
double m_param_PhiHitHitCut
Pre-filter relations in theta between hit states.
TrackFindingCDC::Weight operator()(const std::pair< const CKFToSVDState *, const CKFToSVDState * > &relation) override
Return the weight based on layer.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters.
double m_param_PhiRecoTrackToHitCut
Pre-filter relations in phi between seed states and hit states.
void addParameter(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
Abstract base class for different kinds of events.