trackreco / mkFit

Vectorized, Parallelized Tracking
https://trackreco.github.io/
Apache License 2.0
17 stars 15 forks source link

Bksearch fix #351

Closed osschar closed 2 years ago

osschar commented 2 years ago
  1. This fixes an issue found in #345 - efficiency dropped and fakes were worse (slightly). See also #349. BackwardFit was preferentially using overlap hits on a given layer (this has been corrected before in BackwardFitBH).
  2. BackwardFit relies on all TrackCands being allocated in the same thread / VM segment (whatever vgather requires the address offsets to conform to). In CMSSW it was observed that jemalloc can lead to TrackCands being allocated in significantly different segments. To work around this, a combined-candidate memory pool (CcPool) has been added that pre-allocates memory for all CombCandidates and then just hands it out in EvenOfCombinedCandidates::Reset().

MTV validation plots: http://xrd-cache-1.t2.ucsd.edu/matevz/PKF/bks-und-ccand-fix.vs.devel/

P.S. No. 2 could also be used for other TrackCand related objects (and temporary vectors) but it is not easy to calculate the upper bound of their total memory usage.