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

customiser for alpaka patatrack pixel seeding for phase2 #45508

Merged
merged 1 commit into from
Sep 13, 2024

Conversation

lguzzi
Copy link
Contributor

@lguzzi lguzzi commented Jul 19, 2024

PR description:

this PR adds alpaka patatrack pixel tracking in the simplified menu using the common alpaka process modifier.
The hltPhase2PixelTracks are redefined to be produced by CAHitNtupletAlpakaPhase2. Full tracks are produced merging initialStep (building from alpaka patatrack) + highPtTripletStep (building as in legacy).

PR

Alpaka tracking is enabled running the HLT step with --procModifiers alpaka:

cmsDriver.py step2  -s L1P2GT,HLT:75e33 --conditions auto:phase2_realistic_T33 --datatier GEN-SIM-DIGI-RAW -n 100 --eventcontent FEVTDEBUGHLT --geometry Extended2026D110 --era Phase2C17I13M9 --filein  file:step2_DIGIL1.root  --fileout file:step2_HLT.root  --nThreads 5 --procModifiers alpaka

(previous steps can be copied from runTheMatrix.py -l 29634.0 -t 4 -j 10 --ibeos --dryRun)

Tracking performance are reported here for general tracks and here for pixel tracks.
When moving from the old customiser function to process modifiers I checked that the two give identical results (when disabling HCAL alpaka reconstruction).

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 a backport

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 19, 2024

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:

  • HLTrigger/Configuration (hlt)

@Martin-Grunewald, @cmsbuild, @mmusich can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @missirol, @mmusich, @silviodonato 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

