10 #include <tracking/trackFindingCDC/filters/facet/MCFacetFilter.h>
12 #include <tracking/trackFindingCDC/mclookup/CDCMCHitLookUp.h>
14 #include <tracking/trackFindingCDC/eventdata/hits/CDCFacet.h>
15 #include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHitTriple.h>
16 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
18 #include <tracking/trackFindingCDC/filters/base/MCSymmetricFilter.icc.h>
23 using namespace TrackFindingCDC;
34 const int maxInTrackHitIdDifference = 3;
35 bool isCorrectFacet =
operator()(facet, maxInTrackHitIdDifference);
37 bool isCorrectReverseFacet =
38 this->
getAllowReverse() and operator()(facet.reversed(), maxInTrackHitIdDifference);
45 }
else if (isCorrectReverseFacet) {
56 int maxInTrackHitIdDifference)
69 if (startMCTrackId == INVALID_ITRACK or
70 middleMCTrackId == INVALID_ITRACK or
71 endMCTrackId == INVALID_ITRACK) {
75 if (not(startMCTrackId == middleMCTrackId and middleMCTrackId == endMCTrackId)) {
83 int startToMiddleInTrackDistance = middleInTrackId - startInTrackId;
84 int middleToEndInTrackDistance = endInTrackId - middleInTrackId;
87 bool distanceInTrackIsSufficientlyLow =
88 0 < startToMiddleInTrackDistance and startToMiddleInTrackDistance <= maxInTrackHitIdDifference and
89 0 < middleToEndInTrackDistance and middleToEndInTrackDistance <= maxInTrackHitIdDifference;
92 if (not distanceInTrackIsSufficientlyLow)
return false;
103 if (startRLInfo == mcStartRLInfo and middleRLInfo == mcMiddleRLInfo and endRLInfo == mcEndRLInfo) {