Skip to content

FTF: HitDV optimisation + timers fix

Stewart Martin-Haugh requested to merge smh/athena:HitDV_timers_opt into 23.0

1)For every spacepoint in findHitDV, we are creating a temporary 2-element vector to store one or two clusters. This can be avoided, although not very neatly since there isn't an easy way to iterate over pairs in C++ (they aren't an iterable collection). Hence some lambda functions. There might be a neater way to do this.

2)std::unordered_map<Identifier, int> umap_sp_identifier can be reserved since it's an unordered_map and takes up a contiguous area in memory. I reserve 1.3x number of spacepoints, based on tests with ttbar. The absolute maximum is 2 (2x Identifier per spacepoint).

3)The Python configuration was not adding the UTT histograms for a TrigFastTrackFinder_fullScan instance, since it was expecting jet as the name. Fix this and don't rely on a particular naming convention.

4)Move the total time to the end of findTracks. This way we count UTT processing if it's being done.

  1. and 2) save about 10% of the findHitDV method time, from 99 ms to 91 ms on ttbar.
Edited by Stewart Martin-Haugh

Merge request reports