10 #include <tracking/ckf/cdc/filters/pathPairs/MCTruthCDCPathPairFilter.h>
11 #include <tracking/dataobjects/RecoTrack.h>
19 std::sort(correctHits.begin(), correctHits.end());
21 unsigned int numberOfCorrectHits = 0;
23 for (
const auto& state : path) {
28 const auto* wireHit = state.getWireHit();
29 const auto* cdcHit = wireHit->getHit();
31 if (std::binary_search(correctHits.begin(), correctHits.end(), cdcHit)) {
32 numberOfCorrectHits++;
36 return numberOfCorrectHits;
42 const auto& lhs = *pair.first;
43 const auto& rhs = *pair.second;
45 const auto& lhsSeed = lhs.front();
46 const auto& rhsSeed = rhs.front();
48 const auto* lhsMCRecoTrack = lhsSeed.getMCRecoTrack();
49 const auto* rhsMCRecoTrack = rhsSeed.getMCRecoTrack();
52 if (not lhsMCRecoTrack and rhsMCRecoTrack) {
54 }
else if (lhsMCRecoTrack and not rhsMCRecoTrack) {
56 }
else if (not lhsMCRecoTrack and not rhsMCRecoTrack) {
62 const unsigned int lhsCorrectHits = countCorrectHits(lhs, lhsMCRecoTrack);
63 const unsigned int rhsCorrectHits = countCorrectHits(rhs, rhsMCRecoTrack);
66 if (lhsCorrectHits > rhsCorrectHits) {
68 }
else if (lhsCorrectHits < rhsCorrectHits) {
73 const unsigned int lhsSize = lhs.size();
74 const unsigned int rhsSize = rhs.size();
78 if (lhsSize > rhsSize) {
80 }
else if (lhsSize < rhsSize) {
86 const double lhsLastArcLength = lhs.back().getArcLength();
87 const double rhsLastArcLength = rhs.back().getArcLength();
89 return lhsLastArcLength < rhsLastArcLength;