Repository navigation
TrackTools: shared TrackGeometry utilities for track acceptance and PID studies" - #15999
Conversation
|
@miranov25 see the formatting / licence problems reported by CI. I don't see any CMakeLists, this header cannot be installed. See how it is done for Common/Constant, which is also a header-only library. |
Address the maintainer feedback on AliceO2 PR AliceO2Group#15999. - Register a public header-only O2::TrackTools interface in Common CMake. - Propagate the required O2::CommonConstants, MathUtils, ReconstructionDataFormats, TPCBase and DetectorsBase dependencies. - Install the header under include/TrackTools/TrackGeometry.h. - Reuse the clang-format bot's formatted implementation without changing numerical algorithms; add the O2 copyright notice and include guard. - Update PyROOT tests and README to include TrackTools/TrackGeometry.h. - Correct outdated portable-test scope and build-install documentation. Exact changed-file inventory (7 paths): - Common/CMakeLists.txt - Common/TrackTools/CMakeLists.txt - Common/TrackTools/include/TrackTools/TrackGeometry.h - Common/TrackTools/README.md - Common/TrackTools/test/README_TESTS.md - Common/TrackTools/test/python/conftest.py - Common/TrackTools/include/TrackGeometry.h (removed) Validation: static checks of the unchanged formatted C++ implementation, header guard, license text, public includes, LF endings and CMake wiring. O2 configure/build and PyROOT tests must be rerun on alma2; not claimed here. No unrelated line-ending changes or numerical-tolerance modifications.
Replace the obsolete copyright notice in Common/CMakeLists.txt with the current ALICE O2 standard notice. This resolves the copyright CI finding on PR AliceO2Group#15999. Exact changed-file inventory: - Common/CMakeLists.txt (copyright notice only) No CMake logic, C++ source, physics calculations, tests, or tolerances changed. Validation: - Exact replacement checksum verified - One-file Git diff reviewed - git diff --check passed - Canonical dEdxAI TrackGeometry: 26 passed, 1 XFAIL - O2 TrackTools portable tests: 12 passed, 1 XFAIL - ROOT/ACLiC demonstration: PASS The previous physics test results refer to the unchanged TrackGeometry header.
|
Thank you for the review. We have addressed the reported TrackTools issues:
The clang-format, copyright and whitespace checks now pass. Two formatting checks remain failing, but both concern files unrelated to this PR:
|
|
@vkucera any idea why the format checker complains about the files not touched by the PR? |
|
@miranov25 note that your CMakeLists does not install the scripts, they will be available only from the source directory but not from the built module. |
Because the check scans the entire repository and runs on the head of the PR branch which is 6 years old. |
|
Hm, indeed, thanks. |
…able tests Introduce TrackGeometry as the first component of the shared TrackTools package for O2 reconstruction, O2Physics and calibration workflows. The goal is to provide consistent geometry-derived track observables for detector acceptance, tracking-quality and dE/dx PID studies. C++ implementation: - Accept complete O2 TrackPar states, including displaced tracks. - Provide analytic helix (H) and O2 transport (K0) queries at requested cylindrical radii, relevant to TPC, TRD and TOF. - Provide TPC row-geometry evaluation with H, per-stack linear (L) and O2 propagator (K) methods. - Calculate crossed, dead, guard-excluded and available TPC rows, geometrical lengths and 152-row classification masks. - Support configurable sector-edge guards and acceptance limits. - Provide reduced-primary compatibility adapters. - Use H/K as references for validating the accuracy of fast L. Portable tests: - conftest.py: ROOT/PyROOT setup for standalone O2 testing. - test_full_state_radius.py: full-track state-at-radius checks. - test_sector_rows_primary_baseline.py: TPC row baseline checks. - README_TESTS.md: portable test execution instructions. The implementation enables configurable geometrical selections to study shortened tracks and their impact on tracking and PID. This commit does not include the main README, physics figure, O2 CMake registration or the extended full-state TPC test suite. Those are handled separately. Numerical performance and remaining physics-validation issues are tracked in the project CRR.
Document TrackGeometry as the first component of the shared TrackTools package. Explain the impact of geometrically shortened TPC tracks on tracking efficiency, fake associations, dE/dx PID resolution, biases and comparisons between data, MC and reconstruction passes. Document the purpose of the three geometry methods: - L: candidate fast per-stack linear approximation. - H: analytic helix reference for precision studies. - K: O2 propagation reference. Provide practical user examples: - C++ analysis with two configurable sector-edge guard widths. - Verified interactive ROOT session using a complete 5D track. - Independent available-row selections and H/L comparisons. - Python/AliasDataFrame visualization with synthetic primary and secondary trajectories. Document the committed portable tests, execution instructions, geometry conventions and the distinction between predicted available rows and measured clusters. Include the synthetic geometry figure as supplementary QA. Detailed physics-validation findings remain in the project CRR.
Address the maintainer feedback on AliceO2 PR AliceO2Group#15999. - Register a public header-only O2::TrackTools interface in Common CMake. - Propagate the required O2::CommonConstants, MathUtils, ReconstructionDataFormats, TPCBase and DetectorsBase dependencies. - Install the header under include/TrackTools/TrackGeometry.h. - Reuse the clang-format bot's formatted implementation without changing numerical algorithms; add the O2 copyright notice and include guard. - Update PyROOT tests and README to include TrackTools/TrackGeometry.h. - Correct outdated portable-test scope and build-install documentation. Exact changed-file inventory (7 paths): - Common/CMakeLists.txt - Common/TrackTools/CMakeLists.txt - Common/TrackTools/include/TrackTools/TrackGeometry.h - Common/TrackTools/README.md - Common/TrackTools/test/README_TESTS.md - Common/TrackTools/test/python/conftest.py - Common/TrackTools/include/TrackGeometry.h (removed) Validation: static checks of the unchanged formatted C++ implementation, header guard, license text, public includes, LF endings and CMake wiring. O2 configure/build and PyROOT tests must be rerun on alma2; not claimed here. No unrelated line-ending changes or numerical-tolerance modifications.
2cf8b8b to
48ea923
Compare
|
Thanks. The branch has now been rebased onto the current |
Motivation
TrackTools is a shared collection of C++ utilities; TrackGeometry is its first component. It provides reusable geometry observables to quantify how shortened usable tracks affect tracking efficiency, fake associations, dE/dx PID resolution, biases, and comparisons between reconstruction passes, data and simulation.
The initial application is TPC sector-edge acceptance. The generic at-radius track state can also be queried at reachable TPC, TRD and TOF radii.
Implementation
TrackGeometry.h, using the complete O2TrackParstate.Files in this PR (7)
Common/TrackTools/include/TrackGeometry.h— header-only geometry implementation.Common/TrackTools/test/python/conftest.py— PyROOT test setup.Common/TrackTools/test/python/test_full_state_radius.py— full-state at-radius tests.Common/TrackTools/test/python/test_sector_rows_primary_baseline.py— TPC row and guard tests.Common/TrackTools/test/README_TESTS.md— test instructions.Common/TrackTools/README.md— C++/ROOT usage, motivation and Python example.Common/TrackTools/docs/figures/trackgeometry_synthetic_5d_available_rows.png— synthetic geometry illustration.Validation
This Draft PR requests technical review of the shared C++ interface, its geometry semantics and its proposed O2 placement. It is not a claim of completed physics validation.