From 178a798f9df656b9ee63607b5f963be3a0fa94c1 Mon Sep 17 00:00:00 2001 From: felix-russo <72298366+felix-russo@users.noreply.github.com> Date: Mon, 6 Nov 2023 18:04:21 +0100 Subject: [PATCH 1/5] refactor!: move AMVF and IVF config explicitly (#2509) Title says it all! Might be breaking as now `config` must be moved in the parent scope. It might be better to not move the `config` and pass it as a const reference, not sure though. --- Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp | 4 ++-- Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.hpp | 4 ++-- Core/include/Acts/Vertexing/IterativeVertexFinder.hpp | 4 ++-- .../Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp | 4 ++-- .../Vertexing/src/IterativeVertexFinderAlgorithm.cpp | 2 +- .../Core/Vertexing/AdaptiveMultiVertexFinderTests.cpp | 8 ++++---- .../Core/Vertexing/AdaptiveMultiVertexFitterTests.cpp | 6 ++++-- .../Core/Vertexing/IterativeVertexFinderTests.cpp | 6 +++--- 8 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp index 3286f092e8b..ddee86676ef 100644 --- a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp +++ b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp @@ -169,7 +169,7 @@ class AdaptiveMultiVertexFinder { template < typename T = InputTrack_t, std::enable_if_t::value, int> = 0> - AdaptiveMultiVertexFinder(Config& cfg, + AdaptiveMultiVertexFinder(Config cfg, std::unique_ptr logger = getDefaultLogger("AdaptiveMultiVertexFinder", Logging::INFO)) @@ -185,7 +185,7 @@ class AdaptiveMultiVertexFinder { /// object /// @param logger The logging instance AdaptiveMultiVertexFinder( - Config& cfg, std::function func, + Config cfg, std::function func, std::unique_ptr logger = getDefaultLogger("AdaptiveMultiVertexFinder", Logging::INFO)) : m_cfg(std::move(cfg)), diff --git a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.hpp b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.hpp index 77083ca936b..e26b1e73ed2 100644 --- a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.hpp +++ b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.hpp @@ -147,7 +147,7 @@ class AdaptiveMultiVertexFitter { template < typename T = InputTrack_t, std::enable_if_t::value, int> = 0> - AdaptiveMultiVertexFitter(Config& cfg, + AdaptiveMultiVertexFitter(Config cfg, std::unique_ptr logger = getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO)) @@ -163,7 +163,7 @@ class AdaptiveMultiVertexFitter { /// object /// @param logger The logging instance AdaptiveMultiVertexFitter( - Config& cfg, std::function func, + Config cfg, std::function func, std::unique_ptr logger = getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO)) : m_cfg(std::move(cfg)), diff --git a/Core/include/Acts/Vertexing/IterativeVertexFinder.hpp b/Core/include/Acts/Vertexing/IterativeVertexFinder.hpp index db8b9716ecc..b32e3a0d1ea 100644 --- a/Core/include/Acts/Vertexing/IterativeVertexFinder.hpp +++ b/Core/include/Acts/Vertexing/IterativeVertexFinder.hpp @@ -142,7 +142,7 @@ class IterativeVertexFinder { template < typename T = InputTrack_t, std::enable_if_t::value, int> = 0> - IterativeVertexFinder(Config& cfg, + IterativeVertexFinder(Config cfg, std::unique_ptr logger = getDefaultLogger( "IterativeVertexFinder", Logging::INFO)) : m_cfg(std::move(cfg)), @@ -156,7 +156,7 @@ class IterativeVertexFinder { /// @param func Function extracting BoundTrackParameters from InputTrack_t /// object /// @param logger The logging instance - IterativeVertexFinder(Config& cfg, + IterativeVertexFinder(Config cfg, std::function func, std::unique_ptr logger = getDefaultLogger( "IterativeVertexFinder", Logging::INFO)) diff --git a/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp b/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp index 881b3f55072..c3343e2ab72 100644 --- a/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp +++ b/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp @@ -103,7 +103,7 @@ ActsExamples::AdaptiveMultiVertexFinderAlgorithm::executeAfterSeederChoice( fitterCfg.annealingTool = annealingUtility; fitterCfg.minWeight = 0.001; fitterCfg.doSmoothing = true; - Fitter fitter(fitterCfg, logger().cloneWithSuffix("AMVFitter")); + Fitter fitter(std::move(fitterCfg), logger().cloneWithSuffix("AMVFitter")); typename Finder::Config finderConfig(std::move(fitter), seedFinder, ipEstimator, std::move(linearizer), @@ -113,7 +113,7 @@ ActsExamples::AdaptiveMultiVertexFinderAlgorithm::executeAfterSeederChoice( finderConfig.maxIterations = 200; // Instantiate the finder - Finder finder(finderConfig, logger().cloneWithSuffix("AMVFinder")); + Finder finder(std::move(finderConfig), logger().cloneWithSuffix("AMVFinder")); // retrieve input tracks and convert into the expected format diff --git a/Examples/Algorithms/Vertexing/src/IterativeVertexFinderAlgorithm.cpp b/Examples/Algorithms/Vertexing/src/IterativeVertexFinderAlgorithm.cpp index add05bad76c..5b417a70ea8 100644 --- a/Examples/Algorithms/Vertexing/src/IterativeVertexFinderAlgorithm.cpp +++ b/Examples/Algorithms/Vertexing/src/IterativeVertexFinderAlgorithm.cpp @@ -88,7 +88,7 @@ ActsExamples::ProcessCode ActsExamples::IterativeVertexFinderAlgorithm::execute( std::move(seeder), ipEst); finderCfg.maxVertices = 200; finderCfg.reassignTracksAfterFirstFit = false; - Finder finder(finderCfg, logger().cloneWithSuffix("Finder")); + Finder finder(std::move(finderCfg), logger().cloneWithSuffix("Finder")); Finder::State state(*m_cfg.bField, ctx.magFieldContext); Options finderOpts(ctx.geoContext, ctx.magFieldContext); diff --git a/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFinderTests.cpp b/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFinderTests.cpp index d0f916a8693..c9014b27eca 100644 --- a/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFinderTests.cpp +++ b/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFinderTests.cpp @@ -120,7 +120,7 @@ BOOST_AUTO_TEST_CASE(adaptive_multi_vertex_finder_test) { Finder::Config finderConfig(std::move(fitter), seedFinder, ipEstimator, std::move(linearizer), bField); - Finder finder(finderConfig); + Finder finder(std::move(finderConfig)); Finder::State state; auto csvData = readTracksAndVertexCSV(toolString); @@ -278,7 +278,7 @@ BOOST_AUTO_TEST_CASE(adaptive_multi_vertex_finder_usertype_test) { std::move(linearizer), bField); Finder::State state; - Finder finder(finderConfig, extractParameters); + Finder finder(std::move(finderConfig), extractParameters); auto csvData = readTracksAndVertexCSV(toolString); auto tracks = std::get(csvData); @@ -421,7 +421,7 @@ BOOST_AUTO_TEST_CASE(adaptive_multi_vertex_finder_grid_seed_finder_test) { Finder::Config finderConfig(std::move(fitter), seedFinder, ipEst, std::move(linearizer), bField); - Finder finder(finderConfig); + Finder finder(std::move(finderConfig)); Finder::State state; auto csvData = readTracksAndVertexCSV(toolString); @@ -569,7 +569,7 @@ BOOST_AUTO_TEST_CASE( Finder::Config finderConfig(std::move(fitter), seedFinder, ipEst, std::move(linearizer), bField); - Finder finder(finderConfig); + Finder finder(std::move(finderConfig)); Finder::State state; auto csvData = readTracksAndVertexCSV(toolString); diff --git a/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFitterTests.cpp b/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFitterTests.cpp index 19ecf2fb23f..589294ca371 100644 --- a/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFitterTests.cpp +++ b/Tests/UnitTests/Core/Vertexing/AdaptiveMultiVertexFitterTests.cpp @@ -124,7 +124,8 @@ BOOST_AUTO_TEST_CASE(adaptive_multi_vertex_fitter_test) { // Test smoothing fitterCfg.doSmoothing = true; - AdaptiveMultiVertexFitter fitter(fitterCfg); + AdaptiveMultiVertexFitter fitter( + std::move(fitterCfg)); // Create positions of three vertices, two of which (1 and 2) are // close to one another and will share a common track later @@ -378,7 +379,8 @@ BOOST_AUTO_TEST_CASE(adaptive_multi_vertex_fitter_test_athena) { // Test smoothing // fitterCfg.doSmoothing = true; - AdaptiveMultiVertexFitter fitter(fitterCfg); + AdaptiveMultiVertexFitter fitter( + std::move(fitterCfg)); // Create first vector of tracks Vector3 pos1a(0.5_mm, -0.5_mm, 2.4_mm); diff --git a/Tests/UnitTests/Core/Vertexing/IterativeVertexFinderTests.cpp b/Tests/UnitTests/Core/Vertexing/IterativeVertexFinderTests.cpp index 3955c2c6369..cd1aefc2a4e 100644 --- a/Tests/UnitTests/Core/Vertexing/IterativeVertexFinderTests.cpp +++ b/Tests/UnitTests/Core/Vertexing/IterativeVertexFinderTests.cpp @@ -172,7 +172,7 @@ BOOST_AUTO_TEST_CASE(iterative_finder_test) { cfg.reassignTracksAfterFirstFit = true; - VertexFinder finder(cfg); + VertexFinder finder(std::move(cfg)); VertexFinder::State state(*bField, magFieldContext); // Vector to be filled with all tracks in current event @@ -389,7 +389,7 @@ BOOST_AUTO_TEST_CASE(iterative_finder_test_user_track_type) { ipEstimator); cfg.reassignTracksAfterFirstFit = true; - VertexFinder finder(cfg, extractParameters); + VertexFinder finder(std::move(cfg), extractParameters); VertexFinder::State state(*bField, magFieldContext); // Same for user track type tracks @@ -602,7 +602,7 @@ BOOST_AUTO_TEST_CASE(iterative_finder_test_athena_reference) { cfg.maximumChi2cutForSeeding = 49; cfg.significanceCutSeeding = 12; - VertexFinder finder(cfg); + VertexFinder finder(std::move(cfg)); VertexFinder::State state(*bField, magFieldContext); auto csvData = readTracksAndVertexCSV(toolString); From 7529e625f3629843fa3e341e9e7511e4b5785a5b Mon Sep 17 00:00:00 2001 From: Benjamin Huth <37871400+benjaminhuth@users.noreply.github.com> Date: Mon, 6 Nov 2023 23:44:39 +0100 Subject: [PATCH 2/5] fix: Missing path in setup script (#2635) The script does not setup the odd anymore because the path is missing --- Examples/Python/setup.sh.in | 1 + 1 file changed, 1 insertion(+) diff --git a/Examples/Python/setup.sh.in b/Examples/Python/setup.sh.in index 9fda6acc578..b670500e09e 100644 --- a/Examples/Python/setup.sh.in +++ b/Examples/Python/setup.sh.in @@ -25,6 +25,7 @@ export PYTHONPATH=$python_dir:$PYTHONPATH # Make ODD available if possible # This seems to be only reliable on Linux for now, not on MacOS +odd_dir=$python_dir/../thirdparty/OpenDataDetector/factory if [ -d "$odd_dir" ]; then if [[ "$(uname -s)" == "Linux" ]]; then echo "INFO: Found OpenDataDetector and set it up" From 922e6d1b56c9c0c9a01febac9e2d91e4777c7571 Mon Sep 17 00:00:00 2001 From: Paul Gessinger Date: Tue, 7 Nov 2023 08:26:50 +0100 Subject: [PATCH 3/5] docs: Restructure and update the documentation - 2023 edition (#2610) This PR rationalizes the documentation a bit. The main points are - Remove the documentation of the old standalone examples executables - Restructure the core documentation to be less sprawling - Move the figures from a central folder closer to the relevant source files - Remove the full auto API documentation in favor of a combination of hard-coded documented symbols + an auto detection mechanism to catch when we references symbols somewhere - This reduces the time it takes to build the docs drastically - Enable nitpicky generation, which will warn (and fail) if symbols are references that don't have a target. - [x] Try to auto-generate API listings only for the elements we explicitly call out by class / func roles. Blocked by: - #2616 - #2617 - #2624 --- .github/workflows/docs.yml | 38 +- Core/include/Acts/Definitions/Algebra.hpp | 6 - Core/include/Acts/Propagator/AbortList.hpp | 7 +- Core/include/Acts/Propagator/ActionList.hpp | 7 +- .../Acts/Propagator/ConstrainedStep.hpp | 4 - Core/include/Acts/Surfaces/ConeBounds.hpp | 2 +- Core/include/Acts/Surfaces/CylinderBounds.hpp | 1 + .../include/Acts/Surfaces/CylinderSurface.hpp | 2 +- Core/include/Acts/Surfaces/DiamondBounds.hpp | 1 + Core/include/Acts/Surfaces/DiscBounds.hpp | 2 + Core/include/Acts/Surfaces/DiscSurface.hpp | 2 +- Core/include/Acts/Surfaces/EllipseBounds.hpp | 2 + Core/include/Acts/Surfaces/LineSurface.hpp | 4 +- Core/include/Acts/Surfaces/PerigeeSurface.hpp | 2 +- Core/include/Acts/Surfaces/PlaneSurface.hpp | 6 +- .../include/Acts/Surfaces/RectangleBounds.hpp | 2 + Core/include/Acts/Surfaces/StrawSurface.hpp | 6 +- .../include/Acts/Surfaces/TrapezoidBounds.hpp | 2 +- .../Plugins/Geant4/Geant4DetectorElement.hpp | 5 +- .../Geant4/Geant4DetectorSurfaceFactory.hpp | 6 +- docs/CMakeLists.txt | 79 +--- docs/Doxyfile | 20 +- docs/_extensions/lazy_autodoc.py | 179 +++++++++ docs/conf.py | 57 ++- .../figures/physmon/physmon_artifact.png | Bin .../figures/physmon/physmon_checks.png | Bin .../figures/physmon/physmon_report.png | Bin .../figures/physmon/physmon_run.png | Bin .../figures/release/milestone_drop.png | Bin .../figures/release/milestones.png | Bin .../figures/release/next_milestone.png | Bin .../figures/release/select_all_closed.png | Bin docs/contribution/physmon.md | 8 +- docs/contribution/release.md | 8 +- docs/core/clustering.md | 6 - docs/core/core.rst | 26 +- docs/core/eventdata.md | 134 +------ docs/{ => core}/figures/bfield/field_cell.svg | 0 docs/{ => core}/figures/bfield/quiver.png | Bin .../figures/material}/MaterialAssignment.jpeg | Bin .../figures/material}/MaterialAveraging.jpeg | Bin docs/core/geometry.md | 354 ------------------ .../geometry/figures}/CylinderBounds.png | Bin .../geometry/figures}/CylinderLayer.png | Bin .../figures}/CylinderVolumeBounds.png | Bin .../geometry/figures}/DetectorElement.png | Bin .../geometry/figures}/DirectPortal.png | Bin .../geometry/figures}/DiscBounds.png | Bin .../geometry/figures}/DiscLayerAB.png | Bin .../geometry/figures}/DiscLayerEB.png | Bin .../geometry/figures}/EndcapGrid.png | Bin .../geometry/figures}/GlueingABC.png | Bin .../geometry/figures}/GlueingBC.png | Bin .../geometry/figures}/LayerArray.png | Bin .../geometry/figures}/NavigationABC.png | Bin .../geometry/figures}/ODD_Detector.png | Bin .../geometry/figures}/PlaneBounds.png | Bin .../geometry/figures}/SharedPortal.png | Bin .../geometry/figures}/VolumeBounds.png | Bin docs/core/geometry/geometry_id.md | 19 + docs/core/geometry/index.md | 24 ++ docs/core/geometry/layerless/building.md | 18 + .../layerless/layerless.md} | 24 +- docs/core/geometry/legacy/building.md | 86 +++++ docs/core/geometry/legacy/layers.md | 34 ++ docs/core/geometry/legacy/legacy.md | 14 + docs/core/geometry/legacy/volumes.md | 24 ++ docs/core/geometry/material.md | 42 +++ docs/core/geometry/surfaces.md | 111 ++++++ docs/core/howto/index.md | 6 + docs/core/howto/material_mapping.md | 8 + docs/core/magnetic_field.md | 9 +- docs/core/material.md | 20 + docs/core/material.rst | 79 ---- .../misc}/figures/AxisBoundaryTypes.svg | 0 docs/core/{utilities => misc}/grid_axis.md | 2 +- docs/core/misc/index.md | 7 + docs/core/{ => misc}/logging.md | 39 +- docs/core/propagation.md | 21 +- .../figures/gsf_bethe_heitler_approx.svg | 0 .../reconstruction}/figures/gsf_overview.svg | 0 docs/core/reconstruction/index.md | 9 + .../figures/seeding/3Dcoordinates.svg | 0 .../figures/seeding/impactParameter.svg | 0 .../figures/seeding/r-zCoordinates.svg | 0 .../figures/seeding/tripletsFormation.svg | 0 .../figures/seeding/x-yCoordinates.svg | 0 .../pattern_recognition.md | 7 + .../pattern_recognition}/seeding.md | 41 +- .../pattern_recognition}/track_finding.md | 9 +- .../preprocessing/clustering.md | 6 + .../preprocessing/preprocessing.md | 6 + .../preprocessing}/spacepoint_formation.md | 4 +- .../{ => reconstruction}/track_fitting.md | 28 +- docs/core/reconstruction/vertexing.md | 6 + docs/core/vertexing.md | 6 - .../{visualization.rst => 3d.md} | 37 +- .../visualization/figures}/AngularError.png | Bin .../visualization/figures}/CartesianError.png | Bin .../visualization/figures}/CylinderLayer.png | Bin .../visualization/figures}/Parameters.png | Bin docs/core/visualization/index.md | 7 + docs/core/visualization/svg.md | 7 + docs/examples/alignment.md | 4 + docs/examples/digizier_config.md | 1 - docs/examples/examples.rst | 6 +- .../{ => examples}/howto/add_new_algorithm.md | 125 ++++--- docs/examples/{ => howto}/analysis_apps.rst | 8 +- ...ation_config.md => digitization_config.md} | 0 .../analysis_apps}/aa_mc_stacked_x0.gif | Bin .../figures/analysis_apps}/aa_rp_layers.png | Bin .../howto/figures/analysis_apps}/aa_ts_d0.png | Bin .../figures/analysis_apps}/aa_ts_nhits.png | Bin .../ActsMaterialMappingAutoTuning.png | Bin .../materialMapping/approach_layers.png | Bin .../figures/materialMapping/boundaries.png | Bin .../materialMapping/layers_for_volume_17.png | Bin .../materialMapping/volumes_and_layers.png | Bin docs/examples/howto/howto.md | 26 +- .../howto/material_mapping.rst} | 21 +- docs/examples/howto/run_alignment.rst | 56 --- .../howto/run_ckf_auto_tuning.rst | 0 docs/examples/howto/run_ckf_tracking.rst | 60 --- docs/examples/howto/run_fatras.rst | 174 --------- docs/examples/howto/run_seeding.rst | 73 ---- docs/examples/howto/run_sycl_seed_finding.rst | 111 ------ docs/examples/howto/run_truth_tracking.rst | 68 ---- .../examples/howto/setup_and_run_vertexing.md | 137 ------- docs/examples/material_mapping.md | 1 - docs/fatras/fatras.md | 7 + docs/figures/CuboidVolumeBounds_decomp.gif | Bin 6826 -> 0 bytes docs/figures/CylinderVolumeBounds_decomp.gif | Bin 7317 -> 0 bytes .../DoubleTrapezoidVolumeBounds_decom.gif | Bin 40894 -> 0 bytes docs/figures/SubtractedPlaneBounds.gif | Bin 22485 -> 0 bytes docs/figures/TrapezoidVolumeBounds_decom.gif | Bin 7468 -> 0 bytes docs/figures/VolumeShapes.gif | Bin 9070 -> 0 bytes docs/figures/{ => doxygen}/ConeBounds.gif | Bin docs/figures/{ => doxygen}/CylinderBounds.gif | Bin .../figures/{ => doxygen}/CylinderSurface.png | Bin docs/figures/{ => doxygen}/DiamondBounds.svg | 0 docs/figures/{ => doxygen}/DiscBounds.gif | Bin docs/figures/{ => doxygen}/DiscSurface.png | Bin docs/figures/{ => doxygen}/EllipseBounds.png | Bin docs/figures/{ => doxygen}/LineSurface.png | Bin docs/figures/{ => doxygen}/PlaneSurface.png | Bin .../RectangleBounds.gif} | Bin .../{ => doxygen}/RotatedTrapezoidBounds.gif | Bin .../{ => doxygen}/SignOfDriftCircleD0.gif | Bin .../figures/{ => doxygen}/TrapezoidBounds.gif | Bin docs/getting_started.md | 35 +- docs/howto/howto.md | 12 - docs/howto/material_mapping_and_validation.md | 2 - docs/howto/produce_digitizer_config.md | 1 - .../run_material_mapping_auto_tuning.rst | 90 ----- docs/index.rst | 15 +- docs/known-warnings.txt | 10 +- docs/plugins/autodiff.md | 4 + docs/plugins/dd4hep.md | 10 +- .../DD4hepPlugin_DetElementStructure.jpg | Bin .../figures}/sycl/count_duplets.png | Bin .../figures}/sycl/duplet_search_matrix.png | Bin .../figures}/sycl/flat_matrix.png | Bin .../figures}/sycl/middle_duplet_indices.png | Bin .../figures}/sycl/prefix_sum_array.png | Bin .../figures}/tgeo/TGeoArb8_PlaneSurface.png | Bin .../figures}/tgeo/TGeoBBox_PlaneSurface.png | Bin .../figures}/tgeo/TGeoTrd1_PlaneSurface.png | Bin .../tgeo/TGeoTrd2_PlaneSurface_xz.png | Bin .../tgeo/TGeoTrd2_PlaneSurface_yz.png | Bin .../tgeo/TGeoTube_CylinderSurface.png | Bin .../figures}/tgeo/TGeoTube_DiscSurface.png | Bin docs/plugins/tgeo.rst | 12 +- docs/requirements.txt | 2 +- docs/tracking.md | 6 +- 174 files changed, 1072 insertions(+), 1743 deletions(-) create mode 100644 docs/_extensions/lazy_autodoc.py rename docs/{ => contribution}/figures/physmon/physmon_artifact.png (100%) rename docs/{ => contribution}/figures/physmon/physmon_checks.png (100%) rename docs/{ => contribution}/figures/physmon/physmon_report.png (100%) rename docs/{ => contribution}/figures/physmon/physmon_run.png (100%) rename docs/{ => contribution}/figures/release/milestone_drop.png (100%) rename docs/{ => contribution}/figures/release/milestones.png (100%) rename docs/{ => contribution}/figures/release/next_milestone.png (100%) rename docs/{ => contribution}/figures/release/select_all_closed.png (100%) delete mode 100644 docs/core/clustering.md rename docs/{ => core}/figures/bfield/field_cell.svg (100%) rename docs/{ => core}/figures/bfield/quiver.png (100%) rename docs/{figures => core/figures/material}/MaterialAssignment.jpeg (100%) rename docs/{figures => core/figures/material}/MaterialAveraging.jpeg (100%) delete mode 100644 docs/core/geometry.md rename docs/{figures/geometry => core/geometry/figures}/CylinderBounds.png (100%) rename docs/{figures/geometry => core/geometry/figures}/CylinderLayer.png (100%) rename docs/{figures/geometry => core/geometry/figures}/CylinderVolumeBounds.png (100%) rename docs/{figures/geometry => core/geometry/figures}/DetectorElement.png (100%) rename docs/{figures/geometry => core/geometry/figures}/DirectPortal.png (100%) rename docs/{figures/geometry => core/geometry/figures}/DiscBounds.png (100%) rename docs/{figures/geometry => core/geometry/figures}/DiscLayerAB.png (100%) rename docs/{figures/geometry => core/geometry/figures}/DiscLayerEB.png (100%) rename docs/{figures/geometry => core/geometry/figures}/EndcapGrid.png (100%) rename docs/{figures/geometry => core/geometry/figures}/GlueingABC.png (100%) rename docs/{figures/geometry => core/geometry/figures}/GlueingBC.png (100%) rename docs/{figures/geometry => core/geometry/figures}/LayerArray.png (100%) rename docs/{figures/geometry => core/geometry/figures}/NavigationABC.png (100%) rename docs/{figures/geometry => core/geometry/figures}/ODD_Detector.png (100%) rename docs/{figures/geometry => core/geometry/figures}/PlaneBounds.png (100%) rename docs/{figures/geometry => core/geometry/figures}/SharedPortal.png (100%) rename docs/{figures/geometry => core/geometry/figures}/VolumeBounds.png (100%) create mode 100644 docs/core/geometry/geometry_id.md create mode 100644 docs/core/geometry/index.md create mode 100644 docs/core/geometry/layerless/building.md rename docs/core/{experimental_geometry.md => geometry/layerless/layerless.md} (91%) create mode 100644 docs/core/geometry/legacy/building.md create mode 100644 docs/core/geometry/legacy/layers.md create mode 100644 docs/core/geometry/legacy/legacy.md create mode 100644 docs/core/geometry/legacy/volumes.md create mode 100644 docs/core/geometry/material.md create mode 100644 docs/core/geometry/surfaces.md create mode 100644 docs/core/howto/index.md create mode 100644 docs/core/howto/material_mapping.md create mode 100644 docs/core/material.md delete mode 100644 docs/core/material.rst rename docs/{ => core/misc}/figures/AxisBoundaryTypes.svg (100%) rename docs/core/{utilities => misc}/grid_axis.md (98%) create mode 100644 docs/core/misc/index.md rename docs/core/{ => misc}/logging.md (83%) rename docs/{ => core/reconstruction}/figures/gsf_bethe_heitler_approx.svg (100%) rename docs/{ => core/reconstruction}/figures/gsf_overview.svg (100%) create mode 100644 docs/core/reconstruction/index.md rename docs/{ => core/reconstruction/pattern_recognition}/figures/seeding/3Dcoordinates.svg (100%) rename docs/{ => core/reconstruction/pattern_recognition}/figures/seeding/impactParameter.svg (100%) rename docs/{ => core/reconstruction/pattern_recognition}/figures/seeding/r-zCoordinates.svg (100%) rename docs/{ => core/reconstruction/pattern_recognition}/figures/seeding/tripletsFormation.svg (100%) rename docs/{ => core/reconstruction/pattern_recognition}/figures/seeding/x-yCoordinates.svg (100%) create mode 100644 docs/core/reconstruction/pattern_recognition/pattern_recognition.md rename docs/core/{ => reconstruction/pattern_recognition}/seeding.md (87%) rename docs/core/{ => reconstruction/pattern_recognition}/track_finding.md (67%) create mode 100644 docs/core/reconstruction/preprocessing/clustering.md create mode 100644 docs/core/reconstruction/preprocessing/preprocessing.md rename docs/core/{ => reconstruction/preprocessing}/spacepoint_formation.md (53%) rename docs/core/{ => reconstruction}/track_fitting.md (83%) create mode 100644 docs/core/reconstruction/vertexing.md delete mode 100644 docs/core/vertexing.md rename docs/core/visualization/{visualization.rst => 3d.md} (79%) rename docs/{figures/visualization => core/visualization/figures}/AngularError.png (100%) rename docs/{figures/visualization => core/visualization/figures}/CartesianError.png (100%) rename docs/{figures/visualization => core/visualization/figures}/CylinderLayer.png (100%) rename docs/{figures/visualization => core/visualization/figures}/Parameters.png (100%) create mode 100644 docs/core/visualization/index.md create mode 100644 docs/core/visualization/svg.md delete mode 100644 docs/examples/digizier_config.md rename docs/{ => examples}/howto/add_new_algorithm.md (56%) rename docs/examples/{ => howto}/analysis_apps.rst (98%) rename docs/examples/howto/{smearing_digitization_config.md => digitization_config.md} (100%) rename docs/{figures/examples => examples/howto/figures/analysis_apps}/aa_mc_stacked_x0.gif (100%) rename docs/{figures/examples => examples/howto/figures/analysis_apps}/aa_rp_layers.png (100%) rename docs/{figures/examples => examples/howto/figures/analysis_apps}/aa_ts_d0.png (100%) rename docs/{figures/examples => examples/howto/figures/analysis_apps}/aa_ts_nhits.png (100%) rename docs/{ => examples/howto}/figures/materialMapping/ActsMaterialMappingAutoTuning.png (100%) rename docs/{ => examples/howto}/figures/materialMapping/approach_layers.png (100%) rename docs/{ => examples/howto}/figures/materialMapping/boundaries.png (100%) rename docs/{ => examples/howto}/figures/materialMapping/layers_for_volume_17.png (100%) rename docs/{ => examples/howto}/figures/materialMapping/volumes_and_layers.png (100%) rename docs/{howto/run_material_mapping.rst => examples/howto/material_mapping.rst} (96%) delete mode 100644 docs/examples/howto/run_alignment.rst rename docs/{ => examples}/howto/run_ckf_auto_tuning.rst (100%) delete mode 100644 docs/examples/howto/run_ckf_tracking.rst delete mode 100644 docs/examples/howto/run_fatras.rst delete mode 100644 docs/examples/howto/run_seeding.rst delete mode 100644 docs/examples/howto/run_sycl_seed_finding.rst delete mode 100644 docs/examples/howto/run_truth_tracking.rst delete mode 100644 docs/examples/howto/setup_and_run_vertexing.md delete mode 100644 docs/examples/material_mapping.md delete mode 100755 docs/figures/CuboidVolumeBounds_decomp.gif delete mode 100755 docs/figures/CylinderVolumeBounds_decomp.gif delete mode 100755 docs/figures/DoubleTrapezoidVolumeBounds_decom.gif delete mode 100644 docs/figures/SubtractedPlaneBounds.gif delete mode 100755 docs/figures/TrapezoidVolumeBounds_decom.gif delete mode 100755 docs/figures/VolumeShapes.gif rename docs/figures/{ => doxygen}/ConeBounds.gif (100%) rename docs/figures/{ => doxygen}/CylinderBounds.gif (100%) rename docs/figures/{ => doxygen}/CylinderSurface.png (100%) rename docs/figures/{ => doxygen}/DiamondBounds.svg (100%) rename docs/figures/{ => doxygen}/DiscBounds.gif (100%) rename docs/figures/{ => doxygen}/DiscSurface.png (100%) rename docs/figures/{ => doxygen}/EllipseBounds.png (100%) rename docs/figures/{ => doxygen}/LineSurface.png (100%) rename docs/figures/{ => doxygen}/PlaneSurface.png (100%) rename docs/figures/{RectangularBounds.gif => doxygen/RectangleBounds.gif} (100%) rename docs/figures/{ => doxygen}/RotatedTrapezoidBounds.gif (100%) rename docs/figures/{ => doxygen}/SignOfDriftCircleD0.gif (100%) rename docs/figures/{ => doxygen}/TrapezoidBounds.gif (100%) delete mode 100644 docs/howto/howto.md delete mode 100644 docs/howto/material_mapping_and_validation.md delete mode 100644 docs/howto/produce_digitizer_config.md delete mode 100644 docs/howto/run_material_mapping_auto_tuning.rst rename docs/{ => plugins}/figures/DD4hepPlugin_DetElementStructure.jpg (100%) rename docs/{figures/plugins => plugins/figures}/sycl/count_duplets.png (100%) rename docs/{figures/plugins => plugins/figures}/sycl/duplet_search_matrix.png (100%) rename docs/{figures/plugins => plugins/figures}/sycl/flat_matrix.png (100%) rename docs/{figures/plugins => plugins/figures}/sycl/middle_duplet_indices.png (100%) rename docs/{figures/plugins => plugins/figures}/sycl/prefix_sum_array.png (100%) rename docs/{figures/plugins => plugins/figures}/tgeo/TGeoArb8_PlaneSurface.png (100%) rename docs/{figures/plugins => plugins/figures}/tgeo/TGeoBBox_PlaneSurface.png (100%) rename docs/{figures/plugins => plugins/figures}/tgeo/TGeoTrd1_PlaneSurface.png (100%) rename docs/{figures/plugins => plugins/figures}/tgeo/TGeoTrd2_PlaneSurface_xz.png (100%) rename docs/{figures/plugins => plugins/figures}/tgeo/TGeoTrd2_PlaneSurface_yz.png (100%) rename docs/{figures/plugins => plugins/figures}/tgeo/TGeoTube_CylinderSurface.png (100%) rename docs/{figures/plugins => plugins/figures}/tgeo/TGeoTube_DiscSurface.png (100%) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8a087e2f329..d09fc3c8432 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -15,21 +15,43 @@ concurrency: jobs: docs: runs-on: ubuntu-latest - container: ghcr.io/acts-project/ubuntu2204:v41 env: DOXYGEN_WARN_AS_ERROR: FAIL_ON_WARNINGS + DOXYGEN_VERSION: 1.9.4 steps: - uses: actions/checkout@v3 + + - name: Cache doxygen + id: cache-doxygen + uses: actions/cache@v3 + with: + path: /usr/local/bin/doxygen + key: doxygen_${{ env.DOXYGEN_VERSION }} + + - name: Install doxygen + if: steps.cache-doxygen.outputs.cache-hit != 'true' + run: > + curl -SL https://sourceforge.net/projects/doxygen/files/rel-${{ env.DOXYGEN_VERSION }}/doxygen-${{ env.DOXYGEN_VERSION }}.linux.bin.tar.gz/download | tar -xzC . + && mv doxygen-${{ env.DOXYGEN_VERSION }}/bin/doxygen /usr/local/bin/doxygen + - name: Install dependencies run: > - curl -SL https://sourceforge.net/projects/doxygen/files/rel-1.9.4/doxygen-1.9.4.linux.bin.tar.gz/download | tar -xzC . - && mv doxygen-1.9.4/bin/doxygen /usr/local/bin/doxygen - && pip3 install --upgrade pip + pip3 install --upgrade pip && pip install -r docs/requirements.txt - - name: Configure - run: cmake -B build -S . -GNinja -DACTS_BUILD_DOCS=ON - - name: Build - run: cmake --build build --target docs-with-api + + - name: Build documentation + run: > + cd docs + && sphinx-build + -b html + -d _build/doctrees/ + -j auto + -W + --keep-going + -t run_doxygen + -b linkcheck + . _build/html/ + - uses: actions/upload-artifact@v3 with: name: acts-docs diff --git a/Core/include/Acts/Definitions/Algebra.hpp b/Core/include/Acts/Definitions/Algebra.hpp index b7dc446489a..a8b54653d23 100644 --- a/Core/include/Acts/Definitions/Algebra.hpp +++ b/Core/include/Acts/Definitions/Algebra.hpp @@ -42,7 +42,6 @@ namespace Acts { /// no dynamic-sized symmetric matrix type is defined. Use the /// `ActsDynamicMatrix` instead. /// -/// @{ /// Common scalar (floating point type used for the default algebra types. /// @@ -67,15 +66,12 @@ using ActsDynamicVector = Eigen::Matrix; using ActsDynamicMatrix = Eigen::Matrix; -/// @} - /// @defgroup coordinates-types Fixed-size vector/matrix types for coordinates /// /// These predefined types should always be used when handling coordinate /// vectors in different coordinate systems, i.e. on surfaces (2d), spatial /// position (3d), or space-time (4d). /// -/// @{ // coordinate vectors using Vector2 = ActsVector<2>; @@ -104,6 +100,4 @@ using AngleAxis3 = Eigen::AngleAxis; using Transform2 = Eigen::Transform; using Transform3 = Eigen::Transform; -/// @} - } // namespace Acts diff --git a/Core/include/Acts/Propagator/AbortList.hpp b/Core/include/Acts/Propagator/AbortList.hpp index 01e6ebb5d17..ff2814ced62 100644 --- a/Core/include/Acts/Propagator/AbortList.hpp +++ b/Core/include/Acts/Propagator/AbortList.hpp @@ -20,8 +20,6 @@ namespace hana = boost::hana; namespace Acts { -/// @cond - /// @brief AbortList object to be used in the propagation /// /// The abort list is a list of structs or classes that @@ -39,10 +37,12 @@ struct AbortList : public detail::Extendable { using detail::Extendable::tuple; public: + /// @cond // This uses the type collector using result_type = typename decltype(hana::unpack( detail::type_collector_t, hana::template_))::type; + /// @endcond using detail::Extendable::get; @@ -103,6 +103,7 @@ struct AbortList : public detail::Extendable { /// @param [in] stepper Stepper used for the propagation /// @param [in] navigator Navigator used for the propagation /// @param [in] result is the result object from a certain action + /// @param [in] args are the arguments to be passed to the aborters template bool operator()(propagator_state_t& state, const stepper_t& stepper, @@ -114,6 +115,4 @@ struct AbortList : public detail::Extendable { } }; -/// @endcond - } // namespace Acts diff --git a/Core/include/Acts/Propagator/ActionList.hpp b/Core/include/Acts/Propagator/ActionList.hpp index 6ada9b76fb3..6118aaa66a3 100644 --- a/Core/include/Acts/Propagator/ActionList.hpp +++ b/Core/include/Acts/Propagator/ActionList.hpp @@ -21,8 +21,6 @@ namespace hana = boost::hana; namespace Acts { -/// @cond - /// @brief ActionList implementation to be used with the propagator /// /// This is the ActionList struct that is used in the propagator @@ -37,11 +35,13 @@ struct ActionList : public detail::Extendable { using detail::Extendable::tuple; public: + /// @cond // This uses the type collector and unpacks using the `R` meta function template