Finally, let's go through the reconstruction code. Refer to tutorial 4 for general guidance on the reconstruction code; this tutorial 5 will provide an overview of how the primary algorithms work.
Each algorithm "AlgorithmName" typically includes 5 source code files:
- Algorithm class header:
src/algorithms/___/AlgorithmName.h - Algorithm class implementation:
src/algorithms/___/AlgorithmName.cc - Algorithm configuration:
src/algorithms/___/AlgorithmNameConfig.h - Factory header:
src/global/___/AlgorithmName_factory.h - Factory implementation:
src/global/___/AlgorithmName_factory.cc
Recall that the factory runs the algorithm and contains the EICrecon-dependent code, whereas the algorithm is independent of EICrecon.
Note that in some cases the algorithm name and factory name differ; typically this is because the algorithm is more widely used by other subsystems, but we needed a dRICH-specific factory.
Refer to tutorial 4 or dRICH documentation for the list of algorithms and factories specific for the dRICH.
The remainder of this tutorial is a presentation and discussion of the algorithms, how they work, and what can be found where. See the tutorial recording.
richgeo:
- aims to be the only place where EICrecon algorithms can know which subsystem they are operating on
- provides conversions of the DD4hep geometry to:
- ACTS surfaces, for track propagation
- Optical surfaces for IRT
- also provides general features, such as:
- enumeration of the radiators
- readout geometry and visitor methods
- Digitization
- Track propagation
- IRT:
IrtCherenkovParticleIDand the underlying standaloneirtcode - Particle ID merging
- Particle ID linking
- Simulated hits
- Raw hits
- Cherenkov Particle ID
- Reconstructed Particles