Skip to content

updates to handle pLS with OT hits#253

Open
slava77 wants to merge 5 commits intoSegmentLinking:masterfrom
slava77:CMSSW_17_0_X-lst015-caExt-PPBBEE
Open

updates to handle pLS with OT hits#253
slava77 wants to merge 5 commits intoSegmentLinking:masterfrom
slava77:CMSSW_17_0_X-lst015-caExt-PPBBEE

Conversation

@slava77
Copy link
Copy Markdown

@slava77 slava77 commented Apr 14, 2026

  • most updates are in runTripletDefaultAlgoPPBB and runTripletDefaultAlgoPPEE during pLS matching to the segments of T3. Most of the cuts needed updates: positional and directional z in the barrel (r in endcap), delta beta. The implementation is generalized from the case of pLS ending before the first segment (rightmost case) to other possibilities; near-degenerate cases are pass-through. image
    • additionally, a bugfix affecting the pre-extension LST: in zPointed window definition, where the z error already estimated at a destination was incorrectly additionally scaled by drOutIn/dSDIn is now corrected (an individual test shows minor impact on the old no-OT pLS test zPointed selection fix in PPBB #216)
  • PixelSegmentsSoALayout::pLSHitsIdxs are now packed OT/IT<<32 + index to have a fast (and disambiguated) overlap checks
  • skip duplicate hits in the LSTOutputConverter when adding the OT LST TC hits after the pLS hits were added

The initial submission does not change removeOTRechits to first confirm the default behavior is OK with the CI.

…xtended pLS stopping in barrel and endcap OT:

- fix error computations and dBetas
- account for radius uncertainties in lumi-based and pointed z selection, most important for connections with pLS on the same tilted layer
- use the tl-axis length in dBetaRes term, it becomes large in the near-3-point cases
- rename a few more variables for clarity
- fixup to the dzDrtScale use in PPBB
- PPEE: fix dLum and dzDrtScale in rt{Lo,Hi}, fix dz sign in rt{Lo,Hi}_point
@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 14, 2026

run-ci: [all, hlt]
modifiers: gpu

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 14, 2026

run-ci: [all, hlt]

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 14, 2026

image

@ariostas is it from me incorrectly formatting the command or something else; the error sounds like something else

Unhandled error: HttpError: Invalid Argument - failed to parse workflow: error parsing called workflow
""
-> "SegmentLinking/TrackLooper-actions/.github/workflows/hlt.yml@devel"
: failed to fetch workflow: reference to workflow should be either a valid branch, tag, or commit

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully in standalone mode running on GPU. Here are some of the comparison plots.

Efficiency vs pT comparison Efficiency vs eta comparison
Fake rate vs pT comparison Fake rate vs eta comparison
Duplicate rate vs pT comparison Duplicate rate vs eta comparison

The full set of validation and comparison plots can be found here.

Here is a timing comparison:

   Evt    Hits       MD       LS      T3       T5       pLS       pT5      pT3      TC       Reset    Event     Short             Rate
   avg     32.4      0.2      0.4      0.5      0.9      0.3      0.6      0.4      0.3      1.3      0.0      37.3       4.6+/-  2.6      37.3   explicit[s=1]
   avg      1.2      0.3      0.5      0.7      1.1      0.3      0.8      0.5      0.4      1.7      0.0       7.6       6.1+/-  2.7       3.9   explicit[s=2]
   avg      2.9      0.6      0.8      1.1      1.5      0.4      1.2      0.7      0.6      2.8      0.0      12.5       9.2+/-  3.3       3.3   explicit[s=4]
   avg      4.8      0.9      1.2      1.7      2.0      0.5      1.7      1.0      0.8      3.8      0.0      18.5      13.2+/-  3.9       3.2   explicit[s=6]
   avg      4.6      1.4      1.7      2.3      2.6      0.6      2.2      1.3      1.0      4.9      0.0      22.7      17.5+/-  4.2       2.9   explicit[s=8] (target branch)
   avg     31.5      0.2      0.4      0.5      0.8      0.3      0.6      0.4      0.3      1.3      0.0      36.4       4.6+/-  2.4      36.4   explicit[s=1]
   avg      1.1      0.3      0.5      0.7      1.0      0.3      0.8      0.6      0.4      1.8      0.0       7.5       6.1+/-  2.8       3.9   explicit[s=2]
   avg      2.0      0.6      0.8      1.1      1.5      0.4      1.2      0.7      0.6      2.8      0.0      11.6       9.2+/-  3.2       3.0   explicit[s=4]
   avg      3.0      0.9      1.3      1.6      2.0      0.5      1.7      1.0      0.8      3.9      0.0      16.8      13.2+/-  3.9       2.9   explicit[s=6]
   avg      3.4      1.3      1.8      2.3      2.6      0.6      2.3      1.2      1.0      4.9      0.0      21.5      17.5+/-  4.2       2.8   explicit[s=8] (this PR)

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 14, 2026

run-ci: hlt

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully in standalone mode running on CPU. Here are some of the comparison plots.

Efficiency vs pT comparison Efficiency vs eta comparison
Fake rate vs pT comparison Fake rate vs eta comparison
Duplicate rate vs pT comparison Duplicate rate vs eta comparison

The full set of validation and comparison plots can be found here.

Here is a timing comparison:

   Evt    Hits       MD       LS      T3       T5       pLS       pT5      pT3      TC       Reset    Event     Short             Rate
   avg     30.0     79.8    114.8    121.7     53.3    682.0     10.9     41.8     73.7    215.9      0.1    1424.0     712.0+/- 186.8     483.3   explicit[s=4] (target branch)
   avg     30.0     80.4    115.6    121.4     52.7    676.7     10.8     41.1     69.1    201.2      0.1    1399.0     692.4+/- 184.5     474.3   explicit[s=4] (this PR)

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with CMSSW running on GPU. Here are some plots.

OOTB All Tracks
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with CMSSW running on CPU. Here are some plots.

OOTB All Tracks
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 14, 2026

The full set of validation and comparison plots can be found here.

dups by category: this PR
image
vs "reference" from #203
image

CMSSW plots have no differences.
I will try to figure out the origin

bool pmatched = false;
if (phits1[i] == -1)
// short pLSs are padded with the last hit idx
if (i + 1 == Params_pLS::kHits && phits1[i] == phits1[i - 1])
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note to self:
here the hits are not in the same order. So, 3-hit pLS will have the same hit at i=1 and i=3.
OTOH, hit indices are always filled with something non-default. So, this check here if corrected is only to save a cycle of checks with j

@slava77 slava77 force-pushed the CMSSW_17_0_X-lst015-caExt-PPBBEE branch from 55057df to 565d599 Compare April 16, 2026 16:26
@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 16, 2026

run-ci: [all, hlt]

@github-actions
Copy link
Copy Markdown

There was a problem while building and running in standalone mode. The logs can be found here.

@github-actions
Copy link
Copy Markdown

There was a problem while building and running with CMSSW. The logs can be found here.

…to have a fast (and disambiguated) overlap checks; simplify pLS overlap check
@slava77 slava77 force-pushed the CMSSW_17_0_X-lst015-caExt-PPBBEE branch from 565d599 to 0c2097e Compare April 16, 2026 16:47
@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 16, 2026

run-ci: [all, hlt]

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully in standalone mode running on CPU. Here are some of the comparison plots.

Efficiency vs pT comparison Efficiency vs eta comparison
Fake rate vs pT comparison Fake rate vs eta comparison
Duplicate rate vs pT comparison Duplicate rate vs eta comparison

The full set of validation and comparison plots can be found here.

Here is a timing comparison:

   Evt    Hits       MD       LS      T3       T5       pLS       pT5      pT3      TC       Reset    Event     Short             Rate
   avg     21.3     67.9    100.6     94.0     35.3    499.3      8.0     35.6     65.2    171.8      0.1    1099.1     578.5+/- 148.2     370.7   explicit[s=4] (target branch)
   avg     21.4     67.5    100.2     94.1     33.9    450.4      8.1     32.2     60.9    168.3      0.6    1037.7     565.8+/- 144.9     379.9   explicit[s=4] (this PR)

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with CMSSW running on CPU. Here are some plots.

OOTB All Tracks
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with HLT setup running on CPU (procModifiers = ). Here are some plots.

HLT General Plots
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 16, 2026

run-ci: [all, hlt]
modifiers: gpu

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully in standalone mode running on GPU. Here are some of the comparison plots.

Efficiency vs pT comparison Efficiency vs eta comparison
Fake rate vs pT comparison Fake rate vs eta comparison
Duplicate rate vs pT comparison Duplicate rate vs eta comparison

The full set of validation and comparison plots can be found here.

Here is a timing comparison:

   Evt    Hits       MD       LS      T3       T5       pLS       pT5      pT3      TC       Reset    Event     Short             Rate
   avg     31.1      0.2      0.4      0.5      0.8      0.3      0.6      0.4      0.3      1.3      0.0      36.0       4.6+/-  2.5      36.0   explicit[s=1]
   avg      1.1      0.3      0.5      0.7      1.0      0.3      0.8      0.5      0.4      1.7      0.0       7.4       6.0+/-  2.8       3.8   explicit[s=2]
   avg      1.8      0.6      0.8      1.1      1.4      0.4      1.2      0.7      0.6      2.7      0.0      11.4       9.2+/-  3.3       3.0   explicit[s=4]
   avg      2.6      0.9      1.3      1.6      2.0      0.5      1.7      1.0      0.8      3.8      0.0      16.2      13.1+/-  4.1       2.8   explicit[s=6]
   avg      3.6      1.4      1.7      2.3      2.7      0.6      2.2      1.2      1.1      4.8      0.0      21.6      17.4+/-  4.3       2.8   explicit[s=8] (target branch)
   avg     31.3      0.2      0.4      0.5      0.9      0.3      0.6      0.4      0.3      1.3      0.0      36.1       4.6+/-  2.5      36.2   explicit[s=1]
   avg      1.1      0.3      0.5      0.7      1.0      0.3      0.8      0.6      0.4      1.7      0.0       7.4       6.0+/-  2.7       3.8   explicit[s=2]
   avg      2.2      0.6      0.8      1.1      1.5      0.4      1.3      0.8      0.6      2.7      0.0      11.9       9.3+/-  3.3       3.1   explicit[s=4]
   avg      2.8      0.9      1.3      1.6      2.0      0.5      1.6      1.0      0.8      3.8      0.0      16.4      13.1+/-  3.9       2.9   explicit[s=6]
   avg      3.9      1.4      1.8      2.3      2.7      0.7      2.2      1.2      1.1      4.9      0.0      22.3      17.7+/-  4.3       2.9   explicit[s=8] (this PR)

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 16, 2026

run-ci: [all, hlt]

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 16, 2026

run-ci: [all, hlt]

I expect still no changes in the offline setup but some minor increase in the fake rate in the HLT setup (based on the local tests, mostly localized in the shorter tracks)

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 16, 2026

@slava77 slava77 force-pushed the CMSSW_17_0_X-lst015-caExt-PPBBEE branch from 565d599 to 0c2097e 5 hours ago

I had a silly typo (1 vs 2) mixup. I tried to subscribe to the pro account, but with that I was suggested to prove a negative in line with "upload an image explaining why you are not on campus"

@slava77
Copy link
Copy Markdown
Author

slava77 commented Apr 16, 2026

earlier I thought I was just making a random comment

image

@ariostas
do you know why this apparently went through a parsing hook? (with the thumbs down) ... since no action was actually expected it's probably OK to ignore the negative reaction

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully in standalone mode running on CPU. Here are some of the comparison plots.

Efficiency vs pT comparison Efficiency vs eta comparison
Fake rate vs pT comparison Fake rate vs eta comparison
Duplicate rate vs pT comparison Duplicate rate vs eta comparison

The full set of validation and comparison plots can be found here.

Here is a timing comparison:

   Evt    Hits       MD       LS      T3       T5       pLS       pT5      pT3      TC       Reset    Event     Short             Rate
   avg     29.4     79.1    114.0    117.3     51.5    687.8     10.7     40.2     71.0    215.0      0.1    1416.2     699.0+/- 185.6     473.5   explicit[s=4] (target branch)
   avg     29.5     78.4    113.3    117.1     51.6    688.0     10.9     39.9     66.3    196.9      0.1    1391.9     674.4+/- 177.8     473.1   explicit[s=4] (this PR)

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with CMSSW running on GPU. Here are some plots.

OOTB All Tracks
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with HLT setup running on CPU (procModifiers = ). Here are some plots.

HLT General Plots
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with CMSSW running on CPU. Here are some plots.

OOTB All Tracks
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@github-actions
Copy link
Copy Markdown

The PR was built and ran successfully with HLT setup running on GPU (procModifiers = ). Here are some plots.

HLT General Plots
Efficiency and fake rate vs pT, eta, and phi

The full set of validation and comparison plots can be found here.

@slava77 slava77 requested a review from VourMa April 17, 2026 06:35
Copy link
Copy Markdown
Collaborator

@VourMa VourMa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes look good to me, I have some comments mostly for my understanding.

More in general, I am not sure what we want to do with disabling removeOTRechits. The performance looks to me worse in more or less all fronts. Is there any obvious advantage? Should this be introduced as a means to study how to improve but not enable it by default?

(zpitch_InOut + zpitch_OutLo); //slope-correction only on outer end

bool sameLayerOutLo =
alpaka::math::abs(acc, rt_OutLo - rt_InOut) < 1.f && alpaka::math::abs(acc, z_InUp - z_OutLo) < 1.f;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How was 1.0 chosen here? I am missing what it represents physically.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good question; "it looked reasonable" ;)

Trying to reconstruct the logic: from my logs, it came in with this commit
slava77@077bb25
the text around that is only in the context of how it's used to define/update zpitch_InOut.

I'll test/change to define it by just being outside the IT "box"

Comment thread RecoTracker/LSTCore/src/alpaka/PixelTriplet.h
Comment thread RecoTracker/LSTCore/src/alpaka/PixelTriplet.h
Comment thread RecoTracker/LSTCore/src/alpaka/PixelTriplet.h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants