Skip to content

Commit feaede9

Browse files
committed
GPU TPC: Use qMax and <qMax> in cluster error estimation
1 parent 54663de commit feaede9

16 files changed

+65
-57
lines changed

Detectors/Align/src/AlignableDetectorTPC.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ int AlignableDetectorTPC::processPoints(GIndex gid, int npntCut, bool inv)
214214

215215
gpu::gpustd::array<float, 2> p = {y, z};
216216
gpu::gpustd::array<float, 3> c = {0, 0, 0};
217-
mController->getTPCParam()->GetClusterErrors2(sector, currentRow, z, trkParam.getSnp(), trkParam.getTgl(), -1.f, 0.f, c[0], c[2]); // TODO: Note this disables occupancy / charge components of the error estimation
217+
mController->getTPCParam()->GetClusterErrors2(sector, currentRow, z, trkParam.getSnp(), trkParam.getTgl(), -1.f, 0.f, 0.f, c[0], c[2]); // TODO: Note this disables occupancy / charge components of the error estimation
218218
if (sysE[0] > 0.f) {
219219
c[0] += sysE[0] * sysE[0];
220220
}

GPU/GPUTracking/Base/GPUParam.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ struct GPUParam : public internal::GPUParam_t<GPUSettingsRec, GPUSettingsParam>
9797
return 0.174533f + par.dAlpha * iSlice;
9898
}
9999
GPUd() float GetClusterErrorSeeding(int yz, int type, float z, float angle2) const;
100-
GPUd() void GetClusterErrorsSeeding2(char sector, int row, float z, float sinPhi, float DzDs, float time, float avgCharge, float& ErrY2, float& ErrZ2) const;
100+
GPUd() void GetClusterErrorsSeeding2(char sector, int row, float z, float sinPhi, float DzDs, float time, float avgCharge, float charge, float& ErrY2, float& ErrZ2) const;
101101
GPUd() float GetSystematicClusterErrorIFC2(float x, float y, float z, bool sideC) const;
102102

103-
GPUd() float GetClusterError2(int yz, int type, float z, float angle2, float scaledMult, float scaledAvgCharge) const;
104-
GPUd() void GetClusterErrors2(char sector, int row, float z, float sinPhi, float DzDs, float time, float avgCharge, float& ErrY2, float& ErrZ2) const;
103+
GPUd() float GetClusterError2(int yz, int type, float z, float angle2, float scaledMult, float scaledAvgCharge, float scaledCharge) const;
104+
GPUd() void GetClusterErrors2(char sector, int row, float z, float sinPhi, float DzDs, float time, float avgCharge, float charge, float& ErrY2, float& ErrZ2) const;
105105
GPUd() void UpdateClusterError2ByState(short clusterState, float& ErrY2, float& ErrZ2) const;
106106
GPUd() float GetScaledMult(float time) const;
107107

