Running Nuwro

Running Nuwro
Notice: This research summary and analysis were automatically generated using AI technology. For absolute accuracy, please refer to the [Original Paper Viewer] below or the Original ArXiv Source.

The NuWro Neutrino Event Generator developed by the Wroclaw Neutrino Group (WNG) is lightweight but full featured. It handles all interaction types important in neutrino-nucleus scattering as well as DIS hadronization and intranuclear cascade. Its input file, by default params.txt, is a plain text file and the output file, by default eventsout.root, is a root file which can be analyzed by means of the included myroot program, or by standard root, after loading supplied dictionary library event1.so.


💡 Research Summary

The paper provides a practical guide to installing, configuring, running, and analyzing simulations with the NuWro neutrino event generator, a lightweight yet comprehensive tool developed by the Wroclaw Neutrino Group. NuWro is capable of simulating all major interaction channels relevant to neutrino–nucleus scattering, including quasielastic (QE), resonant (RES), deep inelastic scattering (DIS), and coherent (COH) processes, as well as handling DIS hadronization and intranuclear cascade.

Installation requires downloading the source code either from the SVN repository or as a tarball. The core dependencies are ROOT and the Pythia6 library. Because Pythia6 is not bundled with ROOT, the user must compile it separately using the provided build_pythia6.sh script (choosing the appropriate Fortran compiler, gfortran or g77). The resulting libPythia6.so is placed in the ROOT source tree’s lib directory, after which ROOT is reconfigured with ./configure --with-pythia6-libdir=… and rebuilt. Environment variables (ROOTSYS, PATH, LD_LIBRARY_PATH) are set in the user’s profile to enable seamless execution of both nuwro and the auxiliary myroot analysis program.

The simulation is driven by a plain‑text input file, typically named params.txt. Each line is either a comment (starting with #) or a key‑value pair of the form parameter_name = parameter_value. Four data types are supported: integer, double, three‑component vector, and string, which map directly onto internal C++ variables. Core parameters include beam definition (direction, particle PDG code, energy spectrum), target definition (proton and neutron numbers, density model, nuclear model selection), and a set of dynamical switches that enable or disable specific interaction channels. Beam energy can be a fixed value or a histogram defined by a minimum, maximum, and a series of bin counts, allowing realistic flux shapes. The target model can be free nucleon, global or local Fermi gas, Bodek‑Ritchie, effective spectral functions, or deuterium, with optional binding energy and Fermi momentum for Fermi‑gas configurations.

Dynamic switches such as dyn_qel_cc, dyn_res_cc, dyn_dis_cc, and dyn_coh_cc control the inclusion of charged‑current QE, resonant, DIS, and coherent processes, respectively. Each channel can be further tuned via axial mass parameters (qel_cc_axial_mass, qel_nc_axial_mass), vector and axial form‑factor sets (qel_cc_vector_ff_set, qel_cc_axial_ff_set), and additional flags like flux_correction and qel_relat that apply flux normalisation and relativistic corrections.

Running the generator is straightforward: ./nuwro executes with default input and output files, while -i and -o allow custom file names. Command‑line overrides of any parameter are possible with repeated -p "name=value" options, facilitating batch jobs that sweep over parameter spaces.

The output is a ROOT file (default eventsout.root) containing a single TTree named treeout. Each entry represents an event and stores:

  • params: the full set of input parameters used,
  • flags: a set of booleans indicating which primary vertex type (QE, RES, DIS, etc.) occurred,
  • dyn: an integer identifier of the dynamics used,
  • STL vectors in, tmp, out, post, all holding incoming, intermediate, outgoing, post‑cascade, and all particles respectively,
  • weight: a number proportional to the differential cross‑section for that event.

Particle objects are four‑vectors (t, x, y, z) with associated PDG code, mass, optional position vector, and a suite of methods such as E(), Ek(), momentum(), mass(), and v(). The ROOT interpreter natively supports STL vectors, so users can directly query e.g. `out


Comments & Academic Discussion

Loading comments...

Leave a Comment