LArSoft is an integrated, experiment-agnostic set of software tools for liquid argon (LAr) neutrino experiments
to perform simulation, reconstruction and analysis within Fermilab art framework.
Along with common algorithms, the toolkit provides generic interfaces and extensibility
that accommodate the needs of detectors of very different size and configuration.
To date, LArSoft has been successfully used
by ArgoNeuT, MicroBooNE, LArIAT, SBND, DUNE, and other prototype single phase LAr TPCs.
Work is in progress to include support for Dual Phase argon TPCs
such as some of the DUNE prototypes.
The LArSoft suite provides a wide selection of algorithms for event generation,
simulation of LAr TPCs including optical readouts,
and facilities for signal processing and the simulation of "auxiliary" detectors (e.g., scintillators).
Additionally, it offers algorithms for the full range of reconstruction
from hits on single channels, up to track trajectories,
identification of electromagnetic cascades,
estimation of particle momentum and energy,
and particle identification.
LArSoft presents data structures describing common physics objects and concepts,
that constitute a protocol connecting the algorithms.
It also includes the visualisation of generated and reconstructed objects,
which helps with algorithm development.
LArSoft content is contributed by the adopting experiments.
New experiments must provide a description of their detector geometry
and specific code for the treatment of the TPC electronic signals.
With that, the experiments gain instant access to the full set of algorithms within the suite.
The improvements which they achieve can be pushed back into LArSoft,
allowing the rest of the community to take advantage of them.
The sharing of algorithms enabled by LArSoft has been a major advantage for small experiments
that have little effort to devote to the creation of equivalent software infrastructure and tools.
LArSoft is also a collaboration of experiments, Fermilab and associated software projects
which cooperate in setting requirements, priorities and schedules.
A core project team provides support for infrastructure, architecture, software, documentation and coordination,
with oversight and input from the collaborating experiments and projects.
In this talk, we outline the general architecture of the software
and the interaction with external libraries and experiment specific code.
We also describe the dynamics of LArSoft development
between the contributing experiments,
the projects supporting the software infrastructure LArSoft relies on,
and the LArSoft support core project.
|Primary Keyword (Mandatory)||Software development process and tools|
|Secondary Keyword (Optional)||Algorithms|
|Tertiary Keyword (Optional)||Reconstruction|