-
Notifications
You must be signed in to change notification settings - Fork 178
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
feat: Update athena dump reader #4011
base: main
Are you sure you want to change the base?
feat: Update athena dump reader #4011
Conversation
WalkthroughChanges to the Changes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
Examples/Io/Root/src/RootAthenaDumpReader.cpp (2)
219-221
: Commented code, preserved for future wisdom it is.Track-related code, commented out it is. Documentation of intent, clear it is. Yet, consider extracting to separate file or creating TODO issue, we should.
Would you like me to create a GitHub issue to track the potential future implementation of track-related functionality?
Also applies to: 257-257
259-262
: Multiple input files support, implemented well it is!Clear logging of each added file, helpful for debugging it is. Consider adding total file count to debug message for better oversight.
for (const auto& file : m_cfg.inputfiles) { m_inputchain->Add(file.c_str()); - ACTS_DEBUG("Adding file '" << file << "' to tree " << m_cfg.treename); + ACTS_DEBUG("Adding file '" << file << "' to tree " << m_cfg.treename + << " (" << &file - &m_cfg.inputfiles[0] + 1 << "/" + << m_cfg.inputfiles.size() << ")"); }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
Examples/Io/Root/src/RootAthenaDumpReader.cpp
(9 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: merge-sentinel
- GitHub Check: macos
🔇 Additional comments (6)
Examples/Io/Root/src/RootAthenaDumpReader.cpp (6)
67-68
: Input validation improved, it has been!Changed from single file to list of files, the validation has. More robust, this approach is!
81-86
: Conditional initialization of truth components, wise it is!Performance optimization achieved by conditionally initializing truth-related components. Memory and processing resources, saved they are!
471-486
: Particle-measurement mapping, guarded well it is!Conditional truth data processing, performance benefits it brings. Error handling for missing particles, robust it is.
501-502
: Message severity adjusted wisely, it has been!Changed from warning to debug level for zero time-over-threshold clusters. Less noise in logs, this change brings.
640-641
: Space point conversion warning, clearer it now is!Improved warning message by accounting for skipped space points in the comparison. More accurate debugging information, this provides!
724-744
: Truth data processing, optional it has become!Conditional processing of particle truth data, well structured it is. Memory efficiency improved, it has been. Clear separation of concerns, achieved it is!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
Examples/Io/Root/include/ActsExamples/Io/Root/RootAthenaDumpReader.hpp (1)
279-312
: Commented code about tracks, notice I do!Hmm, commented code in header files, a path to technical debt it is. Remove if unused, we should.
- // Those fields are not used currently - // Keep the code though, since it is annoying to write - /* - // Tracks - Int_t nTRK = 0; - Int_t TRKindex[maxTRK] = {}; //[nTRK] - // ... (other track-related fields) - */Version control system, remember the code it will. Need commented code in headers, we do not.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
Examples/Io/Root/include/ActsExamples/Io/Root/RootAthenaDumpReader.hpp
(5 hunks)Examples/Io/Root/src/RootAthenaDumpReader.cpp
(9 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- Examples/Io/Root/src/RootAthenaDumpReader.cpp
🔇 Additional comments (4)
Examples/Io/Root/include/ActsExamples/Io/Root/RootAthenaDumpReader.hpp (4)
48-48
: Support for multiple input files, added it is!A wise change this is, from single string to vector of strings. Handle larger datasets, it now can.
61-64
: Bidirectional mapping between measurements and particles, established it is!Clear and descriptive comments for both maps, you have made. Wise decision to maintain symmetry in naming convention, it was.
173-174
: New WriteDataHandle for particle measurements map, added it is!Consistent with the Config changes, this implementation is. Proper naming convention, it follows.
71-72
:❓ Verification inconclusive
Skip truth data, one can now!
Performance optimization potential, this brings. But verify impact on downstream consumers, we must.
🏁 Script executed:
#!/bin/bash # Search for code that depends on truth data ast-grep --pattern 'if (!$noTruth) { $$$ }' # Search for direct usage of truth-related fields rg -l "Part_|TTC" --type cppLength of output: 195
Downstream usage verification, you must!
Optimized skipping of truth data this change appears to enable, promising performance benefits it does. Yet, evidence shows that truth-related code persists in both the header and source files. Verify downstream consumers—especially within Examples/Io/Root/src/RootAthenaDumpReader.cpp and the header—ensure no unintended impact on truth-data handling, you must.
if (!m_cfg.noTruth) { | ||
m_inputchain->SetBranchAddress("CLparticleLink_eventIndex", | ||
&CLparticleLink_eventIndex); | ||
m_inputchain->SetBranchAddress("CLparticleLink_barcode", | ||
&CLparticleLink_barcode); | ||
m_inputchain->SetBranchAddress("CLbarcodesLinked", &CLbarcodesLinked); | ||
m_inputchain->SetBranchAddress("CLparticle_charge", &CLparticle_charge); | ||
} | ||
|
||
if (!m_cfg.noTruth) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a reason to separate these if
s?
m_inputchain->Add(file.c_str()); | ||
ACTS_DEBUG("Adding file '" << file << "' to tree " << m_cfg.treename); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: in case of an error this might be better
m_inputchain->Add(file.c_str()); | |
ACTS_DEBUG("Adding file '" << file << "' to tree " << m_cfg.treename); | |
ACTS_DEBUG("Adding file '" << file << "' to tree " << m_cfg.treename); | |
m_inputchain->Add(file.c_str()); |
Some changes I did to the Athena dump reader lately. Includes:
--- END COMMIT MESSAGE ---
Any further description goes here, @-mentions are ok here!
feat
,fix
,refactor
,docs
,chore
andbuild
types.Summary by CodeRabbit
Release Notes
New Features
Improvements