Title: The Application of SNiPER to the JUNO Simulation,
Abstract: JUNO is a multipurpose neutrino experiment which is designed to determine
neutrino mass hierarchy and precisely measure oscillation parameters. As one of
the important systems, the JUNO offline software is being developed using the
SNiPER software. In this proceeding, we focus on the requirements of JUNO
simulation and present the working solution based on the SNiPER.
The JUNO simulation framework is in charge of managing event data, detector
geometries and materials, physics processes, simulation truth information etc.
It glues physics generator, detector simulation and electronics simulation
modules together to achieve a full simulation chain. In the implementation of
the framework, many attractive characteristics of the SNiPER have been used,
such as dynamic loading, flexible flow control, multiple event management and
Python binding. Furthermore, additional efforts have been made to make both
detector and electronics simulation flexible enough to accommodate and optimize
different detector designs.
For the Geant4-based detector simulation, each sub-detector component is
implemented as a SNiPER tool which is a dynamically loadable and configurable
plugin. So it is possible to select the detector configuration at runtime. The
framework provides the event loop to drive the detector simulation and
interacts with the Geant4 which is implemented as a passive service. All levels
of user actions are wrapped into different customizable tools, so that user
functions can be easily extended by just adding new tools. The electronics
simulation has been implemented by following an event driven scheme. The SNiPER
task component is used to simulate data processing steps in the electronics
modules. The electronics and trigger are synchronized by triggered events
containing possible physics signals.