Skip to content

WIP: Global update of the Seeding XZ-track finding

Louis Henry requested to merge lohenry-revampThirdSeed2 into master

This update revamps few things in the XZ part of the seeding, mainly:

  • moved all geometry information initialisation to the initialisation of the algorithm (slightly faster, clearer);
  • solve the parabola in XZ search directly using some pre-calculated factors (much faster, technically an approximation but quasi-transparent);
  • improved the quasi-sorted nature of containers used in the Hough classification (slightly faster, prepares the ground for future improvements);
  • explicitely call different methods for U/V collecting (should be templated for clarity; faster);
  • use a new model for third-hit search which allows for faster search and starts actually doing some P-tuning of the algorithm (much faster, is responsible for efficiency/ghost rate changes, prepares the ground for future improvements [p-tuning])

Overall, these changes amount to ~9% fewer memory calls, and slightly lower efficiencies (which can be retuned away). Master on 5k events:

SeedTrackChecker                       INFO **** Seed                           542817 tracks including          35063 ghosts [ 6.46 %], Event average  5.81 % ****
SeedTrackChecker                       INFO   01_hasT                        :  359217 from   432288 [ 83.10 %]     60 clones [ 0.02 %], purity: 99.50 %, hitEff: 97.93 %
SeedTrackChecker                       INFO   02_long                        :  263374 from   283125 [ 93.02 %]     26 clones [ 0.01 %], purity: 99.65 %, hitEff: 98.52 %
SeedTrackChecker                       INFO   03_long_P>5GeV                 :  188105 from   196161 [ 95.89 %]     12 clones [ 0.01 %], purity: 99.66 %, hitEff: 99.09 %
SeedTrackChecker                       INFO   04_long_fromB                  :   14479 from    15465 [ 93.62 %]      0 clones [ 0.00 %], purity: 99.72 %, hitEff: 98.82 %
SeedTrackChecker                       INFO   05_long_fromB_P>5GeV           :   11244 from    11790 [ 95.37 %]      0 clones [ 0.00 %], purity: 99.72 %, hitEff: 99.22 %
SeedTrackChecker                       INFO   06_UT+T_strange                :   27611 from    30045 [ 91.90 %]      4 clones [ 0.01 %], purity: 99.65 %, hitEff: 98.07 %
SeedTrackChecker                       INFO   07_UT+T_strange_P>5GeV         :   15290 from    15841 [ 96.52 %]      1 clones [ 0.01 %], purity: 99.66 %, hitEff: 99.04 %
SeedTrackChecker                       INFO   08_noVelo+UT+T_strange         :   14142 from    15374 [ 91.99 %]      1 clones [ 0.01 %], purity: 99.65 %, hitEff: 98.09 %
SeedTrackChecker                       INFO   09_noVelo+UT+T_strange_P>5GeV  :    8362 from     8696 [ 96.16 %]      0 clones [ 0.00 %], purity: 99.66 %, hitEff: 98.97 %
SeedTrackChecker                       INFO   10_UT+T_SfromDB                :     750 from      804 [ 93.28 %]      0 clones [ 0.00 %], purity: 99.81 %, hitEff: 98.53 %
SeedTrackChecker                       INFO   11_UT+T_SfromDB_P>5GeV         :     457 from      470 [ 97.23 %]      0 clones [ 0.00 %], purity: 99.75 %, hitEff: 99.43 %
SeedTrackChecker                       INFO   12_noVelo+UT+T_SfromDB_P>5GeV  :     267 from      276 [ 96.74 %]      0 clones [ 0.00 %], purity: 99.71 %, hitEff: 99.38 %
SeedTrackChecker                       INFO   13_electrons                   :   78267 from   142762 [ 54.82 %]     13 clones [ 0.02 %], purity: 99.58 %, hitEff: 97.31 %
SeedTrackChecker                       INFO   14_long_electrons              :   26959 from    30942 [ 87.13 %]      3 clones [ 0.01 %], purity: 99.71 %, hitEff: 97.90 %
SeedTrackChecker                       INFO   15_long_electrons_P>5Gev       :   17860 from    19757 [ 90.40 %]      3 clones [ 0.02 %], purity: 99.70 %, hitEff: 98.67 %
SeedTrackChecker                       INFO   16_long_fromB_electrons_P>5GeV :    6072 from     6631 [ 91.57 %]      0 clones [ 0.00 %], purity: 99.75 %, hitEff: 98.98 %

