Skip to content

Commit 1641d3f

Browse files
committed
GPU: Add option for zero-suppression threshold for input digits
1 parent 02a3d6a commit 1641d3f

4 files changed

Lines changed: 8 additions & 1 deletion

File tree

Detectors/TPC/reconstruction/src/GPUCATracking.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,15 @@ int GPUCATracking::runTracking(GPUO2InterfaceIOPtrs* data)
8686
GPUTrackingInOutPointers ptrs;
8787
if (data->o2Digits) {
8888
ptrs.clustersNative = nullptr;
89+
const float zsThreshold = mTrackingCAO2Interface->getConfig().configReconstruction.tpcZSthreshold;
8990
for (int i = 0; i < Sector::MAXSECTOR; i++) {
9091
const std::vector<o2::tpc::Digit>& d = (*(data->o2Digits))[i];
9192
gpuDigits[i].reserve(d.size());
9293
gpuDigitsMap.tpcDigits[i] = gpuDigits[i].data();
9394
for (int j = 0; j < d.size(); j++) {
94-
gpuDigits[i].emplace_back(gpucf::PackedDigit{d[j].getChargeFloat(), (gpucf::timestamp)d[j].getTimeStamp(), (gpucf::pad_t)d[j].getPad(), (gpucf::row_t)d[j].getRow()});
95+
if (d[j].getChargeFloat() >= zsThreshold) {
96+
gpuDigits[i].emplace_back(gpucf::PackedDigit{d[j].getChargeFloat(), (gpucf::timestamp)d[j].getTimeStamp(), (gpucf::pad_t)d[j].getPad(), (gpucf::row_t)d[j].getRow()});
97+
}
9598
}
9699
gpuDigitsMap.nTPCDigits[i] = gpuDigits[i].size();
97100
}

GPU/GPUTracking/Base/GPUSettings.cxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ void GPUSettingsRec::SetDefaults()
4343
tpcCompressionSortOrder = GPUSettings::SortPad;
4444
tpcSigBitsCharge = 4;
4545
tpcSigBitsWidth = 3;
46+
tpcZSthreshold = 2;
4647
}
4748

4849
void GPUSettingsEvent::SetDefaults()

GPU/GPUTracking/Base/GPUSettings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ struct GPUSettingsRec {
7373
unsigned char tpcCompressionSortOrder; // Sort order for clusters storred as differences (0 = time, 1 = pad, 2 = Z-curve-time-pad, 3 = Z-curve-pad-time)
7474
unsigned char tpcSigBitsCharge; // Number of significant bits for TPC cluster charge in compression mode 1
7575
unsigned char tpcSigBitsWidth; // Number of significant bits for TPC cluster width in compression mode 1
76+
unsigned char tpcZSthreshold; // TPC Zero Suppression Threshold (for loading digits / forwarging digits as clusters)
7677
};
7778

7879
// Settings describing the events / time frames

GPU/GPUTracking/Interface/GPUO2Interface.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ class GPUTPCO2Interface
5656
bool GetParamContinuous() { return (mContinuous); }
5757
void GetClusterErrors2(int row, float z, float sinPhi, float DzDs, float& ErrY2, float& ErrZ2) const;
5858

59+
const GPUO2InterfaceConfiguration& getConfig() const { return *mConfig; }
60+
5961
private:
6062
GPUTPCO2Interface(const GPUTPCO2Interface&);
6163
GPUTPCO2Interface& operator=(const GPUTPCO2Interface&);

0 commit comments

Comments
 (0)