Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content

Commit b8e9986

Browse files
committed
B Field strength is calib parameter and must not be run-time compiled as constexpr
1 parent 753bf2e commit b8e9986

14 files changed

Lines changed: 57 additions & 56 deletions

GPU/GPUTracking/Base/GPUParam.cxx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ void GPUParam::SetDefaults(float solenoidBz)
8282
}
8383

8484
par.dAlpha = 0.349066f;
85-
par.bzkG = solenoidBz;
86-
par.constBz = solenoidBz * GPUCA_NAMESPACE::gpu::gpu_common_constants::kCLight;
85+
bzkG = solenoidBz;
86+
constBz = bzkG * GPUCA_NAMESPACE::gpu::gpu_common_constants::kCLight;
8787
par.dodEdx = 0;
8888

8989
constexpr float plusZmin = 0.0529937;
@@ -117,7 +117,7 @@ void GPUParam::SetDefaults(float solenoidBz)
117117
par.earlyTpcTransform = false;
118118

119119
polynomialField.Reset(); // set very wrong initial value in order to see if the field was not properly initialised
120-
GPUTPCGMPolynomialFieldManager::GetPolynomialField(par.bzkG, polynomialField);
120+
GPUTPCGMPolynomialFieldManager::GetPolynomialField(bzkG, polynomialField);
121121
}
122122

