Skip to content

Commit b1931fb

Browse files
shahor02chiarazampolli
authored andcommitted
Add tracks filtering on dedx to TPC tracking output
1 parent 4eee98e commit b1931fb

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

GPU/GPUTracking/Definitions/GPUSettingsList.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ AddOptionRTC(PID_EDrangeMax, float, 1.98f, "", 0, "max P of electron/d BB bands
6969
AddOptionRTC(PID_ETrangeMin, float, 2.84f, "", 0, "min P of electron/t BB bands crossing")
7070
AddOptionRTC(PID_ETrangeMax, float, 2.94f, "", 0, "max P of electron/t BB bands crossing")
7171
AddOptionRTC(PID_sigma, float, 0.06f, "", 0, "relative sigma for PID in combination with PID_useNsigma")
72+
AddOptionRTC(minTrackdEdxMax, float, 20.0f, "", 0, "min accepted dEdxMaxTPC of the track")
73+
AddOptionRTC(minTrackdEdxMax2Tot, float, 0.67, "", 0, "min accepted dEdxMaxTPC/dEdxTotTPC of the track")
7274
AddOptionRTC(extraClusterErrorEdgeY2, float, 0.35f, "", 0, "Additive extra cluster error for Y2 if edge flag set")
7375
AddOptionRTC(extraClusterErrorEdgeZ2, float, 0.15f, "", 0, "Additive extra cluster error for Z2 if edge flag set")
7476
AddOptionRTC(extraClusterErrorSingleY2, float, 0.2f, "", 0, "Additive extra cluster error for Y2 if edge single set")

GPU/GPUTracking/Merger/GPUTPCGMO2Output.cxx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,13 @@ GPUdii() void GPUTPCGMO2Output::Thread<GPUTPCGMO2Output::prepare>(int nBlocks, i
4040
const GPUTPCGMMergedTrack* tracks = merger.OutputTracks();
4141
const unsigned int nTracks = merger.NOutputTracks();
4242
const GPUTPCGMMergedTrackHit* trackClusters = merger.Clusters();
43+
const GPUdEdxInfo* tracksdEdx = merger.OutputTracksdEdx();
44+
4345
constexpr unsigned char flagsReject = getFlagsReject();
4446
const unsigned int flagsRequired = getFlagsRequired(merger.Param().rec);
47+
const float minTrackdEdxMax = merger.Param().rec.tpc.minTrackdEdxMax;
48+
const float minTrackdEdxMax2Tot = merger.Param().rec.tpc.minTrackdEdxMax2Tot;
49+
bool cutOnTrackdEdx = merger.Param().par.dodEdx && merger.Param().rec.tpc.minTrackdEdxMax2Tot > 0.;
4550

4651
GPUTPCGMMerger::tmpSort* GPUrestrict() trackSort = merger.TrackSortO2();
4752
uint2* GPUrestrict() tmpData = merger.ClusRefTmp();
@@ -68,6 +73,9 @@ GPUdii() void GPUTPCGMO2Output::Thread<GPUTPCGMO2Output::prepare>(int nBlocks, i
6873
if (merger.Param().rec.tpc.minNClustersFinalTrack != -1 && nCl < (unsigned int)merger.Param().rec.tpc.minNClustersFinalTrack) {
6974
continue;
7075
}
76+
if (cutOnTrackdEdx && (tracksdEdx[i].dEdxMaxTPC < merger.Param().rec.tpc.minTrackdEdxMax || tracksdEdx[i].dEdxMaxTPC < tracksdEdx[i].dEdxTotTPC * merger.Param().rec.tpc.minTrackdEdxMax2Tot) && !(tracksdEdx[i].dEdxMaxTPC == 0 && CAMath::Abs(tracks[i].GetParam().GetDzDs()) > 0.03f)) {
77+
continue;
78+
}
7179
unsigned int myId = CAMath::AtomicAdd(&merger.Memory()->nO2Tracks, 1u);
7280
tmpData[i] = {nCl, CAMath::AtomicAdd(&merger.Memory()->nO2ClusRefs, nCl + (nCl + 1) / 2)};
7381
trackSort[myId] = {i, (merger.Param().par.earlyTpcTransform || tracks[i].CSide()) ? tracks[i].GetParam().GetTZOffset() : -tracks[i].GetParam().GetTZOffset()};

0 commit comments

Comments
 (0)