Skip to content

Commit cbace39

Browse files
committed
GPU TPC: Assume more sector track hits for low field data
1 parent b87ed89 commit cbace39

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

GPU/GPUTracking/DataTypes/GPUMemorySizeScalers.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ struct GPUMemorySizeScalers {
4343
double tpcClustersPerPeak = 0.9;
4444
double tpcStartHitsPerHit = 0.08;
4545
double tpcTrackletsPerStartHit = 0.8;
46+
double tpcTrackletsPerStartHitLowField = 0.85;
4647
double tpcTrackletHitsPerHit = 5;
48+
double tpcTrackletHitsPerHitLowField = 7;
4749
double tpcSectorTracksPerHit = 0.02;
4850
double tpcSectorTrackHitsPerHit = 0.8;
4951
double tpcSectorTrackHitsPerHitWithRejection = 1.0;
@@ -80,8 +82,8 @@ struct GPUMemorySizeScalers {
8082
inline size_t NTPCClusters(size_t tpcDigits, bool perSector = false) { return getValue(perSector ? tpcMaxSectorClusters : tpcMaxClusters, (conservative ? 1.0 : tpcClustersPerPeak) * NTPCPeaks(tpcDigits, perSector)); }
8183
inline size_t NTPCStartHits(size_t tpcHits) { return getValue(tpcMaxStartHits, tpcHits * tpcStartHitsPerHit); }
8284
inline size_t NTPCRowStartHits(size_t tpcHits) { return getValue(tpcMaxRowStartHits, std::max<size_t>(NTPCStartHits(tpcHits) * (tpcHits < 30000000 ? 20 : 12) / GPUCA_ROW_COUNT, tpcMinRowStartHits)); }
83-
inline size_t NTPCTracklets(size_t tpcHits) { return getValue(tpcMaxTracklets, NTPCStartHits(tpcHits) * tpcTrackletsPerStartHit); }
84-
inline size_t NTPCTrackletHits(size_t tpcHits) { return getValue(tpcMaxTrackletHits, hitOffset + tpcHits * tpcTrackletHitsPerHit); }
85+
inline size_t NTPCTracklets(size_t tpcHits, bool lowField) { return getValue(tpcMaxTracklets, NTPCStartHits(tpcHits) * (lowField ? tpcTrackletsPerStartHitLowField : tpcTrackletsPerStartHit)); }
86+
inline size_t NTPCTrackletHits(size_t tpcHits, bool lowField) { return getValue(tpcMaxTrackletHits, hitOffset + tpcHits * (lowField ? tpcTrackletHitsPerHitLowField : tpcTrackletHitsPerHit)); }
8587
inline size_t NTPCSectorTracks(size_t tpcHits) { return getValue(tpcMaxSectorTracks, tpcHits * tpcSectorTracksPerHit); }
8688
inline size_t NTPCSectorTrackHits(size_t tpcHits, uint8_t withRejection = 0) { return getValue(tpcMaxSectorTrackHits, tpcHits * (withRejection ? tpcSectorTrackHitsPerHitWithRejection : tpcSectorTrackHitsPerHit)); }
8789
inline size_t NTPCMergedTracks(size_t tpcSectorTracks) { return getValue(tpcMaxMergedTracks, tpcSectorTracks * (conservative ? 1.0 : tpcMergedTrackPerSectorTrack)); }

GPU/GPUTracking/SectorTracker/GPUTPCTracker.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,9 @@ void GPUTPCTracker::SetMaxData(const GPUTrackingInOutPointers& io)
144144
} else {
145145
mNMaxRowStartHits = mRec->MemoryScalers()->NTPCRowStartHits(mData.NumberOfHits());
146146
}
147-
mNMaxTracklets = mRec->MemoryScalers()->NTPCTracklets(mData.NumberOfHits());
148-
mNMaxRowHits = mRec->MemoryScalers()->NTPCTrackletHits(mData.NumberOfHits());
147+
bool lowField = CAMath::Abs(Param().bzkG) < 4;
148+
mNMaxTracklets = mRec->MemoryScalers()->NTPCTracklets(mData.NumberOfHits(), lowField);
149+
mNMaxRowHits = mRec->MemoryScalers()->NTPCTrackletHits(mData.NumberOfHits(), lowField);
149150
mNMaxTracks = mRec->MemoryScalers()->NTPCSectorTracks(mData.NumberOfHits());
150151
if (io.clustersNative) {
151152
uint32_t sectorOffset = mISector >= GPUCA_NSECTORS / 2 ? GPUCA_NSECTORS / 2 : 0;

0 commit comments

Comments
 (0)