Back to home page

EIC code displayed by LXR

 
 

    


Warning, /tutorial-reconstruction-algorithms/_episodes/01-introduction.md is written in an unsupported language. File is not indexed.

0001 ---
0002 title: "Introduction"
0003 teaching: 5
0004 exercises: 0
0005 objectives:
0006 - "Define physics goal of new reconstruction algorithm"
0007 - "Identify what information is needed to accomplish this goal"
0008 ---
0009 
0010 ## Background
0011 
0012 ### The simulation-reconstruction-analysis pipeline
0013 
0014 The ePIC software pipeline consists of the following stages.
0015 
0016 1. Event generation
0017 2. Simulation
0018 3. Digitization (eventually)
0019 4. Reconstruction
0020 5. Analysis
0021 
0022 This tutorial focuses exclusively on the reconstruction stage and the EICrecon software package. At the highest conceptual level, EICrecon's inputs are simulated (and eventually, optionally digitized) detector hits, and the outputs are reconstructed tracks and particle identifications. Internally, EICrecon uses a data model and software architecture which is designed to cleanly separate dozens of different reconstruction algorithms and facilitate reconfiguring them and reusing them according to users' needs.
0023 
0024 
0025 ### Levels of user interaction with reconstruction
0026 
0027 Depending on how a user contributes to ePIC, their level of interaction with EICrecon will vary. We identify four distinct patterns, or levels of interaction:
0028 
0029 1. Performing analyses using the reconstructed data as-is
0030 2. Modifying an algorithm's parameters and re-running the reconstruction
0031 3. Applying an existing algorithm to a fresh context
0032 4. Adding a new algorithm
0033 
0034 This tutorial is designed to be most helpful for users doing (3) or (4), although users at all levels will benefit from the deeper understanding of EICrecon's architecture.
0035 
0036 ## Motivating example: simple electron ID with E/p cut
0037 
0038 One key ingredient in electron ID is the ratio of the energy deposited in the calorimeter (E) to the momentum of the particle track (p).  For electrons, this should be close to 1.  We want to implement a rudimentary electron ID algorithm by identifying particles that satisfy 0.9 < E/p < 1.2.
0039 
0040 ### What information is required?
0041 
0042 This simple electron ID algorithm requires three pieces of information, which will be obtained from pre-existing algorithms/factories:
0043 - Reconstructed tracks
0044 - Calorimeter clusters
0045 - Matching between tracks and clusters
0046 
0047 Matching between tracks and clusters can be obtained from truth information, or from track projections.  
0048 - In the former case, the reconstructed tracks and clusters are matched through their association to the same MC particle.  
0049 - In the latter case, a matching criteria is applied to the position of the calorimeter cluster and the projected position of the track at the calorimeter.  
0050 For the purposes of this tutorial, we will use truth matching.
0051 
0052 The input and output objects of our factory should be stored as PODIO collections.  
0053 - Reconstructed tracks are stored as a collection of `edm4eic::ReconstructedParticle`
0054 - Calorimeter clusters are stored as a collection of `edm4eic::Cluster`
0055 - Associations between reconstructed tracks and MC particles are stored as a collection of `edm4eic::MCRecoParticleAssociation`
0056 - Associations between calorimeter clusters and MC particles are stored as a collection of `edm4eic:MCRecoClusterParticleAssociation`
0057 
0058 The members of each of these data types can be found in `edm4eic.yaml` in the `EDM4eic` repository.