acts icon indicating copy to clipboard operation
acts copied to clipboard

feat: Add a fastjet plugin

Open gagnonlg opened this issue 1 year ago β€’ 8 comments

This PR adds a fastjet plugin which allows creating track-jets, as well as iterating over tracks in the core of such jets, subject to kinematic cuts.

Such a plugin would be useful, for example, to studies on using jet information as a track-density proxy before or during ambiguity solving.

This raises the question of whether or not this belongs in the scope of a tracking library, but I think it does since this can be useful e.g. in between track finding & ambiguity solving (or during ambi-solving)


Action items

  • [ ] Add this plugin to a CI build

gagnonlg avatar Sep 17 '24 12:09 gagnonlg

πŸ“Š: Physics performance monitoring for aaca10f8d03cfe05dff46bff618f8014c1afd5c9

Full contents

physmon summary

github-actions[bot] avatar Sep 17 '24 12:09 github-actions[bot]

We probably need to add this to the CI to make sure it's not instantly broken.

paulgessinger avatar Sep 17 '24 13:09 paulgessinger

We probably need to add this to the CI to make sure it's not instantly broken.

Right, is there a build in particular in which we turn on plugins?

gagnonlg avatar Sep 17 '24 13:09 gagnonlg

@gagnonlg At this point, FastJet would have to go into our dependencies build (although we'll likely switch this over to spack some time soon).

paulgessinger avatar Sep 17 '24 13:09 paulgessinger

https://github.com/acts-project/ci-dependencies/pull/38 @paulgessinger

gagnonlg avatar Sep 17 '24 14:09 gagnonlg

Hey, where are we with this one?

asalzburger avatar Oct 10 '24 18:10 asalzburger

@asalzburger the fastjet build ob macOS turned out to be a bit tricky. I haven't gotten that to work yet.

paulgessinger avatar Oct 10 '24 20:10 paulgessinger

[!IMPORTANT]

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

A new option for building the FastJet plugin has been introduced in the CMakeLists.txt files across multiple directories. This includes conditional checks for the FastJet package and the addition of a new INTERFACE library for the FastJet plugin. A new header file for managing track jets has been created, along with its implementation. Unit tests for the track jet functionality have also been added, and the documentation has been updated to reflect changes in dependencies and build options.

Changes

File Change Summary
CMakeLists.txt Added option ACTS_BUILD_PLUGIN_FASTJET and conditional package requirement for FastJet.
Plugins/CMakeLists.txt Added independent plugin entry for FastJet.
Plugins/FastJet/CMakeLists.txt Introduced INTERFACE library ActsPluginFastJet with include directories and installation rules.
Plugins/FastJet/include/Acts/Plugins/FastJet/TrackJets.hpp Added TrackJetSequence class with methods for managing track jets.
Plugins/FastJet/include/Acts/Plugins/FastJet/TrackJets.ipp Implemented makeTrackJets function and methods for TrackJetSequence.
Tests/UnitTests/Plugins/CMakeLists.txt Added directive to include FastJet plugin conditionally.
Tests/UnitTests/Plugins/FastJet/CMakeLists.txt Added library dependency for ActsPluginFastJet and registered TrackJetsTests.
Tests/UnitTests/Plugins/FastJet/TrackJetsTests.cpp Introduced unit tests for track jet functionality with various test cases.
cmake/FindFastJet.cmake Created script to locate FastJet library and handle its inclusion in the build process.
docs/getting_started.md Updated documentation for prerequisites, build options, and added new optional dependencies.

Possibly related PRs

  • #3836: Related to modifications in CMakeLists.txt for conditional build options similar to the integration of HitSelector.

Suggested labels

automerge

In the realm of code, new paths we tread,
FastJet plugin, now easily spread.
With tests and options, our build is refined,
A journey of jets, in C++ designed.
So let us rejoice, as we code and explore,
For in every change, there’s always more! ✨


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share
πŸͺ§ Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

coderabbitai[bot] avatar Nov 29 '24 13:11 coderabbitai[bot]

We now have fastjet in the dependencies package, so maybe we can now revive this one!

@pbutti said he was working on something similar. Maybe you could have a look at this one @pbutti so we can converge on something?

paulgessinger avatar Apr 29 '25 08:04 paulgessinger

@gagnonlg should we try to get this one in?

paulgessinger avatar May 19 '25 06:05 paulgessinger

@gagnonlg should we try to get this one in?

Sure. I've bumped this up on my todo list.

gagnonlg avatar May 19 '25 14:05 gagnonlg

Update on the timeline; I'll try my best to get this done by the end of the week

gagnonlg avatar May 20 '25 22:05 gagnonlg

FYI @XiaocongAi !

asalzburger avatar May 21 '25 16:05 asalzburger

Should be in better shape now @paulgessinger, lmk if you have further comments

gagnonlg avatar May 21 '25 18:05 gagnonlg

This should be good to go, @paulgessinger

gagnonlg avatar Jun 02 '25 19:06 gagnonlg

@paulgessinger I fixed the merge conflicts, should be good to go.

gagnonlg avatar Jun 25 '25 17:06 gagnonlg

:white_check_mark: Athena integration test results [71adcfd6e8185824ad4945cacd81a5bf250deeab]

:white_check_mark: All tests successful

status job report
:green_circle: report_pull_request
:green_circle: run_workflow_tests_run4_mc
:green_circle: run_workflow_tests_run2_mc
:green_circle: run_workflow_tests_run2_data
:green_circle: run_workflow_tests_run3_mc
:green_circle: run_workflow_tests_run3_data
:green_circle: test_ActsPersistifyEDM
:green_circle: test_ActsDumpGeometryIdentifiers
:green_circle: test_ActsCheckObjectCountsWorkflowHgtd
:green_circle: test_ActsCheckObjectCountsCachedWorkflow
:green_circle: test_ActsCheckObjectCountsLegacyWorkflow
:green_circle: test_ActsCheckObjectCountsWorkflow
:green_circle: test_ActsEFTrackFit
:green_circle: test_ActsPersistifySeeds
:green_circle: test_ActsBenchmarkWithSpot
:green_circle: test_ActsAnalogueClustering
:green_circle: test_ActsWorkflowHeavyIons
:green_circle: test_ActsWorkflowFastTracking
:green_circle: test_ActsWorkflowCached
:green_circle: test_ActsWorkflow
:green_circle: test_ActsValidateAmbiguityResolution
:green_circle: test_ActsValidateResolvedTracks
:green_circle: test_ActsValidateTracks
:green_circle: test_ActsValidateActsCoreSpacePoints
:green_circle: test_ActsValidateActsSpacePoints
:green_circle: test_ActsValidateSeeds
:green_circle: test_ActsValidateOrthogonalSeeds
:green_circle: test_ActsValidateClusters
:green_circle: test_ActsGx2fRefitting
:green_circle: test_ActsGSFRefitting
:green_circle: test_ActsKfRefitting
:green_circle: test_ActsExtrapolationAlgTest
:green_circle: test_ActsITkTest
:green_circle: semgrep-sast-1
:green_circle: secret-detection-0

acts-project-service avatar Jul 03 '25 14:07 acts-project-service