GPU/GPUTracking/Base/GPUParam.inc

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ GPUdi() void MEM_LG(GPUParam)::Global2Slice(int iSlice, float X, float Y, float
4747
#ifdef GPUCA_TPC_GEOMETRY_O2
4848

4949
MEM_CLASS_PRE()
50-
GPUdi() void MEM_LG(GPUParam)::GetClusterErrorsSeeding2(char sector, int iRow, float z, float sinPhi, float DzDs, float time, float avgCharge, float& ErrY2, float& ErrZ2) const
50+
GPUdi() void MEM_LG(GPUParam)::GetClusterErrorsSeeding2(char sector, int iRow, float z, float sinPhi, float DzDs, float time, float avgCharge, float charge, float& ErrY2, float& ErrZ2) const
5151
{
52-
GetClusterErrors2(sector, iRow, z, sinPhi, DzDs, time, avgCharge, ErrY2, ErrZ2);
52+
GetClusterErrors2(sector, iRow, z, sinPhi, DzDs, time, avgCharge, charge, ErrY2, ErrZ2);
5353
}
5454

5555
MEM_CLASS_PRE()
56-
GPUdi() float MEM_LG(GPUParam)::GetClusterError2(int yz, int type, float z, float angle2, float scaledMult, float scaledAvgCharge) const
56+
GPUdi() float MEM_LG(GPUParam)::GetClusterError2(int yz, int type, float z, float angle2, float scaledMult, float scaledAvgCharge, float scaledCharge) const
5757
{
5858
MakeType(const float*) c = ParamErrors[yz][type];
5959
float v = c[0] + c[1] * angle2 + c[2] * z + c[3] * scaledMult;
@@ -109,7 +109,7 @@ GPUdi() float MEM_LG(GPUParam)::GetClusterErrorSeeding(int yz, int type, float z
109109
}
110110

111111
MEM_CLASS_PRE()
112-
GPUdi() void MEM_LG(GPUParam)::GetClusterErrorsSeeding2(char sector, int iRow, float z, float sinPhi, float DzDs, float time, float avgCharge, float& ErrY2, float& ErrZ2) const
112+
GPUdi() void MEM_LG(GPUParam)::GetClusterErrorsSeeding2(char sector, int iRow, float z, float sinPhi, float DzDs, float time, float avgCharge, float charge, float& ErrY2, float& ErrZ2) const
113113
{
114114
int rowType = tpcGeometry.GetROC(iRow);
115115
z = CAMath::Abs(tpcGeometry.TPCLength() - CAMath::Abs(z));
@@ -128,7 +128,7 @@ GPUdi() void MEM_LG(GPUParam)::GetClusterErrorsSeeding2(char sector, int iRow, f
128128
}
129129

130130
MEM_CLASS_PRE()
131-
GPUdi() float MEM_LG(GPUParam)::GetClusterError2(int yz, int type, float z, float angle2, float time, float avgCharge) const
131+
GPUdi() float MEM_LG(GPUParam)::GetClusterError2(int yz, int type, float z, float angle2, float time, float avgCharge, float charge) const
132132
{
133133
MakeType(const float*) c = ParamS0Par[yz][type];
134134
float v = c[0] + c[1] * z + c[2] * angle2 + c[3] * z * z + c[4] * angle2 * angle2 + c[5] * z * angle2;
@@ -150,23 +150,25 @@ GPUdi() float MEM_LG(GPUParam)::GetSystematicClusterErrorIFC2(float x, float y,
150150
#endif // !GPUCA_TPC_GEOMETRY_O2
151151

152152
MEM_CLASS_PRE()
153-
GPUdi() void MEM_LG(GPUParam)::GetClusterErrors2(char sector, int iRow, float z, float sinPhi, float DzDs, float time, float avgCharge, float& ErrY2, float& ErrZ2) const
153+
GPUdi() void MEM_LG(GPUParam)::GetClusterErrors2(char sector, int iRow, float z, float sinPhi, float DzDs, float time, float avgCharge, float charge, float& ErrY2, float& ErrZ2) const
154154
{
155155
// Calibrated cluster error from OCDB for Y and Z
156-
int rowType = tpcGeometry.GetROC(iRow);
156+
const int rowType = tpcGeometry.GetROC(iRow);
157157
z = CAMath::Abs(tpcGeometry.TPCLength() - CAMath::Abs(z));
158158
float s2 = sinPhi * sinPhi;
159159
if (s2 > 0.95f * 0.95f) {
160160
s2 = 0.95f * 0.95f;
161161
}
162-
float sec2 = 1.f / (1.f - s2);
163-
float angleY2 = s2 * sec2; // dy/dx
164-
float angleZ2 = DzDs * DzDs * sec2; // dz/dx
162+
const float sec2 = 1.f / (1.f - s2);
163+
const float angleY2 = s2 * sec2; // dy/dx
164+
const float angleZ2 = DzDs * DzDs * sec2; // dz/dx
165165

166-
float mult = time >= 0.f ? GetScaledMult(time) / tpcGeometry.Row2X(iRow) : 0.f;
166+
const float mult = time >= 0.f ? GetScaledMult(time) / tpcGeometry.Row2X(iRow) : 0.f;
167+
const float scaledAvgCharge = avgCharge * rec.tpc.clusterErrorChargeScaler;
168+
const float scaledCharge = charge * rec.tpc.clusterErrorChargeScaler;
167169

168-
ErrY2 = GetClusterError2(0, rowType, z, angleY2, mult, avgCharge);
169-
ErrZ2 = GetClusterError2(1, rowType, z, angleZ2, mult, avgCharge);
170+
ErrY2 = GetClusterError2(0, rowType, z, angleY2, mult, scaledAvgCharge, scaledCharge);
171+
ErrZ2 = GetClusterError2(1, rowType, z, angleZ2, mult, scaledAvgCharge, scaledCharge);
170172
}
171173

172174
MEM_CLASS_PRE()

GPU/GPUTracking/Definitions/GPUSettingsList.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ AddOptionRTC(clusterError2AdditionalY, float, 0.f, "", 0, "correction (additive)
4646
AddOptionRTC(clusterError2AdditionalZ, float, 0.f, "", 0, "correction (additive) for the squared cluster error during tracking")
4747
AddOptionRTC(clusterRejectChi2TolleranceY, float, 1.f, "", 0, "Multiplicative factor multiplied onto chi2 in Y direction for cluster rejection check during track fit")
4848
AddOptionRTC(clusterRejectChi2TolleranceZ, float, 1.f, "", 0, "Multiplicative factor multiplied onto chi2 in Z direction for cluster rejection check during track fit")
49-
AddOptionRTC(clusterErrorOccupancyScaler, float, 0.f, "", 0, "Scaling factor applied to occupancy histogram bin")
49+
AddOptionRTC(clusterErrorOccupancyScaler, float, 0.f, "", 0, "Scaling factor applied to occupancy histogram bin in cluster error estimation")
50+
AddOptionRTC(clusterErrorChargeScaler, float, 0.f, "", 0, "Scaling factor applied to cluster charge bin in cluster error estimation")
5051
AddOptionRTC(sysClusErrorNormIFCCE, float, 1.f, "", 0, "Systematic cluster error parameterization IFCCE clInner[0]")
5152
AddOptionRTC(sysClusErrorSlopeIFCCE, float, 1.f / 5.f, "", 0, "Systematic cluster error parameterization IFCCE clInner[1]")
5253
AddOptionRTC(sysClusErrorIFCCEZRegion, float, -5.f, "", 0, "Systematic cluster error parameterization IFCCE z Region")

GPU/GPUTracking/Merger/GPUTPCGMMerger.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ GPUd() int GPUTPCGMMerger::RefitSliceTrack(GPUTPCGMSliceTrack& sliceTrack, const
510510
return way == 0;
511511
}
512512
trk.ConstrainSinPhi();
513-
if (prop.Update(y, z, row, Param(), flags & GPUTPCGMMergedTrackHit::clustererAndSharedFlags, 0, nullptr, false, slice, -1.f, 0.f)) { // TODO: Use correct time / avgCharge
513+
if (prop.Update(y, z, row, Param(), flags & GPUTPCGMMergedTrackHit::clustererAndSharedFlags, 0, nullptr, false, slice, -1.f, 0.f, 0.f)) { // TODO: Use correct time / avgCharge
514514
return way == 0;
515515
}
516516
trk.ConstrainSinPhi();

GPU/GPUTracking/Merger/GPUTPCGMMerger.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ class GPUTPCGMMerger : public GPUProcessor
215215
std::vector<float> StreamerUncorrectedZY(int iSlice, int iRow, const GPUTPCGMTrackParam& track, const GPUTPCGMPropagator& prop) const;
216216

217217
void DebugStreamerUpdate(int iTrk, int ihit, float xx, float yy, float zz, const GPUTPCGMMergedTrackHit& cluster, const o2::tpc::ClusterNative& clusterNative, const GPUTPCGMTrackParam& track, const GPUTPCGMPropagator& prop, const gputpcgmmergertypes::InterpolationErrorHit& interpolation, char rejectChi2, bool refit, int retVal) const;
218-
static void DebugStreamerReject(float mAlpha, int iRow, float posY, float posZ, short clusterState, char rejectChi2, const gputpcgmmergertypes::InterpolationErrorHit& inter, bool refit, int retVal, float err2Y, float err2Z, const GPUTPCGMTrackParam& track, const GPUParam& param, float time, float avgCharge);
218+
static void DebugStreamerReject(float mAlpha, int iRow, float posY, float posZ, short clusterState, char rejectChi2, const gputpcgmmergertypes::InterpolationErrorHit& inter, bool refit, int retVal, float err2Y, float err2Z, const GPUTPCGMTrackParam& track, const GPUParam& param, float time, float avgCharge, float charge);
219219
#endif
220220

221221
GPUdi() int SliceTrackInfoFirst(int iSlice) const { return mSliceTrackInfoIndex[iSlice]; }

GPU/GPUTracking/Merger/GPUTPCGMMergerDump.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ void GPUTPCGMMerger::DebugStreamerUpdate(int iTrk, int ihit, float xx, float yy,
376376
#endif
377377
}
378378

379-
void GPUTPCGMMerger::DebugStreamerReject(float mAlpha, int iRow, float posY, float posZ, short clusterState, char rejectChi2, const gputpcgmmergertypes::InterpolationErrorHit& inter, bool refit, int retVal, float err2Y, float err2Z, const GPUTPCGMTrackParam& track, const GPUParam& param, float time, float avgCharge)
379+
void GPUTPCGMMerger::DebugStreamerReject(float mAlpha, int iRow, float posY, float posZ, short clusterState, char rejectChi2, const gputpcgmmergertypes::InterpolationErrorHit& inter, bool refit, int retVal, float err2Y, float err2Z, const GPUTPCGMTrackParam& track, const GPUParam& param, float time, float avgCharge, float charge)
380380
{
381381
#ifdef DEBUG_STREAMER
382382
float scaledMult = (time >= 0.f ? param.GetScaledMult(time) / param.tpcGeometry.Row2X(iRow) : 0.f);
@@ -395,6 +395,7 @@ void GPUTPCGMMerger::DebugStreamerReject(float mAlpha, int iRow, float posY, flo
395395
<< "track=" << track
396396
<< "scaledMultiplicity=" << scaledMult
397397
<< "avgCharge=" << avgCharge
398+
<< "charge=" << charge
398399
<< "\n";
399400
#endif
400401
}

GPU/GPUTracking/Merger/GPUTPCGMPropagator.cxx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -598,31 +598,31 @@ GPUd() int GPUTPCGMPropagator::GetPropagatedYZ(float x, float& GPUrestrict() pro
598598
return 0;
599599
}
600600

601-
GPUd() void GPUTPCGMPropagator::GetErr2(float& GPUrestrict() err2Y, float& GPUrestrict() err2Z, const GPUParam& GPUrestrict() param, float posZ, int iRow, short clusterState, char sector, float time, float avgCharge) const
601+
GPUd() void GPUTPCGMPropagator::GetErr2(float& GPUrestrict() err2Y, float& GPUrestrict() err2Z, const GPUParam& GPUrestrict() param, float posZ, int iRow, short clusterState, char sector, float time, float avgCharge, float charge) const
602602
{
603-
GetErr2(err2Y, err2Z, param, mT0.GetSinPhi(), mT0.DzDs(), posZ, mT->GetX(), mT->GetY(), iRow, clusterState, sector, time, avgCharge, mSeedingErrors);
603+
GetErr2(err2Y, err2Z, param, mT0.GetSinPhi(), mT0.DzDs(), posZ, mT->GetX(), mT->GetY(), iRow, clusterState, sector, time, avgCharge, charge, mSeedingErrors);
604604
}
605605

606-
GPUd() void GPUTPCGMPropagator::GetErr2(float& GPUrestrict() err2Y, float& GPUrestrict() err2Z, const GPUParam& GPUrestrict() param, float snp, float tgl, float posZ, float x, float y, int iRow, short clusterState, char sector, float time, float avgCharge, bool seedingErrors)
606+
GPUd() void GPUTPCGMPropagator::GetErr2(float& GPUrestrict() err2Y, float& GPUrestrict() err2Z, const GPUParam& GPUrestrict() param, float snp, float tgl, float posZ, float x, float y, int iRow, short clusterState, char sector, float time, float avgCharge, float charge, bool seedingErrors)
607607
{
608608
#ifndef GPUCA_TPC_GEOMETRY_O2
609609
if (seedingErrors) {
610-
param.GetClusterErrorsSeeding2(sector, iRow, posZ, snp, tgl, time, avgCharge, err2Y, err2Z);
610+
param.GetClusterErrorsSeeding2(sector, iRow, posZ, snp, tgl, time, avgCharge, charge, err2Y, err2Z);
611611
} else
612612
#endif
613613
{
614-
param.GetClusterErrors2(sector, iRow, posZ, snp, tgl, time, avgCharge, err2Y, err2Z);
614+
param.GetClusterErrors2(sector, iRow, posZ, snp, tgl, time, avgCharge, charge, err2Y, err2Z);
615615
}
616616
param.UpdateClusterError2ByState(clusterState, err2Y, err2Z);
617617
float statErr2 = param.GetSystematicClusterErrorIFC2(x, y, posZ, sector >= (GPUCA_NSLICES / 2));
618618
err2Y += statErr2;
619619
err2Z += statErr2;
620620
}
621621

622-
GPUd() float GPUTPCGMPropagator::PredictChi2(float posY, float posZ, int iRow, const GPUParam& GPUrestrict() param, short clusterState, char sector, float time, float avgCharge) const
622+
GPUd() float GPUTPCGMPropagator::PredictChi2(float posY, float posZ, int iRow, const GPUParam& GPUrestrict() param, short clusterState, char sector, float time, float avgCharge, float charge) const
623623
{
624624
float err2Y, err2Z;
625-
GetErr2(err2Y, err2Z, param, posZ, iRow, clusterState, sector, time, avgCharge);
625+
GetErr2(err2Y, err2Z, param, posZ, iRow, clusterState, sector, time, avgCharge, charge);
626626
return PredictChi2(posY, posZ, err2Y, err2Z);
627627
}
628628

@@ -653,18 +653,18 @@ GPUd() float GPUTPCGMPropagator::PredictChi2(float posY, float posZ, float err2Y
653653
}
654654
}
655655

656-
GPUd() int GPUTPCGMPropagator::Update(float posY, float posZ, int iRow, const GPUParam& GPUrestrict() param, short clusterState, char rejectChi2, gputpcgmmergertypes::InterpolationErrorHit* inter, bool refit, char sector, float time, float avgCharge GPUCA_DEBUG_STREAMER_CHECK(, int iTrk))
656+
GPUd() int GPUTPCGMPropagator::Update(float posY, float posZ, int iRow, const GPUParam& GPUrestrict() param, short clusterState, char rejectChi2, gputpcgmmergertypes::InterpolationErrorHit* inter, bool refit, char sector, float time, float avgCharge, float charge GPUCA_DEBUG_STREAMER_CHECK(, int iTrk))
657657
{
658658
float err2Y, err2Z;
659-
GetErr2(err2Y, err2Z, param, posZ, iRow, clusterState, sector, time, avgCharge);
659+
GetErr2(err2Y, err2Z, param, posZ, iRow, clusterState, sector, time, avgCharge, charge);
660660

661661
if (rejectChi2 >= 2) {
662662
if (rejectChi2 == 3 && inter->errorY < (GPUCA_MERGER_INTERPOLATION_ERROR_TYPE)0) {
663663
rejectChi2 = 1;
664664
} else {
665665
int retVal = InterpolateReject(param, posY, posZ, clusterState, rejectChi2, inter, err2Y, err2Z);
666666
GPUCA_DEBUG_STREAMER_CHECK(if (o2::utils::DebugStreamer::checkStream(o2::utils::StreamFlags::streamRejectCluster, iTrk)) {
667-
GPUTPCGMMerger::DebugStreamerReject(mAlpha, iRow, posY, posZ, clusterState, rejectChi2, *inter, refit, retVal, err2Y, err2Z, *mT, param, time, avgCharge);
667+
GPUTPCGMMerger::DebugStreamerReject(mAlpha, iRow, posY, posZ, clusterState, rejectChi2, *inter, refit, retVal, err2Y, err2Z, *mT, param, time, avgCharge, charge);
668668
});
669669
if (retVal) {
670670
return retVal;

GPU/GPUTracking/Merger/GPUTPCGMPropagator.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ class GPUTPCGMPropagator
9898

9999
GPUd() int PropagateToXAlphaBz(float posX, float posAlpha, bool inFlyDirection);
100100

101-
GPUd() int Update(float posY, float posZ, int iRow, const GPUParam& param, short clusterState, char rejectChi2, gputpcgmmergertypes::InterpolationErrorHit* inter, bool refit, char sideC, float time, float avgCharge GPUCA_DEBUG_STREAMER_CHECK(, int iTrk = 0));
101+
GPUd() int Update(float posY, float posZ, int iRow, const GPUParam& param, short clusterState, char rejectChi2, gputpcgmmergertypes::InterpolationErrorHit* inter, bool refit, char sideC, float time, float avgCharge, float charge GPUCA_DEBUG_STREAMER_CHECK(, int iTrk = 0));
102102
GPUd() int Update(float posY, float posZ, short clusterState, bool rejectChi2, float err2Y, float err2Z, const GPUParam* param = nullptr);
103103
GPUd() int InterpolateReject(const GPUParam& param, float posY, float posZ, short clusterState, char rejectChi2, gputpcgmmergertypes::InterpolationErrorHit* inter, float err2Y, float err2Z);
104-
GPUd() float PredictChi2(float posY, float posZ, int iRow, const GPUParam& param, short clusterState, char sideC, float time, float avgCharge) const;
104+
GPUd() float PredictChi2(float posY, float posZ, int iRow, const GPUParam& param, short clusterState, char sideC, float time, float avgCharge, float charge) const;
105105
GPUd() float PredictChi2(float posY, float posZ, float err2Y, float err2Z) const;
106106
GPUd() int RejectCluster(float chiY, float chiZ, unsigned char clusterState)
107107
{
@@ -127,8 +127,8 @@ class GPUTPCGMPropagator
127127
/// Bx,By,Bz in local coordinates rotated to Alpha
128128
GPUd() void GetBxByBz(float Alpha, float X, float Y, float Z, float B[3]) const;
129129

130-
GPUd() void GetErr2(float& err2Y, float& err2Z, const GPUParam& param, float posZ, int iRow, short clusterState, char sector, float time, float avgCharge) const;
131-
GPUd() static void GetErr2(float& err2Y, float& err2Z, const GPUParam& param, float snp, float tgl, float posZ, float x, float y, int iRow, short clusterState, char sector, float time, float avgCharge, bool seedingErrors);
130+
GPUd() void GetErr2(float& err2Y, float& err2Z, const GPUParam& param, float posZ, int iRow, short clusterState, char sector, float time, float avgCharge, float charge) const;
131+
GPUd() static void GetErr2(float& err2Y, float& err2Z, const GPUParam& param, float snp, float tgl, float posZ, float x, float y, int iRow, short clusterState, char sector, float time, float avgCharge, float charge, bool seedingErrors);
132132

133133
GPUd() float GetAlpha() const { return mAlpha; }
134134
GPUd() void SetAlpha(float v) { mAlpha = v; }

GPU/GPUTracking/Merger/GPUTPCGMSliceTrack.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,10 @@ GPUd() bool GPUTPCGMSliceTrack::FilterErrors(const GPUTPCGMMerger* merger, int i
127127
float kdx205 = 2.f + kdx * kdx * 0.5f;
128128

129129
{
130-
merger->Param().GetClusterErrors2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, mParam.mC0, mParam.mC2); // TODO: provide correct time and row
130+
merger->Param().GetClusterErrors2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, 0.f, mParam.mC0, mParam.mC2); // TODO: provide correct time and row
131131
#ifndef GPUCA_TPC_GEOMETRY_O2
132132
float C0a, C2a;
133-
merger->Param().GetClusterErrorsSeeding2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, C0a, C2a);
133+
merger->Param().GetClusterErrorsSeeding2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, 0.f, C0a, C2a);
134134
if (C0a > mParam.mC0) {
135135
mParam.mC0 = C0a;
136136
}
@@ -187,10 +187,10 @@ GPUd() bool GPUTPCGMSliceTrack::FilterErrors(const GPUTPCGMMerger* merger, int i
187187
float dz = dS * mParam.mDzDs;
188188
float ex1i = 1.f / ex1;
189189
{
190-
merger->Param().GetClusterErrors2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, err2Y, err2Z); // TODO: Provide correct time / row
190+
merger->Param().GetClusterErrors2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, 0.f, err2Y, err2Z); // TODO: Provide correct time / row
191191
#ifndef GPUCA_TPC_GEOMETRY_O2
192192
float C0a, C2a;
193-
merger->Param().GetClusterErrorsSeeding2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, C0a, C2a);
193+
merger->Param().GetClusterErrorsSeeding2(iSlice, 0, mParam.mZ, mParam.mSinPhi, mParam.mDzDs, -1.f, 0.f, 0.f, C0a, C2a);
194194
if (C0a > err2Y) {
195195
err2Y = C0a;
196196
}

0 commit comments

Comments
 (0)