{"id":13574728,"url":"https://github.com/acts-project/traccc","last_synced_at":"2026-04-13T09:01:19.789Z","repository":{"id":37791318,"uuid":"333710938","full_name":"acts-project/traccc","owner":"acts-project","description":"Demonstrator tracking chain on accelerators","archived":false,"fork":false,"pushed_at":"2026-03-31T08:57:30.000Z","size":6784,"stargazers_count":41,"open_issues_count":77,"forks_count":67,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-31T10:30:21.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acts-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-01-28T09:36:32.000Z","updated_at":"2026-03-31T08:57:36.000Z","dependencies_parsed_at":"2023-02-16T19:01:21.527Z","dependency_job_id":"0418dba3-8aa3-4930-a086-3efcf0d01e91","html_url":"https://github.com/acts-project/traccc","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/acts-project/traccc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acts-project%2Ftraccc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acts-project%2Ftraccc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acts-project%2Ftraccc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acts-project%2Ftraccc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acts-project","download_url":"https://codeload.github.com/acts-project/traccc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acts-project%2Ftraccc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31746113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T06:26:45.479Z","status":"ssl_error","status_checked_at":"2026-04-13T06:26:44.645Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:00:54.179Z","updated_at":"2026-04-13T09:01:19.782Z","avatar_url":"https://github.com/acts-project.png","language":"C++","funding_links":[],"categories":["Table of Contents","Projects"],"sub_categories":["Mathematics and Science","HPC"],"readme":"# traccc\n\nDemonstrator tracking chain for accelerators.\n\n## Features\n\n| Category                  | Algorithms             | CPU | CUDA | SYCL | Alpaka |\n| ------------------------- | ---------------------- | --- | ---- | ---- | ------ |\n| **Clusterization**        | CCL / FastSv / etc.    | ✅  | ✅   | ✅   | ✅     |\n|                           | Measurement creation   | ✅  | ✅   | ✅   | ✅     |\n| **Seeding**               | Spacepoint formation   | ✅  | ✅   | ✅   | ✅     |\n|                           | Spacepoint binning     | ✅  | ✅   | ✅   | ✅     |\n|                           | Seed finding           | ✅  | ✅   | ✅   | ✅     |\n|                           | Track param estimation | ✅  | ✅   | ✅   | ✅     |\n| **Track finding**         | Combinatorial KF       | ✅  | ✅   | ✅   | ✅     |\n| **Ambiguity resolution**  | Greedy resolver        | ✅  | 🟡   | ⚪   | ⚪     |\n| **Track fitting**         | KF                     | ✅  | ✅   | 🟡   | ✅     |\n\n✅: exists, 🟡: work started, ⚪: work not started yet\n\nThe relations between datatypes and algorithms is given in the (approximately\ncommutative) diagram shown below. Black lines indicate CPU algorithms, green\nlines indicate CUDA algorithms, blue lines indicate SYCL algorithms. Solid algorithms are ready for use, dashed\nalgorithms are in development or future goals. Data types for different\nheterogeneous platforms are contracted for legibility, and identities are\nhidden.\n\n```mermaid\nflowchart LR\n    subgraph clusterization [\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/clusterization/'\u003eClusterization\u003c/a\u003e]\n        direction TB\n        cell(Cells);\n        cluster(Clusters);\n        meas(Measurements);\n    end\n\n    subgraph trkfinding [\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/finding/'\u003eTrack Finding\u003c/a\u003e]\n        sp(Spacepoints);\n        bin(Spacepoint Grid);\n        seed(Seeds);\n        ptrack(Prototracks);\n    end\n\n    subgraph trkfitting [\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/fitting/'\u003eTrack Fitting\u003c/a\u003e]\n        trackc(Track Candidates)\n        tracks(Track States);\n    end\n\n    click cell href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/silicon_cell_collection.hpp\";\n    click cluster href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/silicon_cluster_collection.hpp\";\n    click meas href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/measurement.hpp\";\n    click sp href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/spacepoint.hpp\";\n    click bin href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/seeding/detail/spacepoint_grid.hpp\";\n    click seed href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/seed.hpp\";\n    click ptrack href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/track_parameters.hpp\";\n    click trackc href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/track_candidate.hpp\";\n    click tracks href \"https://github.com/acts-project/traccc/blob/main/core/include/traccc/edm/track_state.hpp\";\n\n    %% Host CCL algorithm\n    cell --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/clusterization/sparse_ccl_algorithm.hpp'\u003eSparse CCL\u003c/a\u003e| cluster;\n    linkStyle 0 stroke: black;\n\n    %% Host measurement creation\n    cluster --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/clusterization/measurement_creation_algorithm.hpp'\u003eMeas. Creat.\u003c/a\u003e| meas;\n    linkStyle 1 stroke: black;\n\n    %% SYCL clusterization\n    cell --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/sycl/include/traccc/sycl/clusterization/clusterization_algorithm.hpp'\u003eClustering\u003c/a\u003e| meas;\n    linkStyle 2 stroke: blue;\n\n    %% CUDA clusterization\n    cell --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/cuda/include/traccc/cuda/clusterization/clusterization_algorithm.hpp'\u003eClustering\u003c/a\u003e| meas;\n    linkStyle 3 stroke: green;\n\n    %% Alpaka clusterization\n    cell --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/alpaka/include/traccc/alpaka/clusterization/clusterization_algorithm.hpp'\u003eClustering\u003c/a\u003e| meas;\n    linkStyle 4 stroke: orange;\n\n    %% Host spacepoint formation\n    meas --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/seeding/silicon_pixel_spacepoint_formation_algorithm.hpp'\u003eSP Form.\u003c/a\u003e| sp;\n    linkStyle 5 stroke: black;\n\n    %% SYCL spacepoint formation\n    meas --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/sycl/include/traccc/sycl/seeding/silicon_pixel_spacepoint_formation_algorithm.hpp'\u003eSP Form.\u003c/a\u003e| sp;\n    linkStyle 6 stroke: blue;\n\n    %% CUDA spacepoint formation\n    meas --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/cuda/include/traccc/cuda/seeding/spacepoint_formation_algorithm.hpp'\u003eSP Form.\u003c/a\u003e| sp;\n    linkStyle 7 stroke: green;\n\n    %% Alpaka spacepoint formation\n    meas --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/alpaka/include/traccc/alpaka/seeding/spacepoint_formation_algorithm.hpp'\u003eSP Form.\u003c/a\u003e| sp;\n    linkStyle 8 stroke: orange;\n\n    %% Host spacepoint binning\n    sp --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/seeding/spacepoint_binning.hpp'\u003eSP Binning\u003c/a\u003e| bin;\n    linkStyle 9 stroke: black;\n\n    %% SYCL triplet seeding\n    sp --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/sycl/include/traccc/sycl/seeding/triplet_seeding_algorithm.hpp'\u003eTriplet Seeding\u003c/a\u003e| seed;\n    linkStyle 10 stroke: blue;\n\n    %% CUDA triplet seeding\n    sp --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/cuda/include/traccc/cuda/seeding/triplet_seeding_algorithm.hpp'\u003eTriplet Seeding\u003c/a\u003e| seed;\n    linkStyle 11 stroke: green;\n\n    %% Alpaka triplet seeding\n    sp --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/alpaka/include/traccc/alpaka/seeding/triplet_seeding_algorithm.hpp'\u003eTriplet Seeding\u003c/a\u003e| seed;\n    linkStyle 12 stroke: orange;\n\n    %% Host seeding\n    bin --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/seeding/seed_finding.hpp'\u003eSeeding\u003c/a\u003e| seed;\n    linkStyle 13 stroke: black;\n\n    %% Host param est.\n    seed --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/seeding/track_params_estimation.hpp'\u003eParam. Est.\u003c/a\u003e| ptrack;\n    linkStyle 14 stroke: black;\n\n    %% SYCL param est.\n    seed --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/sycl/include/traccc/sycl/seeding/track_params_estimation.hpp'\u003eParam. Est.\u003c/a\u003e| ptrack;\n    linkStyle 15 stroke: blue;\n\n    %% CUDA param est.\n    seed --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/cuda/include/traccc/cuda/seeding/track_params_estimation.hpp'\u003eParam. Est.\u003c/a\u003e| ptrack;\n    linkStyle 16 stroke: green;\n\n    %% Alpaka param est.\n    seed --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/alpaka/include/traccc/alpaka/seeding/track_params_estimation.hpp'\u003eParam. Est.\u003c/a\u003e| ptrack;\n    linkStyle 17 stroke: orange;\n\n    %% Host CKF\n    ptrack --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/finding/combinatorial_kalman_filter_algorithm.hpp'\u003eCKF\u003c/a\u003e| trackc;\n    linkStyle 18 stroke: black;\n\n    %% Host Kalman filter\n    trackc --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/core/include/traccc/fitting/kalman_fitting_algorithm.hpp'\u003eKalman filter\u003c/a\u003e| tracks;\n    linkStyle 19 stroke: black;\n\n    %% SYCL CKF\n    ptrack --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/sycl/include/traccc/sycl/finding/combinatorial_kalman_filter_algorithm.hpp'\u003eCKF\u003c/a\u003e| trackc;\n    linkStyle 20 stroke: blue;\n\n    %% SYCL Kalman filter\n    trackc --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/sycl/include/traccc/sycl/fitting/kalman_fitting_algorithm.hpp'\u003eKalman filter\u003c/a\u003e| tracks;\n    linkStyle 21 stroke: blue;\n\n    %% CUDA CKF\n    ptrack --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/cuda/include/traccc/cuda/finding/finding_algorithm.hpp'\u003eCKF\u003c/a\u003e| trackc;\n    linkStyle 22 stroke: green;\n\n    %% CUDA Kalman filter\n    trackc --\u003e|\u003ca href='https://github.com/acts-project/traccc/blob/main/device/cuda/include/traccc/cuda/fitting/fitting_algorithm.hpp'\u003eKalman filter\u003c/a\u003e| tracks;\n    linkStyle 23 stroke: green;\n```\n\n## Requirements and dependencies\n\n### OS \u0026 compilers:\n\nPlease note that due to the complexity of this software and its build system,\nit may be somewhat fragile in the face of compiler version changes. The\nfollowing are general guidelines for getting _traccc_ to compile:\n\n- The C++ compiler must support C++20\n\nIn addition, the following requirements hold when CUDA is enabled:\n\n- The CUDA Toolkit version must be greater than major version 12\n- Ensure that the CUDA host compiler supports C++20 and is compatible with the\n  `nvcc` compiler driver\n\nThe following table lists currently combinations of builds, compilers,\nand toolchains that are currently known to work (last updated 2022/01/24):\n\n| Build | OS | gcc | CUDA | comment |\n| --- | --- | --- | --- | --- |\n| CUDA | Ubuntu 24.04   | 13.3.0 | 12.6 | runs on CI |\n\n### Dependencies\n\n- [Boost](https://www.boost.org/): program_options\n- [CMake](https://cmake.org/)\n- (Optional) [ROOT](https://root.cern/): RIO, Hist, Tree\n\n### Dependency management with Spack\n\nThe [Spack](https://spack.io/) project provides a particularly easy way to\ninstall the dependencies that you need to use traccc. In order to use Spack to\nmanage your dependencies, simply create a new Spack environment using the\nprovided environment file:\n\n```sh\nspack env create traccc spack.yaml\nspack -e traccc concretize -f\nspack -e traccc install\nspack env activate traccc\n```\n\nThis way, Spack will automatically download and install all dependencies\nnecessary to use traccc with the CUDA, SYCL, and Alpaka programming\nmodels. When using Spack to manage your dependencies, make sure to compile\ntraccc with the `-DTRACCC_USE_SPACK_LIBS=ON` flag.\n\n## Getting started\n\n### Clone the repository\n\nClone the repository and setup the data directory.\n\n```sh\ngit clone https://github.com/acts-project/traccc.git\n./traccc/data/traccc_data_get_files.sh\n```\n\n### Build the project\n\n```sh\ncmake --preset \u003cpreset\u003e [options] -S traccc/ -B build\ncmake --build build/\n```\n\n### Build presets\n\n| Name | Description |\n| --- | --- |\n| host-fp32 | FP32 build of the host code with ROOT enabled |\n| host-fp64 | FP64 build of the host code with ROOT enabled |\n| cuda-fp32 | FP32 build of the CUDA code |\n| cuda-fp64 | FP64 build of the CUDA code |\n| sycl-fp32 | FP32 build of the SYCL code |\n| sycl-fp64 | FP64 build of the SYCL code |\n| alpaka-fp32 | FP32 build of the Alpaka code |\n| alpaka-fp64 | FP64 build of the Alpaka code |\n\n### Detailed build options\n\n| Option | Description |\n| --- | --- |\n| TRACCC_BUILD_CUDA  | Build the CUDA sources included in traccc |\n| TRACCC_BUILD_SYCL  | Build the SYCL sources included in traccc |\n| TRACCC_BUILD_ALPAKA | Build the Alpaka sources included in traccc |\n| TRACCC_BUILD_TESTING  | Build the (unit) tests of traccc |\n| TRACCC_BUILD_EXAMPLES  | Build the examples of traccc |\n| TRACCC_USE_SYSTEM_VECMEM | Pick up an existing installation of VecMem from the build environment |\n| TRACCC_USE_SYSTEM_DFELIBS | Pick up an existing installation of dfelibs from the build environment |\n| TRACCC_USE_SYSTEM_DETRAY | Pick up an existing installation of Detray from the build environment |\n| TRACCC_USE_SYSTEM_ACTS | Pick up an existing installation of Acts from the build environment |\n| TRACCC_USE_SYSTEM_GOOGLETEST | Pick up an existing installation of GoogleTest from the build environment |\n| TRACCC_USE_ROOT | Build physics performance analysis code using an existing installation of ROOT from the build environment |\n\n## Examples\n\n### Full reconstruction chain\n\n```console\n\u003cbuild_directory\u003e/bin/traccc_seq_example \\\n   --detector-file=geometries/odd/odd-detray_geometry_detray.json \\\n   --material-file=geometries/odd/odd-detray_material_detray.json \\\n   --grid-file=geometries/odd/odd-detray_surface_grids_detray.json \\\n   --digitization-file=geometries/odd/odd-digi-geometric-config.json \\\n   --conditions-file=geomteries/odd/odd-digi-geometric-config.json \\\n   --use-acts-geom-source --input-directory=odd/geant4_10muon_10GeV/ \\\n   --input-events=10\n\n\u003cbuild_directory\u003e/bin/traccc_throughput_mt \\\n   --detector-file=geometries/odd/odd-detray_geometry_detray.json \\\n   --material-file=geometries/odd/odd-detray_material_detray.json \\\n   --grid-file=geometries/odd/odd-detray_surface_grids_detray.json \\\n   --digitization-file=geometries/odd/odd-digi-geometric-config.json \\\n   --conditions-file=geometries/odd/odd-digi-geometric-config.json \\\n   --use-acts-geom-source --input-directory=odd/geant4_10muon_10GeV/ \\\n   --input-events=10 --processed-events=1000 --threads=1\n```\n\nDepending on the build options, can also use variants of the executables\npostfixed by `_cuda`, `_sycl` and `_alpaka`, with the same options.\n\n### Running a partial chain with simplified simulation data\n\nUsers can generate muon-like particle simulation data with the pre-built detray geometries:\n\n```sh\n# Generate telescope geometry data\n\u003cbuild_directory\u003e/bin/traccc_simulate_telescope --gen-vertex-xyz-mm=0:0:0 --gen-vertex-xyz-std-mm=0:0:0 --gen-mom-gev=100:100 --gen-phi-degree=0:0 --gen-events=10 --gen-nparticles=2000 --output-directory=detray_simulation/telescope_detector/n_particles_2000/ --gen-eta=1:3\n\n# Generate toy geometry data\n\u003cbuild_directory\u003e/bin/traccc_simulate_toy_detector --gen-vertex-xyz-mm=0:0:0 --gen-vertex-xyz-std-mm=0:0:0 --gen-mom-gev=100:100 --gen-phi-degree=0:360 --gen-events=10 --gen-nparticles=2000 --output-directory=detray_simulation/toy_detector/n_particles_2000/ --gen-eta=-3:3 --constraint-step-size-mm=1 --search-window 3:3\n\n# Generate drift chamber data\n\u003cbuild_directory\u003e/bin/traccc_simulate_wire_chamber --gen-vertex-xyz-mm=0:0:0 --gen-vertex-xyz-std-mm=0:0:0 --gen-mom-gev=2:2 --gen-phi-degree=0:360 --gen-events=10 --gen-nparticles=100 --output-directory=detray_simulation/wire_chamber/n_particles_100/ --gen-eta=-1:1 --constraint-step-size-mm=1 --search-window 3:3\n```\n\nThe simulation will also generate the detector json files (geometry, material and surface_grid) in the current directory. It is user's responsibility to move them to an appropriate place (e.g. `\u003cdetector_directory\u003e`) and match them to the input file arguments of reconstruction chains.\n\nIf users have a geometry json file already, it is also possible to run simulation with `traccc_simulate` application\n\n```sh\n# Given that users have a geometry json file\n\u003cbuild_directory\u003e/bin/traccc_simulate  --output-directory=\u003coutput-directory\u003e  --detector-file=\u003cgeometry_file\u003e --material-file=\u003cmaterial-file\u003e --grid-file=\u003cgrid-file\u003e  --event=10 --constraint-step-size-mm=1\n```\n\nThere are three types of partial reconstruction chain users can operate: `seeding_example`, `truth_finding_example`, and `truth_fitting_example` where their algorithm coverages are shown in the table below. Each of them starts from truth measurements, truth seeds, and truth tracks, respectively.\n\n| Category                | Clusterization | Seeding | Track finding | Track fitting |\n| ----------------------- | -------------- | ------- | ------------- | ------------- |\n| `seeding_example`       |                | ✅      | ✅            | ✅            |\n| `truth_finding_example` |                |         | ✅            | ✅            |\n| `truth_fitting_example` |                |         |               | ✅            |\n\nThe dirft chamber will not produce meaningful results with `seeding_example` as the current seeding algorithm is only designed for 2D measurement objects. Truth finding works OK in general but the combinatoric explosion can occur for a few unlucky events, leading to poor pull value distributions. The followings are example commands:\n\n```sh\n# Run cuda seeding example for toy geometry\n\u003cbuild_directory\u003e/bin/traccc_seeding_example_cuda --input-directory=detray_simulation/toy_detector/n_particles_2000/ --check-performance --detector-file=\u003cdetector_directory\u003e/toy_detector_geometry.json --material-file=\u003cdetector_directory\u003e/toy_detector_homogeneous_material.json --grid-file=\u003cdetector_directory\u003e/toy_detector_surface_grids.json --input-events=1 --track-candidates-range=3:30 --constraint-step-size-mm=1000 --run-cpu=1 --search-window 3:3\n```\n\n```sh\n# Run cuda truth finding example for toy geometry\n\u003cbuild_directory\u003e/bin/traccc_truth_finding_example_cuda --input-directory=detray_simulation/toy_detector/n_particles_2000/ --check-performance --detector-file=\u003cdetector_directory\u003e/toy_detector_geometry.json --material-file=\u003cdetector_directory\u003e/toy_detector_homogeneous_material.json --grid-file=\u003cdetector_directory\u003e/toy_detector_surface_grids.json --input-events=1 --track-candidates-range=3:30 --constraint-step-size-mm=1000 --run-cpu=1 --search-window 3:3\n```\n\n```sh\n# Run cuda truth finding example for drift chamber\n\u003cbuild_directory\u003e/bin/traccc_truth_finding_example_cuda --input-directory=detray_simulation/wire_chamber/n_particles_100/ --check-performance --detector-file=\u003cdetector_directory\u003e/wire_chamber_geometry.json --material-file=\u003cdetector_directory\u003e/wire_chamber_homogeneous_material.json --grid-file=\u003cdetector_directory\u003e/wire_chamber_surface_grids.json  --input-events=10 --track-candidates-range=6:30 --constraint-step-size-mm=1 --run-cpu=1 --search-window 3:3\n```\n\n```sh\n# Run cpu truth fitting example for drift chamber\n\u003cbuild_directory\u003e/bin/traccc_truth_fitting_example --input-directory=detray_simulation/wire_chamber/n_particles_2000_100GeV/ --check-performance --detector-file=\u003cdetector_directory\u003e/wire_chamber_geometry.json --material-file=\u003cdetector_directory\u003e/wire_chamber_homogeneous_material.json --grid-file=\u003cdetector_directory\u003e/wire_chamber_surface_grids.json --input-events=10 --constraint-step-size-mm=1 --search-window 3:3\n```\n\nUsers can open the performance root files (with `--check-performance=true`) and draw the histograms.\n\n```sh\n$ root -l performance_track_finding.root\nroot [0]\nAttaching file performance_track_finding.root as _file0...\n(TFile *) 0x3871910\nroot [1] finding_trackeff_vs_eta-\u003eDraw()\n```\n\n## Contributing\n\n### Code formatting\n\nThe traccc code is formatted using clang-format; the recommended way to ensure that your code is properly formatted is to use [pre-commit](https://pre-commit.com/). The pre-commit webpage has a useful guide for using the tool, but the simplest way of using it (without installing it as a pre-commit hook) is as follows. First, install the tool with your favourite Python package manager:\n\n```console\n# With pip\n$ pip install pre-commit\n# With pipx\n$ pip install pre-commit\n```\n\nThe install step needs to be executed only once. After that, the code can be easily formatted as follows:\n\n```console\n$ pre-commit run --all-files\n```\n\n## Troubleshooting\n\nThe following are potentially useful instructions for troubleshooting various\nproblems with your build:\n\n### CUDA\n\n#### Incompatible host compiler\n\nYou may experience errors being issued about standard library features, for example:\n\n```\n/usr/include/c++/11/bits/std_function.h:435:145: note:         ‘_ArgTypes’\n/usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’:\n  530 |         operator=(_Functor\u0026\u0026 __f)\n```\n\nIn this case, your `nvcc` host compiler is most likely incompatible with your\nCUDA toolkit. Consider installing a supported version and selecting it through\nthe `CUDAHOSTCXX` environment variable at build-time.\n\n#### `ptxas` failures due to non-ASCII characters\n\nYou may encounter errors that look like the following:\n\n```\nptxas fatal   : Unexpected non-ASCII character encountered on line 30\nptxas fatal   : Ptx assembly aborted due to errors\n```\n\nThis means that you are compiling with a version later than CUDA 12.8 which has\nnot been fixed and you are running in debug mode. This error is due to a bug in\nthe CUDA toolkit. Either downgrade to CUDA 12.6 or disable the debug build.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facts-project%2Ftraccc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facts-project%2Ftraccc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facts-project%2Ftraccc/lists"}