oo capability at Macro level#1317
oo capability at Macro level#1317jamesjl3 wants to merge 6 commits intosPHENIX-Collaboration:masterfrom
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughAdds HI/pp jet reconstruction and QA infrastructure, introduces a pp-specific production macro, enhances production input-resolution and hard-fail behavior, and refactors calorimeter QA initialization. New files provide orchestration, configurable flags, and subsystem builders for truth/tower/track/pflow jet workflows and QA. Changes
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. Comment |
For repository maintainers, please start the CI check manually (feedback)This is an automatic message to assist manually starting CI check for this pull request, commit c57616f1a97fe9d7d44811fd1b3be9b66c94fb80. sPHENIX software maintainers: please make your input here and start the Build: Note:
Automatically generated by sPHENIX Jenkins continuous integration |
For repository maintainers, please start the CI check manually (feedback)This is an automatic message to assist manually starting CI check for this pull request, commit 017af16e15be604f24736d07639a395b17995a5f. sPHENIX software maintainers: please make your input here and start the Build: Note:
Automatically generated by sPHENIX Jenkins continuous integration |
|
Duplicating HIJetreco.C and Jet_QA.C is a real problem. The changes should be implemented in the original macros in common. From what I can tell that should be possible but I can't test it |
For repository maintainers, please start the CI check manually (feedback)This is an automatic message to assist manually starting CI check for this pull request, commit 60277c7df4dfa09ba7f926bd30304754ef116966. sPHENIX software maintainers: please make your input here and start the Build: Note:
Automatically generated by sPHENIX Jenkins continuous integration |


Modified HIJetReco to call for oo type
Modified Jet_QA.C for oo naming and trigger
Added new JetProduction macro to run over pp and oo explicitly
Motivation and Context
This PR extends jet reconstruction and quality assurance (QA) infrastructure to support gold-gold (O+O, "oo") collision type at the macro level, alongside existing proton-proton (pp) support. Previously, the jet reconstruction framework primarily focused on Au+Au heavy-ion collisions. This change enables comparative analysis across multiple collision systems within the sPHENIX experiment.
Key Changes
New Infrastructure Files:
HIJetReco.C: New modular heavy-ion jet reconstruction framework with configurable flags (Enable::HIJETS,HIJETS::is_pp,HIJETS::is_oo) to dispatch reconstruction across truth jets, tower-based jets, track-based jets, and particle-flow jets with optional background subtraction and flow modulationJet_QA.C(JetProduction/): Comprehensive jet QA implementation with configurable namespaces (JetQA,Enable) supporting inclusive and triggered QA, trigger-dependent pt thresholds, collision-type-specific defaults, and per-collision selectionsFun4All_JetSkimmedProductionYear3_pp.C: New pp-specific skimming macro with hard-coded pp collision configuration and optimized node filtering for pp dataset processingModified Production Macros:
Fun4All_JetSkimmedProductionYear3.C: AddedResolveInputFile()utility for robust input file path resolution across multiple fallback locations; switched default collision mode to pp; unconditionally invokesHIJetReco(); increased verbosity and improved file accessibility validation with hard-exit on failureJet_QA.C(common/): RefactoredEMClusterKinematicsconfiguration with explicit histogram tagging and optional histogram controlPotential Risk Areas
Collision Type Flagging: Hard-coded collision type settings (
is_pp=true,is_oo=falsein pp-specific macro) require careful macro selection; operator error in choosing the wrong macro could silently process the wrong collision type without obvious runtime indicatorsInput File Resolution: New
ResolveInputFile()adds glob-based wildcard path matching via shell command; potential edge cases include symlink handling, timing issues with wildcard matches, and filesystem performance on large run directories; hard-exit on missing files may be overly strict for grid/batch processing scenariosBackground Subtraction Behavior: Tower-based jets use background subtraction in all modes; track and particle-flow jets log warnings that background subtraction is "not implemented" but continue execution—verify this is intentional and that results are sensible in pp where background may be negligible
QA Trigger Lists: Collision-type-dependent default trigger lists are generated programmatically; changes to trigger availability may silently skip QA modules if triggers are no longer fired
Verbosity Levels: Increased verbosity (
10) in production macro may generate large log volumes on high-event-count jobs; consider performance impact in grid environmentConditional Centrality:
Centrality()is invoked conditionally (not in pp), butJetSeedCountis only registered when!pp—verify this asymmetry reflects intended physics and analysis strategyNotes on AI-Generated Content
The raw summary was generated by AI and may contain inaccuracies in technical details, such as library dependencies, exact function signatures, or logic flow. Recommend manual code review of critical sections, especially:
Possible Future Improvements
Unified Macro Entry Point: Create a collision-agnostic macro factory (e.g.,
Fun4All_JetSkimmedProduction(collision_type="pp"|"oo"|"AuAu")) to reduce duplication and human selection errorsDynamic Collision Detection: Auto-detect collision type from input filename or dataset metadata rather than relying on macro selection
Configurable Output Filtering: Externalize node-list filtering as a configuration parameter rather than hard-coding in each macro variant
Enhanced File Resolution: Improve
ResolveInputFile()with better error messaging, timeout handling, and optional "no hard-exit" mode for batch systemsTrigger Validation: Add runtime checks ensuring configured triggers are actually fired in the dataset before silently skipping QA modules