Important concepts in LArSoft design include:
- Designing in LArSoft – design principles and practices
- Data Products – the means by which a module can learn the result of other modules.
- Algorithms – An algorithm is a class, with one or more instances managed by user code, that performs a task or part of it
- Services – A LArSoft service is a class, with a single instance managed by the framework, that performs an operation
- Geometry – Simulation/reconstruction knows how to access different geometries, but is not dependent on any specific one.