77 if (nofTracks <= 0 || nofRings <= 0)
return;
81 trackIndex.resize(nofRings);
82 trackDist.resize(nofRings);
83 for (UInt_t i = 0; i < trackIndex.size(); i++) {
88 for (
Int_t iIter = 0; iIter < 4; iIter++) {
89 for (
Int_t iRing = 0; iRing < nofRings; iRing++) {
92 if (trackIndex[iRing] != -1)
continue;
94 if (ring ==
nullptr)
continue;
100 Int_t iTrackMin = -1;
102 for (
Int_t iTrack = 0; iTrack < nofTracks; iTrack++) {
105 if (std::find(trackIndex.begin(), trackIndex.end(), iTrackIndex) != trackIndex.end())
continue;
107 FairTrackParam* track =
static_cast<FairTrackParam*
>(
richProj->At(iTrackIndex));
108 Double_t xTrack = track->GetX();
109 Double_t yTrack = track->GetY();
111 if (xTrack == 0 && yTrack == 0)
continue;
115 Double_t dist = TMath::Sqrt((xRing - xTrack) * (xRing - xTrack) + (yRing - yTrack) * (yRing - yTrack));
119 iTrackMin = iTrackIndex;
122 trackIndex[iRing] = iTrackMin;
123 trackDist[iRing] = rMin;
126 for (UInt_t i1 = 0; i1 < trackIndex.size(); i1++) {
127 for (UInt_t i2 = 0; i2 < trackIndex.size(); i2++) {
128 if (i1 == i2)
continue;
129 if (trackIndex[i1] == trackIndex[i2] && trackIndex[i1] != -1) {
130 if (trackDist[i1] >= trackDist[i2]) {
131 trackDist[i1] = 999.;
135 trackDist[i2] = 999.;
144 for (UInt_t i = 0; i < trackIndex.size(); i++) {
147 if (trackIndex[i] == -1)
continue;
158 if (nofTracks <= 0 || nofRings <= 0)
return;
159 for (
Int_t iTrack = 0; iTrack < nofTracks; iTrack++) {
165 FairTrackParam* track =
static_cast<FairTrackParam*
>(
richProj->At(iTrackIndex));
166 Double_t xTrack = track->GetX();
167 Double_t yTrack = track->GetY();
168 if (xTrack == 0 && yTrack == 0)
continue;
170 Double_t rMin = 999.;
172 for (
Int_t iRing = 0; iRing < nofRings; iRing++) {
175 if (ring ==
nullptr)
continue;
180 Double_t dist = TMath::Sqrt((xRing - xTrack) * (xRing - xTrack) + (yRing - yTrack) * (yRing - yTrack));
183 iRingMin = iRingIndex;
186 if (iRingMin < 0)
continue;