Back to home page

EIC code displayed by LXR

 
 

    


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')