@@ -394,126 +394,9 @@ void TrackerTraitsGPU<NLayers>::findRoads(const int iteration)
394394 mTimeFrameGPU ->loadUsedClustersDevice ();
395395 }
396396 this ->markTracks (iteration, sharedFirstClusters);
397- if (!hasTrackFollower (iteration)) {
398- // wipe the artefact memory
399- mTimeFrameGPU ->popMemoryStack (iteration);
400- }
401- };
402-
403- template <int NLayers>
404- void TrackerTraitsGPU<NLayers>::extendTracks(const int iteration)
405- {
406- TrackerTraits<NLayers>::extendTracks (iteration);
407- mTimeFrameGPU ->loadUsedClustersDevice ();
408- // wipe the artefact memory kept alive for the track follower
397+ // wipe the artefact memory
409398 mTimeFrameGPU ->popMemoryStack (iteration);
410- }
411-
412- template <int NLayers>
413- bool TrackerTraitsGPU<NLayers>::hasTrackFollower(const int iteration) const
414- {
415- return this ->mTrkParams [iteration].PassFlags [IterationStep::TrackFollowerTop] ||
416- this ->mTrkParams [iteration].PassFlags [IterationStep::TrackFollowerBot];
417- }
418-
419- template <int NLayers>
420- void TrackerTraitsGPU<NLayers>::buildTrackExtensionCandidates(const int iteration, typename TrackerTraits<NLayers>::TrackExtensionCandidates& candidatesPerTrack)
421- {
422- const auto nTracks = this ->mTimeFrame ->getTracks ().size ();
423- const int beamWidth = std::max (1 , this ->mTrkParams [iteration].TrackFollowerBeamWidth );
424- mTimeFrameGPU ->syncStreams ();
425- mTimeFrameGPU ->loadTrackExtensionStartTracksDevice ();
426- mTimeFrameGPU ->createTrackExtensionCandidatesDevice (nTracks);
427- mTimeFrameGPU ->createTrackExtensionScratchDevice (kTrackExtensionLaunchThreads , beamWidth);
428- std::array<float , NLayers> layerRadii{};
429- std::array<float , NLayers> layerxX0{};
430- for (int iLayer{0 }; iLayer < this ->mTrkParams [iteration].NLayers ; ++iLayer) {
431- layerRadii[iLayer] = this ->mTrkParams [iteration].LayerRadii [iLayer];
432- layerxX0[iLayer] = this ->mTrkParams [iteration].LayerxX0 [iLayer];
433- }
434- computeTrackExtensionCandidatesHandler<NLayers>(mTimeFrameGPU ->getDeviceTrackExtensionStartTracks (),
435- mTimeFrameGPU ->getDeviceIndexTableUtils (),
436- mTimeFrameGPU ->getDeviceROFMaskTableView (),
437- mTimeFrameGPU ->getDeviceROFOverlapTableView (),
438- mTimeFrameGPU ->getDeviceArrayClusters (),
439- (const uint8_t **)mTimeFrameGPU ->getDeviceArrayUsedClusters (),
440- mTimeFrameGPU ->getDeviceArrayClustersIndexTables (),
441- mTimeFrameGPU ->getDeviceROFrameClusters (),
442- mTimeFrameGPU ->getDeviceArrayTrackingFrameInfo (),
443- mTimeFrameGPU ->getDeviceTrackExtensionCandidates (),
444- mTimeFrameGPU ->getDeviceTrackExtensionCandidateOffsets (),
445- mTimeFrameGPU ->getDeviceActiveTrackExtensionHypotheses (),
446- mTimeFrameGPU ->getDeviceNextTrackExtensionHypotheses (),
447- layerRadii,
448- layerxX0,
449- static_cast <int >(nTracks),
450- this ->mTrkParams [iteration].NLayers ,
451- this ->mTrkParams [iteration].PhiBins ,
452- beamWidth,
453- this ->mTrkParams [iteration].PassFlags [IterationStep::TrackFollowerTop],
454- this ->mTrkParams [iteration].PassFlags [IterationStep::TrackFollowerBot],
455- this ->mBz ,
456- this ->mTrkParams [iteration].MaxChi2ClusterAttachment ,
457- this ->mTrkParams [iteration].MaxChi2NDF ,
458- this ->mTrkParams [iteration].TrackFollowerNSigmaCutPhi ,
459- this ->mTrkParams [iteration].TrackFollowerNSigmaCutZ ,
460- mTimeFrameGPU ->getDevicePropagator (),
461- this ->mTrkParams [iteration].CorrType ,
462- mTimeFrameGPU ->getStream (0 ));
463- mTimeFrameGPU ->createTrackExtensionResultsDevice (nTracks);
464- computeTrackExtensionResultsHandler<NLayers>(mTimeFrameGPU ->getDeviceTrackExtensionStartTracks (),
465- mTimeFrameGPU ->getDeviceTrackExtensionCandidates (),
466- mTimeFrameGPU ->getDeviceTrackExtensionCandidateOffsets (),
467- mTimeFrameGPU ->getDeviceTrackExtensionResults (),
468- mTimeFrameGPU ->getDeviceArrayTrackingFrameInfo (),
469- layerxX0,
470- static_cast <int >(nTracks),
471- this ->mTrkParams [iteration].NLayers ,
472- this ->mBz ,
473- this ->mTrkParams [iteration].MaxChi2ClusterAttachment ,
474- this ->mTrkParams [iteration].MaxChi2NDF ,
475- mTimeFrameGPU ->getDevicePropagator (),
476- this ->mTrkParams [iteration].CorrType ,
477- this ->mTrkParams [iteration].ShiftRefToCluster ,
478- mTimeFrameGPU ->getStream (0 ));
479- mTimeFrameGPU ->downloadTrackExtensionResultsDevice ();
480-
481- const auto & results = mTimeFrameGPU ->getTrackExtensionResults ();
482- for (int iResult{0 }; iResult < static_cast <int >(results.size ()); ++iResult) {
483- const auto & result = results[iResult];
484- if (!result.isValid ()) {
485- continue ;
486- }
487- auto candidate = result.candidate ;
488- candidate.resultIndex = iResult;
489- if (candidatesPerTrack.add (candidate.trackIndex , candidate) < 0 ) {
490- continue ;
491- }
492- }
493- }
494-
495- template <int NLayers>
496- bool TrackerTraitsGPU<NLayers>::materializeTrackExtensionCandidate(TrackITSExt& track, const typename TrackerTraits<NLayers>::TrackExtensionCandidateN& candidate, const int iteration)
497- {
498- const auto & results = mTimeFrameGPU ->getTrackExtensionResults ();
499- if (candidate.resultIndex < 0 || candidate.resultIndex >= static_cast <int >(results.size ())) {
500- return TrackerTraits<NLayers>::materializeTrackExtensionCandidate (track, candidate, iteration);
501- }
502- const auto & result = results[candidate.resultIndex ];
503- if (!result.isValid () || result.candidate .trackIndex != candidate.trackIndex ) {
504- return false ;
505- }
506- track = result.track ;
507- this ->updateExtendedTrackTimeStamp (track, iteration);
508- uint32_t diff{0 };
509- for (int iLayer{0 }; iLayer < this ->mTrkParams [iteration].NLayers ; ++iLayer) {
510- if (candidate.addedClusters [iLayer] != constants::UnusedIndex) {
511- diff |= (0x1u << iLayer);
512- }
513- }
514- applyExtendedClustersPattern<NLayers>(track, diff);
515- return true ;
516- }
399+ };
517400
518401template <int NLayers>
519402int TrackerTraitsGPU<NLayers>::getTFNumberOfClusters() const
0 commit comments