Warning, /EICrecon/docs/design/tracking.md is written in an unsupported language. File is not indexed.
0001 # Tracking
0002
0003 ## Legend for workflow diagrams
0004 - Blue boxes - data collection
0005 - Orange boxes - factory / algorithm
0006
0007 ## Conceptual diagram for track reconstruction
0008 ```mermaid
0009 flowchart TB
0010 classDef alg fill:#f96;
0011 classDef col fill:#66ccff;
0012
0013 SimHits(<strong>Simulation hits<br/> for tracking detectors</strong>):::col
0014 SimHits --> TrackDigi(<strong>Digitization</strong>):::alg
0015 TrackDigi --> RecHits(<strong>Digitized hits<br/> for tracking detectors</strong>):::col
0016
0017 RecHits --> TrackSeeding(<strong> Track seeding):::alg
0018 TrackSeeding --> InitParams(<strong> Initial track parameters<br/> from seed triplet):::col
0019
0020 RecHits --> CKFTracking(<strong> Combinatorial Kalman Filter<br/> for track finding and fitting):::alg
0021 InitParams --> CKFTracking
0022 CKFTracking --> ActsTracksUnsolved(<strong> Reconstructed tracks):::col
0023
0024 ActsTracksUnsolved --> AmbiguitySolver(<strong> Track ambiguity resolution):::alg
0025
0026 %% AmbiguitySolver --> ActsTracks(<strong> Final solved tracks):::col
0027 %% ActsTracks --> TypeConverter(<strong> Conversion of tracks<br/> to PODIO data type):::alg
0028 %% TypeConverter --> ReconstructedTracks(<strong> Reconstructed tracks<br/> in PODIO format):::col
0029 AmbiguitySolver --> ReconstructedTracks(<strong> Final Solved Tracks):::col
0030
0031 ReconstructedTracks --> TrackProjector(<strong> Save predicted track states<br/> at each tracking layer):::alg
0032 TrackProjector --> TrackStates(<strong> Track parameters<br/> at each tracking layer):::col
0033 ReconstructedTracks --> TrackPropagator(<strong> Track propagation<br/> to calorimeters and PID detectors):::alg
0034 TrackPropagator --> PropagatedTracks(<strong> Projected track position and angle<br/> at calorimeters and PID detectors):::col
0035 ReconstructedTracks -->IterVertFind(<strong> Iterative Vertex finder<br/> and primary vertex fitter):::alg
0036 IterVertFind --> PrimVertices(<strong> Reconstructed primary vertex):::col
0037 ReconstructedTracks --> ParticleFactory(<strong> Copy reconstructed tracks<br/> to collection used for physics analyses):::alg
0038 ParticleFactory --> ReconstructedChargedParticles(<strong> Reconstructed charged particles<br/> used for physics analyses):::col
0039
0040 ```
0041
0042 ## Full diagram for track reconstruction
0043
0044 ```mermaid
0045 flowchart TB
0046 classDef alg fill:#f96;
0047 classDef col fill:#66ccff;
0048 subgraph Simulation output
0049 direction LR
0050
0051 BVTXSimHits(<strong>Barrel Si vertex</strong>:<br/>VertexBarrelHits):::col
0052 BTRKSimHits(<strong>Barrel Si trk</strong>:<br/>SiBarrelHits):::col
0053 ECTRKSimHits(<strong>EndCap Si trk</strong>:<br/>TrackerEndcapHits):::col
0054 BMPGDSimHits(<strong>Barrel MPGD trk</strong>:<br/>MPGDBarrelHits):::col
0055 OBMPGDSimHits(<strong>Barrel MPGD Outer trk</strong>:<br/>OuterMPGDBarrelHits):::col
0056 ECNMPGDSimHits(<strong>Neg EndCap MPGD trk</strong>:<br/>BackwardMPGDEndcapHits):::col
0057 ECPMPGDSimHits(<strong>Pos EndCap MPGD trk</strong>:<br/>ForwardMPGDEndcapHits):::col
0058 BTOFSimHits(<strong>Barrel TOF</strong>:<br/>TOFBarrelHits):::col
0059 ECTOFSimHits(<strong>EndCap TOF</strong>:<br/>TOFEndcapHits):::col
0060 end
0061
0062 subgraph Hit digitization
0063 BVTXSimHits --> TrackerDigi1[SiliconTrackerDigi]:::alg
0064 TrackerDigi1 --> VertexBarrelRawHits(SiBarrelVertexRawHits):::col
0065 VertexBarrelRawHits --> TrackerHitReconstruction1[TrackerHitReconstruction]:::alg
0066 TrackerHitReconstruction1 --> VertexBarrelRecHits(SiBarrelVertexRecHits):::col
0067
0068 BTRKSimHits --> TrackerDigi2[SiliconTrackerDigi]:::alg
0069 TrackerDigi2 --> TrackerBarrelRawHits(SiBarrelRawHits):::col
0070 TrackerBarrelRawHits --> TrackerHitReconstruction2[TrackerHitReconstruction]:::alg
0071 TrackerHitReconstruction2 --> TrackerBarrelRecHits(SiBarrelTrackerRecHits):::col
0072
0073 ECTRKSimHits --> TrackerDigi3[SiliconTrackerDigi]:::alg
0074 TrackerDigi3 --> TrackerEndcapRawHits(SiEndcapTrackerRawHits):::col
0075 TrackerEndcapRawHits --> TrackerHitReconstruction3[TrackerHitReconstruction]:::alg
0076 TrackerHitReconstruction3 --> TrackerEndcapRecHits(SiEndcapTrackerRecHits):::col
0077
0078 BMPGDSimHits --> MPGDTrackerBarrelDigi[SiliconTrackerDigi]:::alg
0079 MPGDTrackerBarrelDigi --> MPGDTrackerBarrelRawHits(MPGDBarrelRawHits):::col
0080 MPGDTrackerBarrelRawHits --> MPGDTrackerBarrelReconstruction[TrackerHitReconstruction]:::alg
0081 MPGDTrackerBarrelReconstruction --> MPGDTrackerBarrelRecHits(MPGDBarrelRecHits):::col
0082
0083 OBMPGDSimHits --> MPGDTrackerOutBarrelDigi[SiliconTrackerDigi]:::alg
0084 MPGDTrackerOutBarrelDigi --> MPGDTrackerOutBarrelRawHits(OuterMPGDBarrelRawHits):::col
0085 MPGDTrackerOutBarrelRawHits --> MPGDTrackerOutBarrelReconstruction[TrackerHitReconstruction]:::alg
0086 MPGDTrackerOutBarrelReconstruction --> MPGDTrackerOutBarrelRecHits(OuterMPGDBarrelRecHits):::col
0087
0088 ECNMPGDSimHits --> MPGDTrackerECNDigi[SiliconTrackerDigi]:::alg
0089 MPGDTrackerECNDigi --> MPGDTrackerECNRawHits(BackwardMPGDEndcapRawHits):::col
0090 MPGDTrackerECNRawHits --> MPGDTrackerECNReconstruction[TrackerHitReconstruction]:::alg
0091 MPGDTrackerECNReconstruction --> MPGDTrackerECNRecHits(BackwardMPGDEndcapRecHits):::col
0092
0093 ECPMPGDSimHits --> MPGDTrackerECPDigi[SiliconTrackerDigi]:::alg
0094 MPGDTrackerECPDigi --> MPGDTrackerECPRawHits(ForwardMPGDEndcapRawHits):::col
0095 MPGDTrackerECPRawHits --> MPGDTrackerECPReconstruction[TrackerHitReconstruction]:::alg
0096 MPGDTrackerECPReconstruction --> MPGDTrackerECPRecHits(ForwardMPGDEndcapRecHits):::col
0097
0098 BTOFSimHits --> BTOFTrackerDigi[SiliconTrackerDigi]:::alg
0099 BTOFTrackerDigi --> BTOFRawHits(TOFBarrelRawHits):::col
0100 BTOFRawHits --> BTOFHitReconstruction[TrackerHitReconstruction]:::alg
0101 BTOFHitReconstruction --> BTOFRecHits(TOFBarrelRawHits):::col
0102
0103 ECTOFSimHits --> ECTOFTrackerDigi[SiliconTrackerDigi]:::alg
0104 ECTOFTrackerDigi --> ECTOFRawHits(TOFEndcapRawHits):::col
0105 ECTOFRawHits --> ECTOFHitReconstruction[TrackerHitReconstruction]:::alg
0106 ECTOFHitReconstruction --> ECTOFRecHits(TOFEndcapRecHits):::col
0107
0108 TrackerHitsCollector[CollectionCollector]:::alg
0109
0110 VertexBarrelRecHits --> TrackerHitsCollector
0111 TrackerBarrelRecHits --> TrackerHitsCollector
0112 TrackerEndcapRecHits --> TrackerHitsCollector
0113 MPGDTrackerBarrelRecHits --> TrackerHitsCollector
0114 MPGDTrackerOutBarrelRecHits --> TrackerHitsCollector
0115 MPGDTrackerECNRecHits --> TrackerHitsCollector
0116 MPGDTrackerECPRecHits --> TrackerHitsCollector
0117 BTOFRecHits --> TrackerHitsCollector
0118 ECTOFRecHits --> TrackerHitsCollector
0119
0120 TrackerHitsCollector --> CentralTrackingRecHits:::col
0121 end
0122
0123 subgraph Track finding & fitting
0124 CentralTrackingRecHits --> TrackerHitsConverter[TrackerMeasurementFromHits]:::alg
0125 TrackerHitsConverter --> TrackerHitsOnSurface[CentralTrackerMeasurements]:::col
0126
0127 TrackSeeding --> SeedParameters[CentralTrackSeedingResults]:::col
0128 CentralTrackingRecHits --> TrackSeeding[TrackSeeding]:::alg
0129
0130 CKFTracking:::alg
0131 SeedParameters --> CKFTracking
0132 TrackerHitsOnSurface --> CKFTracking
0133 CKFTracking --> UnfilteredActsTracks[CentralCKFActsTracksUnfiltered]:::col
0134
0135 AmbiguitySolver:::alg
0136 UnfilteredActsTracks --> AmbiguitySolver
0137 TrackerHitsOnSurface --> AmbiguitySolver
0138 AmbiguitySolver --> CentralCKFActsTracks:::col
0139 AmbiguitySolver --> CentralCKFActsTrajectories:::col
0140
0141 ActsToTracks:::alg
0142 CentralCKFActsTrajectories --> ActsToTracks
0143 TrackerHitsOnSurface --> ActsToTracks
0144 ActsToTracks --> CentralCKFTracks:::col
0145 ActsToTracks --> CentralCKFTrajectories:::col
0146 ActsToTracks --> CentralCKFTrackParameters:::col
0147 ActsToTracks --> CentralCKFTrackAssociations:::col
0148 end
0149
0150 ```
0151
0152 ## Full diagram for track states, track projections, and primary vertexing
0153 ```mermaid
0154 flowchart TB
0155 classDef alg fill:#f96;
0156 classDef col fill:#66ccff;
0157
0158 subgraph Reconstructed Tracking Info
0159 direction LR
0160
0161 CentralCKFActsTrajectories(<strong>CentralCKFActsTrajectories):::col
0162 CentralCKFTracks(<strong>CentralCKFTracks):::col
0163 ReconstructedChargedParticles(<strong>ReconstructedChargedParticles):::col
0164 CentralCKFActsTracks(<strong>CentralCKFActsTracks):::col
0165 end
0166
0167 subgraph Projections and Vertexing
0168 TrackProjector:::alg
0169 CentralCKFActsTrajectories --> TrackProjector
0170 CentralCKFTracks --> TrackProjector
0171 TrackProjector --> CentralTrackSegments:::col
0172
0173 IterativeVertexFinder:::alg
0174 CentralCKFActsTrajectories --> IterativeVertexFinder
0175 ReconstructedChargedParticles --> IterativeVertexFinder
0176 IterativeVertexFinder --> CentralTrackVertices:::col
0177
0178 TrackPropagation:::alg
0179 CentralCKFActsTracks --> TrackPropagation
0180 CentralCKFActsTrajectories --> TrackPropagation
0181 TrackPropagation --> CalorimeterTrackProjections:::col
0182 end
0183
0184 ```
0185
0186 ## Full diagram for idealized track reconstruction using truth seeding
0187 ```mermaid
0188 flowchart TB
0189 classDef alg fill:#f96;
0190 classDef col fill:#66ccff;
0191 subgraph Simulation output
0192 direction LR
0193
0194 BVTXSimHits(<strong>Barrel Si vertex</strong>:<br/>VertexBarrelHits):::col
0195 BTRKSimHits(<strong>Barrel Si trk</strong>:<br/>SiBarrelHits):::col
0196 ECTRKSimHits(<strong>EndCap Si trk</strong>:<br/>TrackerEndcapHits):::col
0197 BMPGDSimHits(<strong>Barrel MPGD trk</strong>:<br/>MPGDBarrelHits):::col
0198 OBMPGDSimHits(<strong>Barrel MPGD Outer trk</strong>:<br/>OuterMPGDBarrelHits):::col
0199 ECNMPGDSimHits(<strong>Neg EndCap MPGD trk</strong>:<br/>BackwardMPGDEndcapHits):::col
0200 ECPMPGDSimHits(<strong>Pos EndCap MPGD trk</strong>:<br/>ForwardMPGDEndcapHits):::col
0201 BTOFSimHits(<strong>Barrel TOF</strong>:<br/>TOFBarrelHits):::col
0202 ECTOFSimHits(<strong>EndCap TOF</strong>:<br/>TOFEndcapHits):::col
0203 end
0204
0205 subgraph Hit digitization
0206 BVTXSimHits --> TrackerDigi1[SiliconTrackerDigi]:::alg
0207 TrackerDigi1 --> VertexBarrelRawHits(SiBarrelVertexRawHits):::col
0208 VertexBarrelRawHits --> TrackerHitReconstruction1[TrackerHitReconstruction]:::alg
0209 TrackerHitReconstruction1 --> VertexBarrelRecHits(SiBarrelVertexRecHits):::col
0210
0211 BTRKSimHits --> TrackerDigi2[SiliconTrackerDigi]:::alg
0212 TrackerDigi2 --> TrackerBarrelRawHits(SiBarrelRawHits):::col
0213 TrackerBarrelRawHits --> TrackerHitReconstruction2[TrackerHitReconstruction]:::alg
0214 TrackerHitReconstruction2 --> TrackerBarrelRecHits(SiBarrelTrackerRecHits):::col
0215
0216 ECTRKSimHits --> TrackerDigi3[SiliconTrackerDigi]:::alg
0217 TrackerDigi3 --> TrackerEndcapRawHits(SiEndcapTrackerRawHits):::col
0218 TrackerEndcapRawHits --> TrackerHitReconstruction3[TrackerHitReconstruction]:::alg
0219 TrackerHitReconstruction3 --> TrackerEndcapRecHits(SiEndcapTrackerRecHits):::col
0220
0221 BMPGDSimHits --> MPGDTrackerBarrelDigi[SiliconTrackerDigi]:::alg
0222 MPGDTrackerBarrelDigi --> MPGDTrackerBarrelRawHits(MPGDBarrelRawHits):::col
0223 MPGDTrackerBarrelRawHits --> MPGDTrackerBarrelReconstruction[TrackerHitReconstruction]:::alg
0224 MPGDTrackerBarrelReconstruction --> MPGDTrackerBarrelRecHits(MPGDBarrelRecHits):::col
0225
0226 OBMPGDSimHits --> MPGDTrackerOutBarrelDigi[SiliconTrackerDigi]:::alg
0227 MPGDTrackerOutBarrelDigi --> MPGDTrackerOutBarrelRawHits(OuterMPGDBarrelRawHits):::col
0228 MPGDTrackerOutBarrelRawHits --> MPGDTrackerOutBarrelReconstruction[TrackerHitReconstruction]:::alg
0229 MPGDTrackerOutBarrelReconstruction --> MPGDTrackerOutBarrelRecHits(OuterMPGDBarrelRecHits):::col
0230
0231 ECNMPGDSimHits --> MPGDTrackerECNDigi[SiliconTrackerDigi]:::alg
0232 MPGDTrackerECNDigi --> MPGDTrackerECNRawHits(BackwardMPGDEndcapRawHits):::col
0233 MPGDTrackerECNRawHits --> MPGDTrackerECNReconstruction[TrackerHitReconstruction]:::alg
0234 MPGDTrackerECNReconstruction --> MPGDTrackerECNRecHits(BackwardMPGDEndcapRecHits):::col
0235
0236 ECPMPGDSimHits --> MPGDTrackerECPDigi[SiliconTrackerDigi]:::alg
0237 MPGDTrackerECPDigi --> MPGDTrackerECPRawHits(ForwardMPGDEndcapRawHits):::col
0238 MPGDTrackerECPRawHits --> MPGDTrackerECPReconstruction[TrackerHitReconstruction]:::alg
0239 MPGDTrackerECPReconstruction --> MPGDTrackerECPRecHits(ForwardMPGDEndcapRecHits):::col
0240
0241 BTOFSimHits --> BTOFTrackerDigi[SiliconTrackerDigi]:::alg
0242 BTOFTrackerDigi --> BTOFRawHits(TOFBarrelRawHits):::col
0243 BTOFRawHits --> BTOFHitReconstruction[TrackerHitReconstruction]:::alg
0244 BTOFHitReconstruction --> BTOFRecHits(TOFBarrelRawHits):::col
0245
0246 ECTOFSimHits --> ECTOFTrackerDigi[SiliconTrackerDigi]:::alg
0247 ECTOFTrackerDigi --> ECTOFRawHits(TOFEndcapRawHits):::col
0248 ECTOFRawHits --> ECTOFHitReconstruction[TrackerHitReconstruction]:::alg
0249 ECTOFHitReconstruction --> ECTOFRecHits(TOFEndcapRecHits):::col
0250
0251 TrackerHitsCollector[CollectionCollector]:::alg
0252
0253 VertexBarrelRecHits --> TrackerHitsCollector
0254 TrackerBarrelRecHits --> TrackerHitsCollector
0255 TrackerEndcapRecHits --> TrackerHitsCollector
0256 MPGDTrackerBarrelRecHits --> TrackerHitsCollector
0257 MPGDTrackerOutBarrelRecHits --> TrackerHitsCollector
0258 MPGDTrackerECNRecHits --> TrackerHitsCollector
0259 MPGDTrackerECPRecHits --> TrackerHitsCollector
0260 BTOFRecHits --> TrackerHitsCollector
0261 ECTOFRecHits --> TrackerHitsCollector
0262
0263 TrackerHitsCollector --> CentralTrackingRecHits:::col
0264 end
0265
0266 subgraph Simulation output
0267 MCParticles:::col
0268 end
0269
0270 subgraph Track finding & fitting
0271 CentralTrackingRecHits ---> TrackerHitsConverter[TrackerMeasurementFromHits]:::alg
0272 TrackerHitsConverter ---> TrackerHitsOnSurface[CentralTrackerMeasurements]:::col
0273
0274 MCParticles --> TrackParamTruthInit:::alg
0275 TrackParamTruthInit --> TrackTruthSeeds:::col
0276
0277 TrackTruthSeeds --> SubDivideCollection:::alg
0278 SubDivideCollection --> CentralTrackerTruthSeeds:::col
0279
0280 CKFTracking:::alg
0281 TrackerHitsOnSurface --> CKFTracking
0282 CentralTrackerTruthSeeds --> CKFTracking
0283 CKFTracking --> UnfilteredActsTracks[CentralCKFTruthSeededActsTracksUnfiltered]:::col
0284
0285 AmbiguitySolver:::alg
0286 UnfilteredActsTracks --> AmbiguitySolver
0287 TrackerHitsOnSurface --> AmbiguitySolver
0288 AmbiguitySolver --> CentralCKFActsTrajectories[CentralTruthSeededCKFActsTrajectories]:::col
0289 AmbiguitySolver --> CentralCKFActsTracks[CentralTruthSeededCKFActsTracks]:::col
0290
0291 ActsToTracks:::alg
0292 CentralCKFActsTrajectories --> ActsToTracks
0293 TrackerHitsOnSurface --> ActsToTracks
0294 ActsToTracks --> CentralCKFTruthSeededTracks:::col
0295 ActsToTracks --> CentralCKFTruthSeededTrajectories:::col
0296 ActsToTracks --> CentralCKFTruthSeededTrackParameters:::col
0297 ActsToTracks --> CentralCKFTruthSeededTrackAssociations:::col
0298
0299 end
0300
0301 ```
0302
0303 ## Full diagram for B0 track reconstruction
0304 In progress...
0305
0306 ## Description of collections
0307 - MCParticles ([edm4hep::MCParticle](https://github.com/key4hep/EDM4hep/blob/v00-99-02/edm4hep.yaml#L230-L258)) -- Monte Carlo particle
0308 - SimTrackerHits ([edmhep::SimTrackerHit](https://github.com/key4hep/EDM4hep/blob/v00-99-02/edm4hep.yaml#L296-L333)) -- Simulated tracker hit (e.g. VertexBarrelHits)
0309 - RawTrackerHits ([edm4eic::RawTrackerHit](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L372-L379)) -- Raw (digitized) tracker hit (e.g. SiBarrelVertexRawHits)
0310 - TrackerHits ([edm4eic::TrackerHit](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L381-L393)) -- Tracker hit reconstructed from RawTrackerHit (e.g. SiBarrelVertexRecHits, CentralTrackingRecHits)
0311 - CentralTrackerMeasurements ([edm4eic::Measurement2D](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L395-L406)) -- 2D measurement (on an arbitrary surface)
0312 - CentralTrackSeedingResults ([edm4eic::TrackSeed](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L408-L416)) -- Track seed information
0313 - CentralCKFTracks ([edm4eic::Track](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L453-L471)) -- Reconstructed track information and link to trajectory
0314 - CentralCKFTrajectories ([edm4eic::Trajectory](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L453-L471)) -- Track quality information and link to track parameters
0315 - CentralCKFTrackParameters ([edm4eic::TrackParameters](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L438-L450)] -- Reconstructed track parameters
0316 - CentralCKFTrackAssociations ([edm4eic::MCRecoTrackParticleAssociation](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L555-L564)) -- Hit-based association between reconstructed track and MCParticle
0317 - ReconstructedChargedParticles ([edm4eic::ReconstructedParticle](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L231-L263)) -- Reconstructed particle based on reconstructed track
0318 - ReconstructedChargedParticleAssociations ([edm4eic::MCRecoParticleAssociation](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L533-L542)) -- Copy of CentralCKFTrackAssociations to associate ReconstructedChargedParticle and MCParticle
0319 - CentralTrackSegments ([edm4eic::TrackSegment](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L473-L482)) -- Track segment with link to track information at various tracking detector layers ([edm4eic::TrackPoint](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L159-L174))
0320 - CentralTrackVertices ([edm4eic::Vertex](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L159-L174)) -- Reconstructed primary vertex (vertices)
0321 - CalorimeterTrackProjections ([edm4eic::TrackSegment](https://github.com/eic/EDM4eic/blob/v8.2.0/edm4eic.yaml#L473-L482)) -- Track projection at calorimeter detectors
0322
0323 ## Acts information
0324 - [Instructions for creating Acts Material Map](https://github.com/eic/epic/tree/main/scripts/material_map#material-map-for-acts)
0325 - [Acts flags](flags/acts.md ':include')