Skip to content

Commit 1ad815c

Browse files
jmyrchashahor02
authored andcommitted
o2-eve-workflow: filter on sorted track list
1 parent f045619 commit 1ad815c

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

EventVisualisation/Workflow/src/EveWorkflowHelper.cxx

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ using namespace o2::event_visualisation;
3939
void EveWorkflowHelper::selectTracks(const CalibObjectsConst* calib,
4040
GID::mask_t maskCl, GID::mask_t maskTrk, GID::mask_t maskMatch)
4141
{
42+
struct TrackTimeNode {
43+
GID trackGID;
44+
float trackTime;
45+
};
46+
std::vector<TrackTimeNode> trackTimeNodes;
4247
std::vector<Bracket> itsROFBrackets;
4348

4449
if (mEnabledFilters.test(Filter::ITSROF)) {
@@ -96,7 +101,7 @@ void EveWorkflowHelper::selectTracks(const CalibObjectsConst* calib,
96101
return false;
97102
};
98103

99-
auto creator = [maskTrk, this, &correctTrackTime, &isInsideITSROF](auto& trk, GID gid, float time, float terr) {
104+
auto creator = [maskTrk, this, &correctTrackTime, &isInsideITSROF, &trackTimeNodes](auto& trk, GID gid, float time, float terr) {
100105
if (!maskTrk[gid.getSource()]) {
101106
return true;
102107
}
@@ -115,13 +120,29 @@ void EveWorkflowHelper::selectTracks(const CalibObjectsConst* calib,
115120
return true;
116121
}
117122

118-
mTrackSet.trackGID.push_back(gid);
119-
mTrackSet.trackTime.push_back(bracket.mean());
123+
// mTrackSet.trackGID.push_back(gid);
124+
// mTrackSet.trackTime.push_back(bracket.mean());
125+
126+
TrackTimeNode node;
127+
node.trackGID = gid;
128+
node.trackTime = bracket.mean();
129+
trackTimeNodes.push_back(node);
120130

121131
return true;
122132
};
123133

124134
this->mRecoCont.createTracksVariadic(creator);
135+
std::sort(trackTimeNodes.begin(), trackTimeNodes.end(),
136+
[](TrackTimeNode a, TrackTimeNode b) {
137+
return a.trackTime > b.trackTime;
138+
});
139+
for (auto node : trackTimeNodes) {
140+
if (mEnabledFilters.test(Filter::TotalNTracks) && mTrackSet.trackGID.size() >= mMaxNTracks) {
141+
break;
142+
}
143+
mTrackSet.trackGID.push_back(node.trackGID);
144+
mTrackSet.trackTime.push_back(node.trackTime);
145+
}
125146
}
126147

127148
void EveWorkflowHelper::draw()

0 commit comments

Comments
 (0)