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 ```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