Skip to content

Commit 09b57b4

Browse files
committed
Refactor selection function, return simple int instead of reference to int
1 parent 318837b commit 09b57b4

5 files changed

Lines changed: 22 additions & 30 deletions

File tree

DataFormats/Detectors/ITSMFT/ITS/include/DataFormatsITS/TrackITS.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,9 @@ class TrackITSExt : public TrackITS
192192
getClusterRefs().setEntries(ncl);
193193
}
194194

195-
GPUhdi() const int& getClusterIndex(int lr) const { return mIndex[lr]; }
195+
GPUhdi() const int getClusterIndex(int lr) const { return mIndex[lr]; }
196196

197-
GPUh() const int& getFirstLayerClusterIndex() const
197+
GPUh() const int getFirstLayerClusterIndex() const
198198
{
199199
int firstLayer = getFirstClusterLayer();
200200
return getClusterIndex(firstLayer);

Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ struct TrackingParameters {
7070
float DiamondCov[6] = {25.e-6f, 0.f, 0.f, 25.e-6f, 0.f, 36.f};
7171

7272
/// General parameters
73-
bool AllowSharingFirstCluster = false;
7473
int ClusterSharing = 0;
7574
int MinTrackLength = 7;
7675
int MaxHoles = 0;
@@ -100,6 +99,7 @@ struct TrackingParameters {
10099
bool DropTFUponFailure = false;
101100

102101
// Selections on tracks sharing clusters
102+
bool AllowSharingFirstCluster = false;
103103
float SharedClusterMaxDeltaPhi = 0.05f; // For tracks sharing clusters, maximum allowed delta phi at the cluster position
104104
float SharedClusterMaxDeltaEta = 0.03f; // For tracks sharing clusters, maximum allowed delta eta at the cluster position
105105
bool SharedClusterOppositeSign = false; // For tracks sharing clusters, require opposite sign of the tracklets

Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackerTraits.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ class TrackerTraits
5858
void acceptTracks(int iteration, bounded_vector<TrackITSExt>& tracks, bounded_vector<bounded_vector<int>>& firstClusters, bounded_vector<bounded_vector<int>>& sharedFirstClusters);
5959
void markTracks(int iteration, bounded_vector<bounded_vector<int>>& sharedFirstClusters);
6060

61-
bool areTracksSelected(int iteration, const TrackITSExt& t1, const TrackITSExt& t2);
62-
6361
void updateTrackingParameters(const std::vector<TrackingParameters>& trkPars)
6462
{
6563
mTrkParams = trkPars;

Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ struct TrackerParamConfig : public o2::conf::ConfigurableParamHelper<TrackerPara
102102
size_t maxMemory = std::numeric_limits<size_t>::max();
103103
bool dropTFUponFailure = false;
104104
bool fataliseUponFailure = true; // granular management of the fatalisation in async mode
105-
bool allowSharingFirstCluster = false; // allow first cluster sharing among tracks
106105

107106
// Selections on tracks sharing clusters
107+
bool allowSharingFirstCluster = false; // allow first cluster sharing among tracks
108108
float sharedClusterMaxDeltaPhi = 0.05f; // Maximum allowed delta phi at the cluster position
109109
float sharedClusterMaxDeltaEta = 0.03f; // Maximum allowed delta eta at the cluster position
110110
bool sharedClusterOppositeSign = false; // Require opposite sign of the tracklets

Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -881,18 +881,31 @@ void TrackerTraits<NLayers>::markTracks(int iteration, bounded_vector<bounded_ve
881881
return t1.getFirstLayerClusterIndex() < t2.getFirstLayerClusterIndex();
882882
});
883883

884+
auto areTracksSelected = [this, iteration](const TrackITSExt& t1, const TrackITSExt& t2) {
885+
const auto t1FirstLayer{t1.getFirstClusterLayer()}, t2FirstLayer{t2.getFirstClusterLayer()};
886+
if (mTimeFrame->getClusterROF(t1FirstLayer, t1.getClusterIndex(t1FirstLayer)) != mTimeFrame->getClusterROF(t2FirstLayer, t2.getClusterIndex(t2FirstLayer))) {
887+
return false;
888+
}
889+
if (o2::math_utils::detail::deltaPhiSmall(t1.getPhi(), t2.getPhi()) > mTrkParams[iteration].SharedClusterMaxDeltaPhi) {
890+
return false;
891+
}
892+
if (std::abs(t1.getEta() - t2.getEta()) > mTrkParams[iteration].SharedClusterMaxDeltaEta) {
893+
return false;
894+
}
895+
if (mTrkParams[iteration].SharedClusterOppositeSign && t1.getSign() == t2.getSign()) {
896+
return false;
897+
}
898+
return true;
899+
};
900+
884901
for (int i{0}; i < static_cast<int>(tracks.size()); ++i) {
885902
auto& track = tracks[i];
886903
int firstLayer{track.getFirstClusterLayer()}, firstCluster{track.getFirstLayerClusterIndex()};
887904
if (std::binary_search(sharedFirstClusters[firstLayer].begin(), sharedFirstClusters[firstLayer].end(), firstCluster)) {
888905
int j = i + 1;
889906
while (j < static_cast<int>(tracks.size()) && tracks[j].getFirstLayerClusterIndex() == firstCluster) {
890907
auto& track2 = tracks[j];
891-
if (areTracksSelected(iteration, track, track2)) {
892-
for (int iLayer{track.getFirstClusterLayer()}; iLayer < track.getFirstClusterLayer() + track.getNClusters(); ++iLayer) {
893-
}
894-
for (int iLayer{track2.getFirstClusterLayer()}; iLayer < track2.getFirstClusterLayer() + track2.getNClusters(); ++iLayer) {
895-
}
908+
if (areTracksSelected(track, track2)) {
896909
track.setSharedClusters();
897910
track2.setSharedClusters();
898911
}
@@ -903,25 +916,6 @@ void TrackerTraits<NLayers>::markTracks(int iteration, bounded_vector<bounded_ve
903916
}
904917
}
905918

906-
template <int NLayers>
907-
bool TrackerTraits<NLayers>::areTracksSelected(int iteration, const TrackITSExt& t1, const TrackITSExt& t2)
908-
{
909-
const auto t1FirstLayer{t1.getFirstClusterLayer()}, t2FirstLayer{t2.getFirstClusterLayer()};
910-
if (mTimeFrame->getClusterROF(t1FirstLayer, t1.getClusterIndex(t1FirstLayer)) != mTimeFrame->getClusterROF(t2FirstLayer, t2.getClusterIndex(t2FirstLayer))) {
911-
return false;
912-
}
913-
if (o2::math_utils::detail::deltaPhiSmall(t1.getPhi(), t2.getPhi()) > mTrkParams[iteration].SharedClusterMaxDeltaPhi) {
914-
return false;
915-
}
916-
if (std::abs(t1.getEta() - t2.getEta()) > mTrkParams[iteration].SharedClusterMaxDeltaEta) {
917-
return false;
918-
}
919-
if (mTrkParams[iteration].SharedClusterOppositeSign && t1.getSign() == t2.getSign()) {
920-
return false;
921-
}
922-
return true;
923-
}
924-
925919
template <int NLayers>
926920
void TrackerTraits<NLayers>::setBz(float bz)
927921
{

0 commit comments

Comments
 (0)