backend = cms.untracked.string('')
)
)
process.siPixelClustersSoA = cms.EDProducer('SiPixelPhase2DigiToCluster@alpaka',
Copy link
Contributor

Choose a reason for hiding this comment

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

Modules run at HLT start their label with hlt - this should now also be done for Phase-2.

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 changed the name only for the new collections added by the customiser in beb3cb2
There are several modules and sequences in the phase2 menu which do not follow the naming convention. This problem is known, it will be fixed in a future PR

process.HLTDoLocalStripSequence = cms.Sequence(
process.siPhase2Clusters
)
process.itLocalRecoSequence = cms.Sequence(
Copy link
Contributor

@Martin-Grunewald Martin-Grunewald Jul 19, 2024

Choose a reason for hiding this comment

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

Seqences run at HLT start their label with HLT - please do so also for Phase-2.

Copy link
Contributor Author

@lguzzi lguzzi Jul 19, 2024

Choose a reason for hiding this comment

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

There are several modules and sequences in the phase2 menu which do not follow the naming convention. This problem is known, it will be fixed in a future PR. This sequence in particular is already defined in https://github.com/cms-sw/cmssw/blob/0cbc4b00b1664496105480e9f561a29ba7c9a68b/HLTrigger/Configuration/python/HLT_75e33/sequences/itLocalRecoSequence_cfi.py

Copy link
Contributor

Choose a reason for hiding this comment

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

Mmmh, as long as the new instances are used only in the customization function why do you need to keep the naming used elsewhere? Aren't you replacing the sequence entirely?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

the idea was to allow other POGs to use the customiser with minimal effort. Some paths include this sequence (for example

, but it is true for other sequences as well), and using a new name for the sequence would not propagate the changes done in the customiser to these paths

process.HLT_AlpakaTrackingPath.insert(item=process.HLTTrackingV61Sequence , index=len(process.HLT_AlpakaTrackingPath.moduleNames()))
process.HLT_AlpakaTrackingPath.insert(item=process.HLTEndSequence , index=len(process.HLT_AlpakaTrackingPath.moduleNames()))

process.FEVTDEBUGHLTEventContent.outputCommands.append('keep *_siPixelClusters_*_reHLT')
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is this specific processName reHLT hardwired here and below?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

these were leftovers, removed them in 2147f3d

process.FEVTDEBUGHLTEventContent.outputCommands.append('keep *_siPixelRecHits_*_reHLT')
process.FEVTDEBUGHLTEventContent.outputCommands.append('keep *_hltPhase2PixelTracks_*_reHLT')
process.FEVTDEBUGHLTEventContent.outputCommands.append('keep *_generalTracks_*_reHLT')
process.FEVTDEBUGHLTEventContent.outputCommands.append('drop IntermediateHitDoublets_hltElePixelHitDoubletsL1Seeded__reHLT') # remove warning
Copy link
Contributor

Choose a reason for hiding this comment

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

Syntax is incorrect - I suppose L1Seeded_*_reHLT is required here and below?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

these were leftovers, removed them in 2147f3d

process.siPhase2Clusters
)
process.itLocalRecoSequence = cms.Sequence(
process.HLTDoLocalStripSequence
Copy link
Contributor

Choose a reason for hiding this comment

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

Why do you call this Strips for phase2? Something containing OT would be more appropriate

Copy link
Contributor

Choose a reason for hiding this comment

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

Also I find it confusing you call an OT local reco sequence within itLocalRecoSequence (again the naming convention is not respected).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this sequence is already defined in https://github.com/cms-sw/cmssw/blob/0cbc4b00b1664496105480e9f561a29ba7c9a68b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTDoLocalPixelSequence_cfi.py . Its redefinition here is actually not needed, so I removed it from the customiser in 208d97d. The problem of phase2 naming convention will be addressed in a future PR

Copy link
Contributor Author

Choose a reason for hiding this comment

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

the same is true for https://github.com/cms-sw/cmssw/blob/0cbc4b00b1664496105480e9f561a29ba7c9a68b/HLTrigger/Configuration/python/HLT_75e33/sequences/itLocalRecoSequence_cfi.py, which calls siPhase2Clusters as well. I did not change the structure of already existing sequences because they are called by other paths.

Copy link
Contributor

Choose a reason for hiding this comment

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

The problem of phase2 naming convention will be addressed in a future PR

@lguzzi please take note of #45500 (comment) (the renaming was kindly taken care of by @AuroraPerego). Please cross-check if you have comments.

@mmusich
Copy link
Contributor

mmusich commented Jul 19, 2024

assign heterogeneous

@cmsbuild
Copy link
Contributor

New categories assigned: heterogeneous

@fwyzard,@makortel you have been requested to review this Pull request/Issue and eventually sign? Thanks

Copy link
Contributor

Choose a reason for hiding this comment

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

I wouldn't put 141X in the file name, as it is likely to last into future releases as well.

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 in 517e816

@fwyzard
Copy link
Contributor

fwyzard commented Jul 19, 2024

I would prefer that

  • the individual modules and sequences be implemented in their own files under HLTrigger/Configuration/python/HLT_75e33/eventsetup/, HLTrigger/Configuration/python/HLT_75e33/modules/, etc.
  • the customisation be implemented using modifiers instead of customise functions, and the changes written in the same file that has the definition of the modules

@fwyzard
Copy link
Contributor

fwyzard commented Jul 19, 2024

@rovere @VourMa @SohamBhattacharya FYI

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-45508/40978

  • Found files with invalid states:

@cmsbuild
Copy link
Contributor

Pull request #45508 was updated. @Martin-Grunewald, @cmsbuild, @fwyzard, @makortel, @mmusich can you please check and sign again.

@mmusich
Copy link
Contributor

mmusich commented Jul 19, 2024

the customisation be implemented using modifiers instead of customise functions, and the changes written in the same file that has the definition of the modules

For my own understanding, what's the advantage of that (in the long term)? See also discussion tentatively started at #45427 (comment)

@fwyzard
Copy link
Contributor

fwyzard commented Jul 19, 2024

In general, keeping the customisation close to the module or sequence that it affects makes it easier to see what impact it has.

Modifiers are a way to do that.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Pull request #45508 was updated. @Martin-Grunewald, @cmsbuild, @fwyzard, @makortel, @mmusich can you please check and sign again.

@mmusich
Copy link
Contributor

mmusich commented Sep 10, 2024

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

+1

Size: This PR adds an extra 36KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-e4bd8b/41432/summary.html
COMMIT: b4e8c86
CMSSW: CMSSW_14_2_X_2024-09-09-2300/el8_amd64_gcc12
Additional Tests: HLT_P2_TIMING
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/45508/41432/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

@mmusich
Copy link
Contributor

mmusich commented Sep 12, 2024

+hlt

  • re-sign

@fwyzard
Copy link
Contributor

fwyzard commented Sep 13, 2024

+heterogeneous

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @antoniovilela, @mandrenguyen, @sextonkennedy, @rappoccio (and backports should be raised in the release meeting by the corresponding L2)

@mandrenguyen
Copy link
Contributor

+1

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.

9 participants