Skip to content

Refactor SciFiTrackForwarding

Christoph Hasse requested to merge refactor_trackforwarding into master

Primarily motivated by adding some more vectorization and reducing the amount of branches, this MR refactors the entire codebase of the SciFiTrackForwarding.

Now there are no more constructs like iteration==0 ? blah : blub but the main search logic has been moved into its own function find_track. Whether this function performs a search corresponding to the previously called 1st or 2nd loop depends on the passed configuration struct config_loop_1 or config_loop_2.

During the procedure of generalizing the find_track function I noticed that some of the parameters weren't being properly adjusted (e.g. the initial search window) for the configuration of the second loop so I also retuned these parameters. This leads to a better turn on curve now, whereas previously the second loop would reconstruct quite a few tracks with a lower transverse momentum then defined by the minPT property.

I imagine that further vectorization of this algorithm is possible but this isn't a priority for me right now as the algorithm itself isn't really taking up a large chunk of HLT1. Any interested party is welcome to try though :)

The amount of counters had grown significantly especially with the addition of the 2nd loop in a previous MR. This MR removed most of them and only left a small meaningful subset.

The option PreSelectionPT has been removed, thus this MR needs Moore!455 (merged)

cc @ahennequ @decianm @sstahl @gunther

Edited by Christoph Hasse

Merge request reports