Abstract

Monte Carlo event generators are a critical tool for the interpretation of data obtained by neutrino experiments. Several modern event generators are available which are well-suited to the GeV energy scale used in studies of accelerator neutrinos. However, theoretical modeling differences make their immediate application to lower energies difficult. In this paper, I present a new event generator, MARLEY, which is designed to better address the simulation needs of the low-energy (tens of MeV and below) neutrino community. The code is written in C++14 with an optional interface to the popular ROOT data analysis framework. The current release of MARLEY (version 1.2.0) emphasizes simulations of the reaction 40Ar(νe,e−)40K⁎ but is extensible to other channels with suitable user input. This paper provides detailed documentation of MARLEY's implementation and usage, including guidance on how generated events may be analyzed and how MARLEY may be interfaced with external codes such as Geant4. Further information about MARLEY is available on the official website at http://www.marleygen.org. Program summaryProgram title:MARLEY 1.2.0CPC Library link to program files:https://doi.org/10.17632/4v7zxnc8j3.1Developer's respository link:http://github.com/MARLEY-MC/marleyCode Ocean capsule:https://codeocean.com/capsule/9868179Licensing provisions: GNU General Public License 3.0Programming language: C++14External routines/libraries used: GNU Scientific Library [1,2] (required), ROOT [3,4] (optional)Nature of problem: Simulation of neutrino-nucleus scattering events at energies of tens-of-MeV and belowSolution method: Initial two-to-two scattering kinematics are sampled using the allowed approximation differential cross section and tables of precomputed nuclear matrix elements. Subsequent de-excitations of the remnant nucleus are simulated using a Monte Carlo implementation of the Hauser-Feshbach statistical model and tabulated γ-ray decay schemes for discrete nuclear levels.Additional comments including restrictions and unusual features: Input data are provided with the code that are suitable for producing simulations of the charged-current reaction 40Ar(νe,e−)40K⁎, coherent elastic neutrino-nucleus scattering on spin-zero target nuclei, and neutrino-electron elastic scattering on any atomic target. Preparation of new reaction input files (whose format is documented in Appendix B) would enable other reaction channels and nuclear targets to be handled by the existing code framework. Although there is no maximum neutrino energy enforced by the code itself, realistic neutrino-nucleus scattering events may be generated up to roughly 50 MeV. Above this energy, the effects of forbidden nuclear transitions, which are neglected in the current treatment of the cross sections (see section 2.1), become increasingly important.

Highlights

  • Monte Carlo event generators are a widely-used tool in nuclear and particle physics

  • Beyond the nuclide-specific items managed by the StructureDatabase, there are two settings which are common to all nuclei: the cutoff values max and λmax used to truncate the sums in eq (29) and eq (49), respectively, and a list of the nuclear fragments to consider when simulating decays using the Hauser-Feshbach model

  • If the target key is omitted from the job configuration file, the default behavior mentioned in section 4.1.6 will be used: every distinct nuclide that appears in the initial state of at least one configured reaction will be included in the neutrino target with equal abundance

Read more

Summary

Introduction

Monte Carlo event generators are a widely-used tool in nuclear and particle physics. These computer programs implement probabilistic models of physics processes and produce corresponding sets of events: lists of particles (represented by their charges, 4-momenta, etc.) involved in simulated interactions. Simple expressions are adequate to compute differential cross sections for all but the most precise calculations of these processes, and, with the recent addition of a CEvNS model [43], the GENIE event generator currently provides an implementation of all of them that may be suitable for use by low-energy neutrino experiments. Despite the successes of standard neutrino event generators in describing accelerator neutrino data, their prevailing treatment of inelastic neutrino-nucleus scattering is likely to be inadequate when applied to interactions at energies of tens of MeV and below This is due in part to approximations made in their modeling of nuclear structure.

MARLEY treatment of neutrino scattering
Coherent elastic neutrino-nucleus scattering
Coulomb corrections
Nuclear de-excitation model
Nuclear fragment emission
Fragment transmission coefficients
Gamma-ray transmission coefficients
Neutrino-electron elastic scattering
Random sampling implementation
Discrete distributions
Continuous 1D distributions: inverse transform approach
Algorithm
Validation
Implementation details
Event generation workflow
Define incident neutrino spectrum
Configure reactions
Define target
Neutrino energy selection
Reaction mode sampling
Selection of a nuclear transition
Outgoing lepton direction
Event loop
Unbound nuclear states
Bound nuclear states
Finishing a de-excitation step
Installation and usage
The marley-config utility
Compiling programs using marley-config
Generator configuration
Target composition
Reactions
Monoenergetic
Fermi-Dirac distribution
Muon decay-at-rest
Histogram
TH1 and TGraph
Interpreting the output
Particle numbering scheme
ASCII file format An ASCII-format output file begins with the line
The EventFileReader class
Accessing information from an event record
Converting event distributions to physics quantities
Examples
Interfacing MARLEY with external tools
Interfacing MARLEY with Geant4
The marg4 Geant4 application
LArSoft interface
Prospects for future development
10. Acknowledgements
Nuclear structure data file format
Reaction input file format
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call