Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add vertex trimming to the phase2 hlt tracking iterations #47113

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

lguzzi
Copy link
Contributor

@lguzzi lguzzi commented Jan 16, 2025

PR description:

This PR adds vertex trimming to the phase2 hlt menu with a proc. modifier. This modifier allows to select and build only initial step seeds and high-pt triplet step doublets compatible with a subset of pixel vertices.
Preliminary studies of this configuration are available here for the legacy iterations.

PR validation:

This PR has been validated comparing the results of the customisation function used so far with the proc. modifier approach. Comparison plots show no difference.

If this PR is a backport please specify the original PR and why you need to backport that PR. If this PR will be backported please specify to which release cycle the backport is meant for:

not needed

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 16, 2025

cms-bot internal usage

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @lguzzi for master.

It involves the following packages:

  • Configuration/ProcessModifiers (operations)
  • HLTrigger/Configuration (hlt)

@Martin-Grunewald, @antoniovilela, @cmsbuild, @davidlange6, @fabiocos, @mandrenguyen, @mmusich, @rappoccio can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @SohamBhattacharya, @VourMa, @fabiocos, @makortel, @missirol, @mmusich, @rovere this is something you requested to watch as well.
@antoniovilela, @mandrenguyen, @rappoccio, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here


# This modifier is used to enable vertex trimming in the tracking sequences
# and in all related reconstruction modules
vertexTrimming = cms.Modifier()
Copy link
Contributor

Choose a reason for hiding this comment

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

can it be renamed to signal it's about the phase-2 HLT?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I renamed it to phase2_hlt_vertexTrimming in c05a4f2

scalingStartNPix = cms.double(0.0),
scalingEndNPix = cms.double(1.0),
),
mightGet = cms.optional.untracked.vstring,
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
mightGet = cms.optional.untracked.vstring,

unneeded?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done d17f0fb

useFakeVertices = cms.bool(False),
maxNVertices = cms.int32(-1),
nSigmaZ = cms.double(4.0),
pixelClustersForScaling = cms.InputTag('siPixelClusters'),
Copy link
Contributor

Choose a reason for hiding this comment

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

this is an offline product?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, I copied it from the defaults. It is not used in this configuration, however I changed it to hltSiPixelClusters in d17f0fb

@mmusich
Copy link
Contributor

mmusich commented Jan 16, 2025

test parameters:

  • relvals_opt = --what upgrade
  • workflows = 29634.753, 29634.754, 29634.755, 29634.756, 29634.757
  • enable = hlt_p2_integration, hlt_p2_timing

@mmusich
Copy link
Contributor

mmusich commented Jan 16, 2025

@lguzzi please add workflows that can exercise the trimming.
You can take inspiration from the other variants:

upgradeWFs['HLTTiming75e33Alpaka'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33Alpaka'].suffix = '_HLT75e33TimingAlpaka'
upgradeWFs['HLTTiming75e33Alpaka'].offset = 0.751
upgradeWFs['HLTTiming75e33Alpaka'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'alpaka'
}
upgradeWFs['HLTTiming75e33TiclV5'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33TiclV5'].suffix = '_HLT75e33TimingTiclV5'
upgradeWFs['HLTTiming75e33TiclV5'].offset = 0.752
upgradeWFs['HLTTiming75e33TiclV5'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'ticl_v5'
}
upgradeWFs['HLTTiming75e33AlpakaSingleIter'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33AlpakaSingleIter'].suffix = '_HLT75e33TimingAlpakaSingleIter'
upgradeWFs['HLTTiming75e33AlpakaSingleIter'].offset = 0.753
upgradeWFs['HLTTiming75e33AlpakaSingleIter'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'alpaka,singleIterPatatrack'
}
upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].suffix = '_HLT75e33TimingAlpakaSingleIterLST'
upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].offset = 0.754
upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'alpaka,singleIterPatatrack,trackingLST'
}
upgradeWFs['HLTTiming75e33AlpakaLST'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33AlpakaLST'].suffix = '_HLT75e33TimingAlpakaLST'
upgradeWFs['HLTTiming75e33AlpakaLST'].offset = 0.755
upgradeWFs['HLTTiming75e33AlpakaLST'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'alpaka,trackingLST'
}

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47113/43321

  • Found files with invalid states:
    • Configuration/ProcessModifiers/python/vertexTrimming_cff.py:

@cmsbuild
Copy link
Contributor

Pull request #47113 was updated. @Martin-Grunewald, @antoniovilela, @cmsbuild, @davidlange6, @fabiocos, @mandrenguyen, @mmusich, @rappoccio can you please check and sign again.

# This modifier is used to enable vertex trimming in the tracking sequences
# and in all related reconstruction modules
phase2_hlt_vertexTrimming = cms.Modifier()

Copy link
Contributor

Choose a reason for hiding this comment

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

this line is uneeded @lguzzi. Anyway please rebase to have just a single commit (also add the requested workflows).

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47113/43322

  • Found files with invalid states:
    • Configuration/ProcessModifiers/python/vertexTrimming_cff.py:

@cmsbuild
Copy link
Contributor

Pull request #47113 was updated. @Martin-Grunewald, @antoniovilela, @cmsbuild, @davidlange6, @fabiocos, @mandrenguyen, @mmusich, @rappoccio can you please check and sign again.

@lguzzi
Copy link
Contributor Author

lguzzi commented Jan 16, 2025

I somehow assumed the trimming logic would have been coupled with the recovery of the tracks coming from the excluded vertices by properly merging the trimmed-full tracks and the pixel tracks from the excluded vertices. Last time I have checked, that is what we have documented in our documentation site here, but I fail to see that logic implemented here.

I left out the part written by JME because I cannot validate it. If you think it is appropriate I can add the merged track collection producer, then JME can add what is left for puppi in a separate PR.

@rovere
Copy link
Contributor

rovere commented Jan 16, 2025

I somehow assumed the trimming logic would have been coupled with the recovery of the tracks coming from the excluded vertices by properly merging the trimmed-full tracks and the pixel tracks from the excluded vertices. Last time I have checked, that is what we have documented in our documentation site here, but I fail to see that logic implemented here.

I left out the part written by JME because I cannot validate it. If you think it is appropriate I can add the merged track collection producer, then JME can add what is left for puppi in a separate PR.

It will be a nice topic for discussion at the next HLT Upgrade meeting!

@cmsbuild
Copy link
Contributor

+1

Size: This PR adds an extra 68KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-ee3df1/43792/summary.html
COMMIT: 5511128
CMSSW: CMSSW_15_0_X_2025-01-16-1100/el8_amd64_gcc12
Additional Tests: HLT_P2_INTEGRATION,HLT_P2_TIMING
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/47113/43792/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 2 lines to the logs
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 49
  • DQMHistoTests: Total histograms compared: 3819085
  • DQMHistoTests: Total failures: 94
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3818971
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 48 files compared)
  • Checked 214 log files, 184 edm output root files, 49 DQM output files
  • TriggerResults: no differences found