First version used in the MR:

SeedTrackChecker                       INFO **** Seed                           532285 tracks including          29474 ghosts [ 5.54 %], Event average  4.85 % ****
SeedTrackChecker                       INFO   01_hasT                        :  356961 from   432288 [ 82.57 %]     64 clones [ 0.02 %], purity: 99.50 %, hitEff: 97.90 %
SeedTrackChecker                       INFO   02_long                        :  262611 from   283125 [ 92.75 %]     30 clones [ 0.01 %], purity: 99.65 %, hitEff: 98.52 %
SeedTrackChecker                       INFO   03_long_P>5GeV                 :  187860 from   196161 [ 95.77 %]     14 clones [ 0.01 %], purity: 99.65 %, hitEff: 99.08 %
SeedTrackChecker                       INFO   04_long_fromB                  :   14432 from    15465 [ 93.32 %]      1 clones [ 0.01 %], purity: 99.71 %, hitEff: 98.82 %
SeedTrackChecker                       INFO   05_long_fromB_P>5GeV           :   11220 from    11790 [ 95.17 %]      0 clones [ 0.00 %], purity: 99.70 %, hitEff: 99.21 %
SeedTrackChecker                       INFO   06_UT+T_strange                :   27550 from    30045 [ 91.70 %]      4 clones [ 0.01 %], purity: 99.64 %, hitEff: 98.06 %
SeedTrackChecker                       INFO   07_UT+T_strange_P>5GeV         :   15278 from    15841 [ 96.45 %]      0 clones [ 0.00 %], purity: 99.64 %, hitEff: 99.03 %
SeedTrackChecker                       INFO   08_noVelo+UT+T_strange         :   14102 from    15374 [ 91.73 %]      2 clones [ 0.01 %], purity: 99.64 %, hitEff: 98.07 %
SeedTrackChecker                       INFO   09_noVelo+UT+T_strange_P>5GeV  :    8355 from     8696 [ 96.08 %]      0 clones [ 0.00 %], purity: 99.64 %, hitEff: 98.96 %
SeedTrackChecker                       INFO   10_UT+T_SfromDB                :     748 from      804 [ 93.03 %]      0 clones [ 0.00 %], purity: 99.80 %, hitEff: 98.49 %
SeedTrackChecker                       INFO   11_UT+T_SfromDB_P>5GeV         :     455 from      470 [ 96.81 %]      0 clones [ 0.00 %], purity: 99.73 %, hitEff: 99.40 %
SeedTrackChecker                       INFO   12_noVelo+UT+T_SfromDB_P>5GeV  :     267 from      276 [ 96.74 %]      0 clones [ 0.00 %], purity: 99.68 %, hitEff: 99.35 %
SeedTrackChecker                       INFO   13_electrons                   :   77039 from   142762 [ 53.96 %]     15 clones [ 0.02 %], purity: 99.56 %, hitEff: 97.12 %
SeedTrackChecker                       INFO   14_long_electrons              :   26756 from    30942 [ 86.47 %]      3 clones [ 0.01 %], purity: 99.69 %, hitEff: 97.80 %
SeedTrackChecker                       INFO   15_long_electrons_P>5Gev       :   17746 from    19757 [ 89.82 %]      3 clones [ 0.02 %], purity: 99.68 %, hitEff: 98.61 %
SeedTrackChecker                       INFO   16_long_fromB_electrons_P>5GeV :    6050 from     6631 [ 91.24 %]      0 clones [ 0.00 %], purity: 99.73 %, hitEff: 98.91 %

To-do (mandatory):

  • template the Collect methods -> already done by another MR
  • make the tuning of the two-hit window -> will be done later as it is more complicated

To-do (possible):

  • template the whole code to remove the "part" argument, which seems useless -> templating will be discussed later
  • tune the U/V requirements in function of the momentum -> U/V segment finding has been overhauled in another MR
  • study the clone removal algorithm to make it faster -> will be in another MR

Profiles: New: NewProfile Master: OldProfile

Edited by Louis Henry

Merge request reports