Warning, /EICrecon/docs/design/tracking.md is written in an unsupported language. File is not indexed.
0001 # Tracking
0002
0003 ```mermaid
0004 flowchart TB
0005 classDef alg fill:#44cc;
0006 classDef col fill:#cc66ff;
0007 subgraph Simulation output
0008 direction LR
0009 SimHits(<strong>Simulation hits for detectors</strong>:<br/>edm4hep::SimTrackerHit)
0010 MCParticles(<strong>MC particles</strong>:<br/>edm4hep::MCParticle)
0011 end
0012
0013 SimHits --> HitsReco[<strong>Per detector hits processing</strong>:<br/><i>SiliconTrackerDigi</i><br><i>TrackerHitReconstruction</i>]:::alg
0014 HitsReco --> Hits(Hits prepared for tracking)
0015
0016 Hits --> CKFTracking[<strong>ACTS CFK Tracking</strong>:<br/><i>TrackSourceLinker</i><br><i>TrackParamTruthInit</i><br><i>CFKTracking</i>]:::alg
0017 MCParticles --> CKFTracking
0018
0019 CKFTracking --> ACTSOutput(ACTS output)
0020
0021 ACTSOutput --> ACTSToModel[<strong>Convert ACTS to data model</strong>:<br/><i>ParticlesFromTrackFit</i><br><i>TrackProjector</i><br><i>TrackPropagator</i>]:::alg
0022
0023 ACTSToModel --> TrackingModel(Tracking PODIO data)
0024
0025 TrackingModel --> ParticlesWithPID:::alg
0026 MCParticles --> ParticlesWithPID[<strong>Track to MC matching</strong>:<br/><i>ParticlesWithPID</i>]
0027 ACTSToModel --> CentralTrackSegments
0028
0029 ParticlesWithPID --> ReconstructedChargedParticles
0030 ParticlesWithPID --> ReconstructedChargedParticlesAssociations
0031
0032 subgraph Tracking output
0033 direction LR
0034 CentralTrackSegments(<strong>CentralTrackSegments</strong><br/><i>edm4eic::TrackSegments</i>)
0035 ReconstructedChargedParticles(<strong>ReconstructedChargedParticles</strong><br/><i>edm4eic::ReconstructedParticle</i>)
0036 ReconstructedChargedParticlesAssociations(<strong>ReconstructedChargedParticlesAssociations</strong><br/><i>edm4eic::ReconstructedParticleAssociation</i>)
0037 end
0038 ```
0039
0040 Simplified tracking data flows and algorithms diagram. Full diagram is described below.
0041
0042 ### Tracking related flags:
0043
0044 [ACTS flags](flags/acts.md ':include')
0045
0046 ### Reconstructed particles chart
0047
0048
0049 ## Full diagram
0050
0051
0052 ```mermaid
0053 flowchart TB
0054 classDef alg fill:#f96;
0055 classDef col fill:#66ccff;
0056 subgraph Simulation output
0057 direction LR
0058
0059 BTRKSimHits(<strong>Barrel trk</strong>:<br/>SiBarrelHits)
0060 BTOFSimHits(<strong>Barrel TOF</strong>:<br/>TOFBarrelHits)
0061 BVTXSimHits(<strong>Barrel vertex</strong>:<br/>VertexBarrelHits)
0062 ECTRKSimHits(<strong>EndCap trk</strong>:<br/>TrackerEndcapHits)
0063 MPGDSimHits(<strong>MPGD barrel trk</strong>:<br/>MPGDBarrelHits)
0064 ECTOFSimHits(<strong>EndCap TOF</strong>:<br/>MPGDBarrelHits)
0065 end
0066
0067 BTOFSimHits --> BTOFTrackerDigi[TrackerDigi]:::alg
0068 BTOFTrackerDigi --> BTOFRawHits(TOFBarrelRawHit)
0069 BTOFRawHits --> BTOFHitReconstruction[HitReconstruction]:::alg
0070 BTOFHitReconstruction --> BTOFRecHits(TOFBarrelTrackerHit)
0071
0072 ECTOFSimHits --> ECTOFTrackerDigi[TrackerDigi]:::alg
0073 ECTOFTrackerDigi --> ECTOFRawHits(TOFEndcapRawHit)
0074 ECTOFRawHits --> ECTOFHitReconstruction[HitReconstruction]:::alg
0075 ECTOFHitReconstruction --> ECTOFRecHits(TOFEndcapTrackerHit)
0076
0077 ECTRKSimHits --> TrackerDigi2[TrackerDigi]:::alg
0078 TrackerDigi2 --> TrackerEndcapRawHits(TrackerEndcapRawHits)
0079 TrackerEndcapRawHits --> TrackerHitReconstruction2[HitReconstruction]:::alg
0080 TrackerHitReconstruction2 --> TrackerEndcapRecHits(EndcapTrackerHit)
0081
0082
0083 BTRKSimHits --> TrackerDigi[TrackerDigi]:::alg
0084 TrackerDigi --> TrackerBarrelRawHits(TrackerBarrelRawHits)
0085 TrackerBarrelRawHits --> TrackerHitReconstruction[HitReconstruction]:::alg
0086 TrackerHitReconstruction --> TrackerBarrelRecHits(BarrelTrackerHit)
0087
0088 MPGDSimHits --> TrackerDigi4[TrackerDigi]:::alg
0089 TrackerDigi4 --> MPGDTrackerBarrelRawHits(MPGDTrackerRawHit)
0090 MPGDTrackerBarrelRawHits --> TrackerHitReconstruction4[HitReconstruction]:::alg
0091 TrackerHitReconstruction4 --> MPGDTrackerBarrelRecHits(MPGDTrackerHit)
0092
0093
0094 BVTXSimHits --> TrackerDigi3[TrackerDigi]:::alg
0095 TrackerDigi3 --> VertexBarrelRawHits(VertexBarrelRawHits)
0096 VertexBarrelRawHits --> TrackerHitReconstruction3[HitReconstruction]:::alg
0097 TrackerHitReconstruction3 --> VertexBarrelRecHits(VertexBarrelRecHits)
0098
0099 TrackerHitsCollector[TrackerHitsCollector]:::col
0100
0101 TrackerBarrelRecHits --> TrackerHitsCollector
0102 TrackerEndcapRecHits --> TrackerHitsCollector
0103 VertexBarrelRecHits --> TrackerHitsCollector
0104 MPGDTrackerBarrelRecHits --> TrackerHitsCollector
0105 ECTOFRecHits --> TrackerHitsCollector
0106 BTOFRecHits --> TrackerHitsCollector
0107
0108
0109 TrackerHitsCollector --> trackerHits
0110 trackerHits --> TrackerSourceLinker[TrackerSourceLinker]:::alg
0111
0112 TrackerSourceLinker --> TrackSourceLinks(TrackSourceLinks)
0113 TrackerSourceLinker --> TrackMeasurements(TrackMeasurements)
0114
0115 subgraph Sim output
0116 MCParticles(MCParticles)
0117 end
0118
0119 MCParticles --> TrackParamTruthInit[TrackParamTruthInit]:::alg
0120 TrackParamTruthInit --> InitTrackParams
0121
0122 TrackSourceLinks --> CKFTracking[CKFTracking]:::alg
0123 TrackMeasurements --> CKFTracking
0124 InitTrackParams --> CKFTracking
0125 CKFTracking --> CentralCKFTrajectories
0126
0127 CentralCKFTrajectories --> ParticlesFromTrackFit[ParticlesFromTrackFit]:::alg
0128 ParticlesFromTrackFit --> outputTrackParameters
0129 ParticlesFromTrackFit --> outputParticles
0130
0131
0132 CentralCKFTrajectories --> TrackProjector[TrackProjector]:::alg
0133 TrackProjector --> CentralTrackSegments
0134
0135 outputTrackParameters --> ParticlesWithPID[ParticlesWithPID]:::alg
0136 MCParticles --> ParticlesWithPID
0137 ParticlesWithPID --> ReconstructedChargedParticles
0138 ParticlesWithPID --> ReconstructedChargedParticlesAssociations
0139
0140
0141
0142 subgraph Tracking output
0143 direction LR
0144 CentralTrackSegments
0145 ReconstructedChargedParticles
0146 ReconstructedChargedParticlesAssociations
0147
0148 end
0149
0150 ```
0151
0152 This diagram illustrates data transformation and algorithms corresponding to
0153 tracking part.
0154
0155 What is on the graph:
0156
0157 - Orange boxes - is an underlying algorithm
0158 - BlueBoxes(TrackerHitsCollector) - simple factory that gets all hits together
0159 - Boxes with rounded corners - data collection names
0160
0161 The flow is:
0162
0163 - Each detector hits first goes to **SiliconTrackerDigi** algorithm. Digitized tracking data has only geometry cell ID and timing data.
0164 - Then each digitized hit gets into **HitReconstruction**. Geometry is found by ID, position, time and covariance extracted.
0165 - Reconstructed hits from all detectors get to **TrackerSourceLinker** which provides measurement and linkage data for ACTS
0166 - **CFKTracking** does fitting and produces results in ACTS classes
0167 - **ParticlesFromTrackFit** process ACTS data and store it to PODIO edm4hep/eic data model
0168 - **ParticlesWithPID** algorithm does track-matching with MCParticles and produce resulted `edm4eic::ReconstructedParticles` with association class
0169 - **TrackProjection** - saves track states/points data to PODIO data model and returns CetntralTrackSegments data