@mmusich
Copy link
Contributor

mmusich commented Jan 16, 2025

It will be a nice topic for discussion at the next HLT Upgrade meeting!

@rovere @VourMa I gather we should put this on hold until it's clarified what's the way forward at the first upgrade meeting?
@lguzzi in the meanwhile it would be useful to address the LST scheduling issue following the suggestion at #47113 (comment)

@mmasciov
Copy link
Contributor

FYI @cms-sw/tracking-pog-l2

@mmasciov
Copy link
Contributor

It will be a nice topic for discussion at the next HLT Upgrade meeting!

@rovere @VourMa I gather we should put this on hold until it's clarified what's the way forward at the first upgrade meeting? @lguzzi in the meanwhile it would be useful to address the LST scheduling issue following the suggestion at #47113 (comment)

In general, for @cms-sw/tracking-pog-l2 it would be easier to indeed have the mixedGeneralTracks approach also reviewable (e.g., in a PR, or in a Tracking POG meeting). This could be done by creating a PR to this branch by JME?
For instance, it appears to me from the private cmssw fork that is currently used for the customization that the same cuts used for full tracks are used to set the 'high-purity' for the 'extra' pixel-only tracks, which may be suboptimal. On a related topic, as mentioned at the last HLT upgrade meeting, it would be great to define the needs from other POGs also in terms of vertex reconstruction.
While I agree that a follow-up report is better (instead of attached minutes and my verbal report that was likely not clear enough), I would encourage that tracking matters are reviewed within the Tracking POG too.

@lguzzi
Copy link
Contributor Author

lguzzi commented Jan 16, 2025

I added the workflows for trimming alone and with alpaka. Trimming with LST does not work at the moment (ScheduleExecutionFailure).

The problem is that, for LST, HLTHighPtTripletStepSeedingSequence needs to run early, so that the HighPtTripletSeeds are available as input to LST building

_HLTInitialStepSequenceLST = cms.Sequence(
hltInitialStepSeeds
+hltInitialStepSeedTracksLST
+HLTHighPtTripletStepSeedingSequence
+hltHighPtTripletStepSeedTracksLST
+hltPixelSeedInputLST
+hltSiPhase2RecHits # Probably need to move elsewhere in the final setup
+hltPhase2OTHitsInputLST # Probably need to move elsewhere in the final setup
+hltLST
+hltInitialStepTrackCandidates
+hltInitialStepTrackspTTCLST
+hltInitialStepTrackspLSTCLST
+hltInitialStepTracksT5TCLST
+hltInitialStepTrackCutClassifierpTTCLST
+hltInitialStepTrackCutClassifierpLSTCLST
+hltInitialStepTrackSelectionHighPuritypTTCLST
+hltInitialStepTrackSelectionHighPuritypLSTCLST
)

For trimming, you modify hltHighPtTripletStepHitDoublets, which are part of HLTHighPtTripletStepSeedingSequence

HLTHighPtTripletStepSeedingSequence = cms.Sequence(hltHighPtTripletStepClusters+hltHighPtTripletStepSeedLayers+hltHighPtTripletStepHitDoublets+hltHighPtTripletStepHitTriplets+hltHighPtTripletStepSeeds)

and you schedule this modification at the beginning of HLTHighPtTripletStepSequence

_HLTHighPtTripletStepSequenceTrimming.insert(0, hltTrackingRegionFromTrimmedVertices)

However, in the LST configuration, HLTHighPtTripletStepSeedingSequence has already run when you ask for its modification, leading to the error. I believe that you could fix this issue by adding the modification for LST before this line:

thank you, I moved the tracking region definition to HLTHighPtTripletStepSeedingSequence and added some LST workflows.

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47113/43331

@cmsbuild
Copy link
Contributor

Pull request #47113 was updated. @AdrianoDee, @Martin-Grunewald, @Moanwar, @antoniovilela, @cmsbuild, @davidlange6, @DickyChant, @fabiocos, @mandrenguyen, @miquork, @mmusich, @rappoccio, @srimanob, @subirsarkar can you please check and sign again.

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47113/43332

@cmsbuild
Copy link
Contributor

Pull request #47113 was updated. @AdrianoDee, @Martin-Grunewald, @Moanwar, @antoniovilela, @cmsbuild, @davidlange6, @DickyChant, @fabiocos, @mandrenguyen, @miquork, @mmusich, @rappoccio, @srimanob, @subirsarkar can you please check and sign again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants