Summary and Schedule
This tutorial introduces the concepts and code patterns needed to implement reconstruction algorithms in EICrecon, the ePIC reconstruction software. It walks through building a factory, calling and parameterizing it, adding an algorithm, working with PODIO collections, and putting everything together into a working electron finder.
Prerequisites
- A GitHub account
- A working
eic-shellenvironment
See the Setup page for details.
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Introduction |
What is the physics goal of the reconstruction algorithm we will
build? What information do we need to accomplish this goal? |
| Duration: 00h 05m | 2. Creating a factory |
What is the difference between an algorithm and a factory? How is EICrecon’s plugin structure organized, and where do new factories go? Which factory base class should I use, and what does its interface look like? |
| Duration: 00h 16m | 3. Calling a factory |
How do I wire a factory into JANA2 using a factory generator? How do I make my factory’s outputs available, either once-off or every time? |
| Duration: 00h 27m | 4. Parameterizing a factory |
How do I give a factory configurable parameters? How do I override those parameters from a generator or the command line? How do I access services such as geometry from a factory? |
| Duration: 00h 32m | 5. Adding an algorithm |
What is the difference between a factory and an algorithm? Where does algorithm code live, what does its interface look like, and how does a factory call it? |
| Duration: 00h 38m | 6. Working with PODIO |
What is PODIO and why does the EIC data model use it? How do I create and fill PODIO collections, and what is a subset collection? |
| Duration: 00h 44m | 7. Putting everything together | How do the factory, algorithm, config, and generator fit together in the final electron finder? |
| Duration: 00h 49m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
To follow along with this tutorial you will need:
- A GitHub account (sign up here).
- A working
eic-shellenvironment. If you do not have one yet, first complete the Setting Up Your EIC Environment tutorial. - A local checkout of EICrecon that you can build
from inside
eic-shell. Building EICrecon from source can take a while, so do this in advance of the session. Build instructions are in the EICrecon README.
You should also be comfortable reading and writing C++.