Skip to content

Commit 099fa61

Browse files
shahor02Benedikt Volkel
authored andcommitted
modify TPC sector tracklet selection
(cherry picked from commit 0ec1a04)
1 parent 840448f commit 099fa61

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

GPU/GPUTracking/Definitions/GPUSettingsList.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ AddOptionRTC(trackMergerFactor2K, float, 2.0f * 2.0f, "", 0, "factor2K for track
9999
AddOptionRTC(trackMergerFactor2General, float, 3.5f * 3.5f, "", 0, "General factor for track merging")
100100
AddOptionRTC(rejectEdgeClustersMargin, float, 0.f, "", 0, "Margin in cm of Y position when rejecting edge clusters based on uncorrected track Y")
101101
AddOptionRTC(rejectEdgeClustersSigmaMargin, float, 0.f, "", 0, "Margin factor for trackSigmaY when rejecting edge clusters based on uncorrected track Y")
102+
AddOptionRTC(trackletMaxSharedFraction, float, 0.1f, "", 0, "Max fraction of shared clusters for tracklet")
103+
AddOptionRTC(trackletMinSharedNormFactor, float, 0.f, "", 0, "Max shared defined as trackletMinSharedNormFactor*max(current_nhits,trackletMinSharedNormFactor*minHits,1)")
102104
AddOptionRTC(maxTimeBinAboveThresholdIn1000Bin, unsigned short, 500, "", 0, "Except pad from cluster finding if total number of charges in a fragment is above this baseline (disable = 0)")
103105
AddOptionRTC(maxConsecTimeBinAboveThreshold, unsigned short, 200, "", 0, "Except pad from cluster finding if number of consecutive charges in a fragment is above this baseline (disable = 0)")
104106
AddOptionRTC(noisyPadSaturationThreshold, unsigned short, 700, "", 0, "Threshold where a timebin is considered saturated, disabling the noisy pad check for that pad")

GPU/GPUTracking/SliceTracker/GPUTPCTrackletSelector.cxx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ GPUdii() void GPUTPCTrackletSelector::Thread<0>(int nBlocks, int nThreads, int i
3434
GPUbarrier();
3535

3636
GPUTPCHitId trackHits[GPUCA_ROW_COUNT - GPUCA_TRACKLET_SELECTOR_HITS_REG_SIZE];
37+
const float maxSharedFrac = tracker.Param().rec.tpc.trackletMaxSharedFraction;
3738

3839
for (int itr = s.mItr0 + iThread; itr < s.mNTracklets; itr += s.mNThreadsTotal) {
3940
GPUbarrierWarp();
4041

4142
GPUglobalref() MEM_GLOBAL(GPUTPCTracklet) & GPUrestrict() tracklet = tracker.Tracklets()[itr];
42-
const float kMaxShared = .1f;
4343

4444
int firstRow = tracklet.FirstRow();
4545
int lastRow = tracklet.LastRow();
@@ -52,6 +52,8 @@ GPUdii() void GPUTPCTrackletSelector::Thread<0>(int nBlocks, int nThreads, int i
5252
int nShared = 0;
5353
int nHits = 0;
5454
const int minHits = tracker.Param().rec.tpc.minNClustersTrackSeed == -1 ? GPUCA_TRACKLET_SELECTOR_MIN_HITS_B5(tracklet.Param().QPt() * tracker.Param().qptB5Scaler) : tracker.Param().rec.tpc.minNClustersTrackSeed;
55+
const int sharingMinNorm = minHits * tracker.Param().rec.tpc.trackletMinSharedNormFactor;
56+
float maxShared = maxSharedFrac * sharingMinNorm;
5557

5658
GPUCA_UNROLL(, U(1))
5759
for (irow = firstRow; irow <= lastRow && lastRow - irow + nHits >= minHits; irow++) {
@@ -62,7 +64,7 @@ GPUdii() void GPUTPCTrackletSelector::Thread<0>(int nBlocks, int nThreads, int i
6264
if (ih != CALINK_INVAL && ih != CALINK_DEAD_CHANNEL) {
6365
GPUglobalref() const MEM_GLOBAL(GPUTPCRow)& row = tracker.Row(irow);
6466
bool own = (tracker.HitWeight(row, ih) <= w);
65-
bool sharedOK = ((nShared < nHits * kMaxShared));
67+
bool sharedOK = nShared <= (nHits < sharingMinNorm ? maxShared : nHits * maxSharedFrac);
6668
if (own || sharedOK) { // SG!!!
6769
gap = 0;
6870
#if GPUCA_TRACKLET_SELECTOR_HITS_REG_SIZE != 0

0 commit comments

Comments
 (0)