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 ---
0006 
0007 ::::::::::::::::::::::::::::::::::::::::::::: questions
0008 
0009 - What is the physics goal of the reconstruction algorithm we will build?
0010 - What information do we need to accomplish this goal?
0011 
0012 :::::::::::::::::::::::::::::::::::::::::::::
0013 
0014 ::::::::::::::::::::::::::::::::::::::::::::: objectives
0015 
0016 - Define the physics goal of a new reconstruction algorithm.
0017 - Identify what information is needed to accomplish this goal.
0018 
0019 :::::::::::::::::::::::::::::::::::::::::::::
0020 
0021 ## Background
0022 
0023 ### The simulation-reconstruction-analysis pipeline
0024 
0025 The ePIC software pipeline consists of the following stages.
0026 
0027 1. Event generation
0028 2. Simulation
0029 3. Digitization (eventually)
0030 4. Reconstruction
0031 5. Analysis
0032 
0033 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.
0034 
0035 
0036 ### Levels of user interaction with reconstruction
0037 
0038 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:
0039 
0040 1. Performing analyses using the reconstructed data as-is
0041 2. Modifying an algorithm's parameters and re-running the reconstruction
0042 3. Applying an existing algorithm to a fresh context
0043 4. Adding a new algorithm
0044 
0045 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.
0046 
0047 ## Motivating example: simple electron ID with E/p cut
0048 
0049 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.
0050 
0051 ### What information is required?
0052 
0053 This simple electron ID algorithm requires three pieces of information, which will be obtained from pre-existing algorithms/factories:
0054 
0055 - Reconstructed tracks
0056 - Calorimeter clusters
0057 - Matching between tracks and clusters
0058 
0059 Matching between tracks and clusters can be obtained from truth information, or from track projections.  
0060 
0061 - In the former case, the reconstructed tracks and clusters are matched through their association to the same MC particle.  
0062 - 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.  
0063 For the purposes of this tutorial, we will use truth matching.
0064 
0065 The input and output objects of our factory should be stored as PODIO collections.  
0066 
0067 - Reconstructed tracks are stored as a collection of `edm4eic::ReconstructedParticle`
0068 - Calorimeter clusters are stored as a collection of `edm4eic::Cluster`
0069 - Associations between reconstructed tracks and MC particles are stored as a collection of `edm4eic::MCRecoParticleAssociation`
0070 - Associations between calorimeter clusters and MC particles are stored as a collection of `edm4eic:MCRecoClusterParticleAssociation`
0071 
0072 The members of each of these data types can be found in `edm4eic.yaml` in the `EDM4eic` repository.
0073 
0074 ::::::::::::::::::::::::::::::::::::::::::::: keypoints
0075 
0076 - This tutorial builds a simple electron-ID algorithm that selects particles with 0.9 < E/p < 1.2.
0077 - The algorithm needs reconstructed tracks, calorimeter clusters, and a track-to-cluster matching (here, truth matching).
0078 - Inputs and outputs are stored as PODIO collections such as `edm4eic::ReconstructedParticle` and `edm4eic::Cluster`.
0079 
0080 :::::::::::::::::::::::::::::::::::::::::::::