106 m_matched = float(recoTrack.getMatchingStatus() == RecoTrack::MatchingStatus::c_matched);
107 m_background = float(recoTrack.getMatchingStatus() == RecoTrack::MatchingStatus::c_background);
108 m_ghost = float(recoTrack.getMatchingStatus() == RecoTrack::MatchingStatus::c_ghost);
109 m_fake = float((recoTrack.getMatchingStatus() == RecoTrack::MatchingStatus::c_background)
110 || (recoTrack.getMatchingStatus() == RecoTrack::MatchingStatus::c_ghost));
111 m_clone = float(recoTrack.getMatchingStatus() == RecoTrack::MatchingStatus::c_clone);
117 std::vector<RecoTrack*> allCDCTracks;
119 for (
auto* cdcHit : cdcHitList) {
122 for (
unsigned int index = 0; index < relatedCDCTracks.
size(); ++index) {
123 RecoTrack* relatedCDCTrack = relatedCDCTracks[index];
124 if (std::find(allCDCTracks.begin(), allCDCTracks.end(), relatedCDCTrack) == allCDCTracks.end()) {
125 allCDCTracks.push_back(relatedCDCTrack);
133 for (
RecoTrack* foundCDCTrack : allCDCTracks) {
134 const auto& foundCDCTrackHitList = foundCDCTrack->getCDCHitList();
135 if (foundCDCTrackHitList.size() == cdcHitList.size() and
136 std::equal(foundCDCTrackHitList.begin(), foundCDCTrackHitList.end(), cdcHitList.begin())) {
137 cdcRecoTrackPtr = foundCDCTrack;
143 std::vector<RecoTrack*> allSVDTracks;
145 for (
auto* svdHit : svdHitList) {
147 for (
unsigned int index = 0; index < relatedSVDTracks.
size(); ++index) {
148 RecoTrack* relatedSVDTrack = relatedSVDTracks[index];
149 if (std::find(allSVDTracks.begin(), allSVDTracks.end(), relatedSVDTrack) == allSVDTracks.end()) {
150 allSVDTracks.push_back(relatedSVDTrack);
158 RecoTrack* svdRecoTrackBeforePtr =
nullptr;
160 for (
RecoTrack* foundSVDTrack : allSVDTracks) {
161 const auto& foundSVDTrackHitList = foundSVDTrack->getSVDHitList();
162 if (foundSVDTrackHitList.size() != svdHitList.size())
164 if (std::equal(foundSVDTrackHitList.begin(), foundSVDTrackHitList.end(), svdHitList.begin())) {
165 svdRecoTrackPtr = foundSVDTrack;
169 if (svdRecoTrackPtr ==
nullptr) {
171 for (
RecoTrack* foundSVDTrackBefore : allSVDTracks) {
172 const auto& foundSVDTrackBeforeHitList = foundSVDTrackBefore->getSVDHitList();
173 auto sizeBefore = foundSVDTrackBeforeHitList.size();
174 if (sizeBefore >= svdHitList.size())
176 if (not std::equal(foundSVDTrackBeforeHitList.begin(), foundSVDTrackBeforeHitList.end(), svdHitList.begin()))
178 auto rest = svdHitList.size() - sizeBefore;
179 for (
RecoTrack* foundSVDTrackAfter : allSVDTracks) {
180 const auto& foundSVDTrackAfterHitList = foundSVDTrackAfter->getSVDHitList();
181 if (foundSVDTrackBefore == foundSVDTrackAfter)
183 if (foundSVDTrackAfterHitList.size() != rest)
185 if (std::equal(foundSVDTrackAfterHitList.begin(), foundSVDTrackAfterHitList.end(), svdHitList.begin() + sizeBefore)) {
186 svdRecoTrackPtr = foundSVDTrackAfter;
187 svdRecoTrackBeforePtr = foundSVDTrackBefore;
191 if (svdRecoTrackBeforePtr)
197 if (svdRecoTrackPtr) {
200 std::vector<SpacePoint const*> sortedHits;
210 if (svdRecoTrackBeforePtr) {
213 std::vector<SpacePoint const*> sortedHitsBefore;
215 sortedHitsBefore = spacePointTrackCandBefore->
getSortedHits();