123123
void GPUParam::UpdateGRPSettings(const GPUSettingsGRP* g, const GPUSettingsProcessing* p)
@@ -129,13 +129,13 @@ void GPUParam::UpdateGRPSettings(const GPUSettingsGRP* g, const GPUSettingsProce
129129
par.continuousMaxTimeBin = g->continuousMaxTimeBin == -1 ? GPUSettings::TPC_MAX_TF_TIME_BIN : g->continuousMaxTimeBin;
130130
polynomialField.Reset();
131131
if (par.assumeConstantBz) {
132-
GPUTPCGMPolynomialFieldManager::GetPolynomialField(GPUTPCGMPolynomialFieldManager::kUniform, par.bzkG, polynomialField);
132+
GPUTPCGMPolynomialFieldManager::GetPolynomialField(GPUTPCGMPolynomialFieldManager::kUniform, bzkG, polynomialField);
133133
} else {
134-
GPUTPCGMPolynomialFieldManager::GetPolynomialField(par.bzkG, polynomialField);
134+
GPUTPCGMPolynomialFieldManager::GetPolynomialField(bzkG, polynomialField);
135135
}
136136
}
137137
par.earlyTpcTransform = rec.tpc.forceEarlyTransform == -1 ? (!par.continuousTracking) : rec.tpc.forceEarlyTransform;
138-
par.qptB5Scaler = CAMath::Abs(par.bzkG) > 0.1 ? CAMath::Abs(par.bzkG) / 5.006680f : 1.f;
138+
qptB5Scaler = CAMath::Abs(bzkG) > 0.1 ? CAMath::Abs(bzkG) / 5.006680f : 1.f;
139139
if (p) {
140140
par.debugLevel = p->debugLevel;
141141
par.resetTimers = p->resetTimers;

GPU/GPUTracking/Base/GPUParam.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ struct GPUParam_t {
5353
T rec;
5454
S par;
5555

56+
float bzkG;
57+
float constBz;
58+
float qptB5Scaler;
59+
5660
GPUTPCGeometry tpcGeometry; // TPC Geometry
5761
GPUTPCGMPolynomialField polynomialField; // Polynomial approx. of magnetic field for TPC GM
5862

GPU/GPUTracking/DataCompression/GPUTPCCompressionKernels.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ GPUdii() void GPUTPCCompressionKernels::Thread<GPUTPCCompressionKernels::step0at
4040
if (!trk.OK()) {
4141
continue;
4242
}
43-
bool rejectTrk = CAMath::Abs(trk.GetParam().GetQPt() * processors.param.par.qptB5Scaler) > processors.param.rec.tpc.rejectQPtB5 || trk.MergedLooper();
43+
bool rejectTrk = CAMath::Abs(trk.GetParam().GetQPt() * processors.param.qptB5Scaler) > processors.param.rec.tpc.rejectQPtB5 || trk.MergedLooper();
4444
unsigned int nClustersStored = 0;
4545
CompressedClustersPtrs& GPUrestrict() c = compressor.mPtrs;
4646
unsigned int lastRow = 0, lastSlice = 0; // BUG: These should be unsigned char, but then CUDA breaks
@@ -222,7 +222,7 @@ GPUdii() void GPUTPCCompressionKernels::Thread<GPUTPCCompressionKernels::step1un
222222
}
223223
int id = attach & gputpcgmmergertypes::attachTrackMask;
224224
auto& trk = ioPtrs.mergedTracks[id];
225-
if (CAMath::Abs(trk.GetParam().GetQPt() * processors.param.par.qptB5Scaler) > processors.param.rec.tpc.rejectQPtB5 || trk.MergedLooper()) {
225+
if (CAMath::Abs(trk.GetParam().GetQPt() * processors.param.qptB5Scaler) > processors.param.rec.tpc.rejectQPtB5 || trk.MergedLooper()) {
226226
break;
227227
}
228228
}

GPU/GPUTracking/DataCompression/GPUTPCCompressionTrackModel.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ GPUd() int GPUTPCCompressionTrackModel::Propagate(float x, float alpha)
9191
if (alpha != mAlpha && !mTrk.Rotate(alpha, t0, GPUCA_MAX_SIN_PHI)) {
9292
return 2;
9393
}
94-
int retVal = !mTrk.TransportToX(x, t0, mParam->par.constBz, GPUCA_MAX_SIN_PHI);
94+
int retVal = !mTrk.TransportToX(x, t0, mParam->constBz, GPUCA_MAX_SIN_PHI);
9595
// GPUInfo("Propagated to: x %f y %f z %f alpha %f qPt %f", x, mTrk.Y(), mTrk.Z(), alpha, mTrk.QPt());
9696
return retVal;
9797
}
@@ -127,7 +127,7 @@ GPUd() void GPUTPCCompressionTrackModel::Init(float x, float y, float z, float a
127127
mP[4] = (qPt - 127.f) * (20.f / 127.f);
128128
resetCovariance();
129129
mNDF = -5;
130-
mBz = param.par.constBz;
130+
mBz = param.constBz;
131131
float pti = CAMath::Abs(mP[4]);
132132
if (pti < 1.e-4f) {
133133
pti = 1.e-4f; // set 10.000 GeV momentum for straight track

GPU/GPUTracking/Definitions/GPUSettingsList.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -449,8 +449,6 @@ EndConfig()
449449
// Derrived parameters used in GPUParam
450450
BeginHiddenConfig(GPUSettingsParam, param)
451451
AddVariableRTC(dAlpha, float, 0.f) // angular size
452-
AddVariableRTC(bzkG, float, 0.f) // constant magnetic field value in kG
453-
AddVariableRTC(constBz, float, 0.f) // constant magnetic field value in kG*clight
454452
AddVariableRTC(assumeConstantBz, char, 0) // Assume a constant magnetic field
455453
AddVariableRTC(toyMCEventsFlag, char, 0) // events were build with home-made event generator
456454
AddVariableRTC(continuousTracking, char, 0) // Continuous tracking, estimate bz and errors for abs(z) = 125cm during seeding
@@ -459,7 +457,6 @@ AddVariableRTC(dodEdx, char, 0) // Do dEdx computation
459457
AddVariableRTC(earlyTpcTransform, char, 0) // do Early TPC transformation
460458
AddVariableRTC(debugLevel, char, 0) // Debug level
461459
AddVariableRTC(continuousMaxTimeBin, int, 0) // Max time bin for continuous tracking
462-
AddVariableRTC(qptB5Scaler, float, 1.f) // Scaling factor for QPt to B=0.5T
463460
EndConfig()
464461

465462
EndNamespace() // gpu

GPU/GPUTracking/Merger/GPUTPCGMMerger.cxx

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ GPUd() void GPUTPCGMMerger::MakeBorderTracks(int nBlocks, int nThreads, int iBlo
648648
//* prepare slice tracks for merging with next/previous/same sector
649649
//* each track transported to the border line
650650

651-
float fieldBz = Param().par.constBz;
651+
float fieldBz = Param().constBz;
652652

653653
float dAlpha = Param().par.dAlpha / 2;
654654
float x0 = 0;
@@ -680,7 +680,7 @@ GPUd() void GPUTPCGMMerger::MakeBorderTracks(int nBlocks, int nThreads, int iBlo
680680
continue;
681681
}
682682
if (useOrigTrackParam) { // TODO: Check how far this makes sense with slice track refit
683-
if (CAMath::Abs(track->QPt()) * Param().par.qptB5Scaler < GPUCA_MERGER_LOOPER_QPTB5_LIMIT) {
683+
if (CAMath::Abs(track->QPt()) * Param().qptB5Scaler < GPUCA_MERGER_LOOPER_QPTB5_LIMIT) {
684684
continue;
685685
}
686686
const GPUTPCGMSliceTrack* trackMin = track;
@@ -698,7 +698,7 @@ GPUd() void GPUTPCGMMerger::MakeBorderTracks(int nBlocks, int nThreads, int iBlo
698698
trackTmp.Set(this, trackMin->OrigTrack(), trackMin->Alpha(), trackMin->Slice());
699699
}
700700
} else {
701-
if (CAMath::Abs(track->QPt()) * Param().par.qptB5Scaler < GPUCA_MERGER_HORIZONTAL_DOUBLE_QPTB5_LIMIT) {
701+
if (CAMath::Abs(track->QPt()) * Param().qptB5Scaler < GPUCA_MERGER_HORIZONTAL_DOUBLE_QPTB5_LIMIT) {
702702
if (iBorder == 0 && track->NextNeighbour() >= 0) {
703703
continue;
704704
}
@@ -736,7 +736,7 @@ GPUd() void GPUTPCGMMerger::MergeBorderTracks<0>(int nBlocks, int nThreads, int
736736
for (int itr = iBlock * nThreads + iThread; itr < N1; itr += nThreads * nBlocks) {
737737
GPUTPCGMBorderTrack& b = B1[itr];
738738
float d = CAMath::Max(0.5f, 3.5f * CAMath::Sqrt(b.Cov()[1]));
739-
if (CAMath::Abs(b.Par()[4]) * Param().par.qptB5Scaler >= 20) {
739+
if (CAMath::Abs(b.Par()[4]) * Param().qptB5Scaler >= 20) {
740740
d *= 2;
741741
} else if (d > 3) {
742742
d = 3;
@@ -756,7 +756,7 @@ GPUd() void GPUTPCGMMerger::MergeBorderTracks<0>(int nBlocks, int nThreads, int
756756
for (int itr = iBlock * nThreads + iThread; itr < N2; itr += nThreads * nBlocks) {
757757
GPUTPCGMBorderTrack& b = B2[itr];
758758
float d = CAMath::Max(0.5f, 3.5f * CAMath::Sqrt(b.Cov()[1]));
759-
if (CAMath::Abs(b.Par()[4]) * Param().par.qptB5Scaler >= 20) {
759+
if (CAMath::Abs(b.Par()[4]) * Param().qptB5Scaler >= 20) {
760760
d *= 2;
761761
} else if (d > 3) {
762762
d = 3;
@@ -908,15 +908,15 @@ GPUd() void GPUTPCGMMerger::MergeBorderTracks<2>(int nBlocks, int nThreads, int
908908
if (!b1.CheckChi2QPt(b2, factor2k)) {
909909
CADEBUG2(continue, printf("!QPt\n"));
910910
}
911-
float fys = CAMath::Abs(b1.Par()[4]) * Param().par.qptB5Scaler < 20 ? factor2ys : (2. * factor2ys);
912-
float fzt = CAMath::Abs(b1.Par()[4]) * Param().par.qptB5Scaler < 20 ? factor2zt : (2. * factor2zt);
911+
float fys = CAMath::Abs(b1.Par()[4]) * Param().qptB5Scaler < 20 ? factor2ys : (2. * factor2ys);
912+
float fzt = CAMath::Abs(b1.Par()[4]) * Param().qptB5Scaler < 20 ? factor2zt : (2. * factor2zt);
913913
if (!b1.CheckChi2YS(b2, fys)) {
914914
CADEBUG2(continue, printf("!YS\n"));
915915
}
916916
if (!b1.CheckChi2ZT(b2, fzt)) {
917917
CADEBUG2(continue, printf("!ZT\n"));
918918
}
919-
if (CAMath::Abs(b1.Par()[4]) * Param().par.qptB5Scaler < 20) {
919+
if (CAMath::Abs(b1.Par()[4]) * Param().qptB5Scaler < 20) {
920920
if (b2.NClusters() < minNPartHits) {
921921
CADEBUG2(continue, printf("!NCl2\n"));
922922
}
@@ -991,7 +991,7 @@ GPUd() void GPUTPCGMMerger::MergeWithinSlicesPrepare(int nBlocks, int nThreads,
991991
int iSlice = track.Slice();
992992
GPUTPCGMBorderTrack b;
993993
;
994-
if (track.TransportToX(this, x0, Param().par.constBz, b, maxSin)) {
994+
if (track.TransportToX(this, x0, Param().constBz, b, maxSin)) {
995995
b.SetTrackID(itr);
996996
CADEBUG(
997997
printf("WITHIN SLICE %d Track %d - ", iSlice, itr); for (int i = 0; i < 5; i++) { printf("%8.3f ", b.Par()[i]); } printf(" - "); for (int i = 0; i < 5; i++) { printf("%8.3f ", b.Cov()[i]); } printf("\n"));
@@ -1177,7 +1177,7 @@ GPUd() void GPUTPCGMMerger::ResolveMergeSlices(GPUResolveSharedMemory& smem, int
11771177
GPUTPCGMSliceTrack* track1Base = track1;
11781178
GPUTPCGMSliceTrack* track2Base = track2;
11791179

1180-
bool sameSegment = CAMath::Abs(track1->NClusters() > track2->NClusters() ? track1->QPt() : track2->QPt()) * Param().par.qptB5Scaler < 2 || track1->QPt() * track2->QPt() > 0;
1180+
bool sameSegment = CAMath::Abs(track1->NClusters() > track2->NClusters() ? track1->QPt() : track2->QPt()) * Param().qptB5Scaler < 2 || track1->QPt() * track2->QPt() > 0;
11811181
// GPUInfo("\nMerge %d with %d - same segment %d", itr, itr2, (int) sameSegment);
11821182
// PrintMergeGraph(track1, std::cout);
11831183
// PrintMergeGraph(track2, std::cout);
@@ -1311,7 +1311,7 @@ GPUd() void GPUTPCGMMerger::MergeCEFill(const GPUTPCGMSliceTrack* track, const G
13111311
}
13121312

13131313
#ifdef GPUCA_MERGER_CE_ROWLIMIT
1314-
if (CAMath::Abs(track->QPt()) * Param().par.qptB5Scaler < 0.3 && (cls.row < GPUCA_MERGER_CE_ROWLIMIT || cls.row >= GPUCA_ROW_COUNT - GPUCA_MERGER_CE_ROWLIMIT)) {
1314+
if (CAMath::Abs(track->QPt()) * Param().qptB5Scaler < 0.3 && (cls.row < GPUCA_MERGER_CE_ROWLIMIT || cls.row >= GPUCA_ROW_COUNT - GPUCA_MERGER_CE_ROWLIMIT)) {
13151315
return;
13161316
}
13171317
#endif
@@ -1332,7 +1332,7 @@ GPUd() void GPUTPCGMMerger::MergeCEFill(const GPUTPCGMSliceTrack* track, const G
13321332
for (int attempt = 0; attempt < 2; attempt++) {
13331333
GPUTPCGMBorderTrack b;
13341334
const float x0 = Param().tpcGeometry.Row2X(attempt == 0 ? 63 : cls.row);
1335-
if (track->TransportToX(this, x0, Param().par.constBz, b, GPUCA_MAX_SIN_PHI_LOW)) {
1335+
if (track->TransportToX(this, x0, Param().constBz, b, GPUCA_MAX_SIN_PHI_LOW)) {
13361336
b.SetTrackID(itr);
13371337
b.SetNClusters(mOutputTracks[itr].NClusters());
13381338
if (CAMath::Abs(b.Cov()[4]) >= 0.5) {
@@ -1364,7 +1364,7 @@ GPUd() void GPUTPCGMMerger::MergeCE(int nBlocks, int nThreads, int iBlock, int i
13641364
if (!trk[1]->OK() || trk[1]->CCE()) {
13651365
continue;
13661366
}
1367-
bool looper = trk[0]->Looper() || trk[1]->Looper() || (trk[0]->GetParam().GetQPt() * Param().par.qptB5Scaler > 1 && trk[0]->GetParam().GetQPt() * trk[1]->GetParam().GetQPt() < 0);
1367+
bool looper = trk[0]->Looper() || trk[1]->Looper() || (trk[0]->GetParam().GetQPt() * Param().qptB5Scaler > 1 && trk[0]->GetParam().GetQPt() * trk[1]->GetParam().GetQPt() < 0);
13681368
if (!looper && trk[0]->GetParam().GetPar(3) * trk[1]->GetParam().GetPar(3) < 0) {
13691369
continue;
13701370
}
@@ -1603,7 +1603,7 @@ GPUd() void GPUTPCGMMerger::CollectMergedTracks(int nBlocks, int nThreads, int i
16031603
}
16041604
nHits += nTrackHits;
16051605
}
1606-
if (nHits < GPUCA_TRACKLET_SELECTOR_MIN_HITS_B5(track.QPt() * Param().par.qptB5Scaler)) {
1606+
if (nHits < GPUCA_TRACKLET_SELECTOR_MIN_HITS_B5(track.QPt() * Param().qptB5Scaler)) {
16071607
continue;
16081608
}
16091609

@@ -1782,7 +1782,7 @@ GPUd() void GPUTPCGMMerger::CollectMergedTracks(int nBlocks, int nThreads, int i
17821782

17831783
GPUTPCGMBorderTrack b;
17841784
const float toX = Param().par.earlyTpcTransform ? clXYZ[0].x : Param().tpcGeometry.Row2X(cl[0].row);
1785-
if (p2.TransportToX(this, toX, Param().par.constBz, b, GPUCA_MAX_SIN_PHI, false)) {
1785+
if (p2.TransportToX(this, toX, Param().constBz, b, GPUCA_MAX_SIN_PHI, false)) {
17861786
p1.X() = toX;
17871787
p1.Y() = b.Par()[0];
17881788
p1.Z() = b.Par()[1];
@@ -2013,7 +2013,7 @@ GPUd() void GPUTPCGMMerger::MergeLoopersInit(int nBlocks, int nThreads, int iBlo
20132013
const auto& trk = mOutputTracks[i];
20142014
const auto& p = trk.GetParam();
20152015
const float qptabs = CAMath::Abs(p.GetQPt());
2016-
if (trk.NClusters() && qptabs * Param().par.qptB5Scaler > 5.f && qptabs * Param().par.qptB5Scaler <= lowPtThresh) {
2016+
if (trk.NClusters() && qptabs * Param().qptB5Scaler > 5.f && qptabs * Param().qptB5Scaler <= lowPtThresh) {
20172017
const int slice = mClusters[trk.FirstClusterRef() + trk.NClusters() - 1].slice;
20182018
const float refz = p.GetZ() + (Param().par.earlyTpcTransform ? p.GetTZOffset() : GetConstantMem()->calibObjects.fastTransform->convVertexTimeToZOffset(slice, p.GetTZOffset(), Param().par.continuousMaxTimeBin)) + (trk.CSide() ? -100 : 100);
20192019
float sinA, cosA;
@@ -2175,7 +2175,7 @@ GPUd() void GPUTPCGMMerger::MergeLoopersMain(int nBlocks, int nThreads, int iBlo
21752175
#endif
21762176
if (EQ) {
21772177
mOutputTracks[params[j].id].SetMergedLooper(true);
2178-
if (CAMath::Abs(param2.GetQPt() * Param().par.qptB5Scaler) >= Param().rec.tpc.rejectQPtB5) {
2178+
if (CAMath::Abs(param2.GetQPt() * Param().qptB5Scaler) >= Param().rec.tpc.rejectQPtB5) {
21792179
mOutputTracks[params[i].id].SetMergedLooper(true);
21802180
}
21812181
}

GPU/GPUTracking/Merger/GPUTPCGMO2Output.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ GPUdii() void GPUTPCGMO2Output::Thread<GPUTPCGMO2Output::prepare>(int nBlocks, i
5353
if (nCl == 0) {
5454
continue;
5555
}
56-
if (merger.Param().rec.tpc.dropSecondaryLegsInOutput && nCl + 2 < GPUCA_TRACKLET_SELECTOR_MIN_HITS_B5(tracks[i].GetParam().GetQPt() * merger.Param().par.qptB5Scaler)) { // Give 2 hits tolerance in the primary leg, compared to the full fit of the looper
56+
if (merger.Param().rec.tpc.dropSecondaryLegsInOutput && nCl + 2 < GPUCA_TRACKLET_SELECTOR_MIN_HITS_B5(tracks[i].GetParam().GetQPt() * merger.Param().qptB5Scaler)) { // Give 2 hits tolerance in the primary leg, compared to the full fit of the looper
5757
continue;
5858
}
5959
unsigned int myId = CAMath::AtomicAdd(&merger.Memory()->nO2Tracks, 1u);

GPU/GPUTracking/Merger/GPUTPCGMSliceTrack.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ GPUd() bool GPUTPCGMSliceTrack::FilterErrors(const GPUTPCGMMerger* merger, int i
118118

119119
const int N = 3;
120120

121-
float bz = -merger->Param().par.constBz;
121+
float bz = -merger->Param().constBz;
122122

123123
float k = mParam.mQPt * bz;
124124
float dx = (1.f / N) * (lastX - mParam.mX);

GPU/GPUTracking/Merger/GPUTPCGMTrackParam.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int iT
314314
ihitStart = ihit;
315315
float dy = mP[0] - prop.Model().Y();
316316
float dz = mP[1] - prop.Model().Z();
317-
if (CAMath::Abs(mP[4]) * merger->Param().par.qptB5Scaler > 10 && --resetT0 <= 0 && CAMath::Abs(mP[2]) < 0.15f && dy * dy + dz * dz > 1) {
317+
if (CAMath::Abs(mP[4]) * merger->Param().qptB5Scaler > 10 && --resetT0 <= 0 && CAMath::Abs(mP[2]) < 0.15f && dy * dy + dz * dz > 1) {
318318
CADEBUG(printf("Reinit linearization\n"));
319319
prop.SetTrack(this, prop.GetAlpha());
320320
}
@@ -352,7 +352,7 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger* GPUrestrict() merger, int iT
352352
}
353353
ConstrainSinPhi();
354354

355-
if (!(N + NTolerated >= GPUCA_TRACKLET_SELECTOR_MIN_HITS_B5(mP[4] * merger->Param().par.qptB5Scaler) && 2 * NTolerated <= CAMath::Max(10, N) && CheckNumericalQuality(covYYUpd))) {
355+
if (!(N + NTolerated >= GPUCA_TRACKLET_SELECTOR_MIN_HITS_B5(mP[4] * merger->Param().qptB5Scaler) && 2 * NTolerated <= CAMath::Max(10, N) && CheckNumericalQuality(covYYUpd))) {
356356
return (false); // TODO: NTolerated should never become that large, check what is going wrong!
357357
}
358358
// TODO: we have looping tracks here with 0 accepted clusters in the primary leg. In that case we should refit the track using only the primary leg.

GPU/GPUTracking/SliceTracker/GPUTPCGlobalTracking.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ GPUd() int GPUTPCGlobalTracking::PerformGlobalTrackingRun(GPUTPCTracker& tracker
5151
GPUTPCTrackLinearisation t0(tParam);
5252
do {
5353
rowIndex += direction;
54-
if (!tParam.TransportToX(tracker.Row(rowIndex).X(), t0, tracker.Param().par.constBz, GPUCA_MAX_SIN_PHI)) {
54+
if (!tParam.TransportToX(tracker.Row(rowIndex).X(), t0, tracker.Param().constBz, GPUCA_MAX_SIN_PHI)) {
5555
return 0; // Reuse t0 linearization until we are in the next sector
5656
}
5757
// GPUInfo("Transported X %f Y %f Z %f SinPhi %f DzDs %f QPt %f SignCosPhi %f (MaxY %f)", tParam.X(), tParam.Y(), tParam.Z(), tParam.SinPhi(), tParam.DzDs(), tParam.QPt(), tParam.SignCosPhi(), Row(rowIndex).MaxY());
@@ -93,7 +93,7 @@ GPUd() int GPUTPCGlobalTracking::PerformGlobalTrackingRun(GPUTPCTracker& tracker
9393
if (rowHit != CALINK_INVAL) {
9494
// GPUInfo("New track: entry %d, row %d, hitindex %d", i, rowIndex, mTrackletRowHits[rowIndex * tracker.CommonMemory()->nTracklets]);
9595
tracker.TrackHits()[hitId + i].Set(rowIndex, rowHit);
96-
// if (i == 0) tParam.TransportToX(Row(rowIndex).X(), Param().par.constBz(), GPUCA_MAX_SIN_PHI); //Use transport with new linearisation, we have changed the track in between - NOT needed, fitting will always start at outer end of global track!
96+
// if (i == 0) tParam.TransportToX(Row(rowIndex).X(), Param().constBz(), GPUCA_MAX_SIN_PHI); //Use transport with new linearisation, we have changed the track in between - NOT needed, fitting will always start at outer end of global track!
9797
i++;
9898
}
9999
rowIndex++;

0 commit comments

Comments
 (0)