pkgs/NuBeamWeights (NOvA offline)

NuBeamWeights contains a class called skzpReweight which is designed to the tune simulations of the neutrino flux based on the input information. Structurally skzpReweight is divided into two parts Fluk and Beam (following the naming convention used in the MCReweight package of the original MINOS implementation of SKZP). Fluk is a reweighting based on uncertainties in hadron production parameters while Beam is a reweighting based on uncertainties in horn current (beam focusing) parameters.


At this time, there is no pre-defined configuration files for NuBeamWeights.


The easiest way to implement this package is to use the laters version of NovaBeamMat and use the flag associated with MakeMats.C . 0 is the unweighted version, 1 generates histograms with Fluk weighting, 2 with Fluk and Beam weighting, and 3 with Fluk and Beam weighting using a different bpath.

The constructor of skzpReweight has default parameter values that allow it to run smoothly, but takes as a configuration arguments:
  • string fpath: the path and filename of the ROOT file with information for Fluk (by default: "/nova/data/flux/SKZPdata/fluka05ptxf.root")
  • string bpath: the path and filename fo the ROOT file with information for Beam (by default: "/nova/data/flux/SKZPdata/IPNDhists.root", another configuration: "/nova/data/flux/SKZPdata/beamsys_Dogwood1_Daikon07_v2.root")
  • int flag: specifying the name-format of histograms in bpath and flag<=0 skips Beam configuration (by default: 2, for "beamsys_Dogwood1_Daikon07_v2.root" use 1)

The constructor also sets parameters fFPar and fBPar to default values based on Mark Dorman's "Beam Fit Position Paper" (minos-7146) which can be changed with SetParams, SetFlukParams or SetBeamParams.

The main two methods of interest in skzpReweight are GetFlukWeight and GetBeamWeight (use GetWeight to return the product). GetFlukWeight takes as parameters int ptype (MCFLux.tptype, GEANT-code for parent particle exiting the target), double pt (MCFlux::tpt, the hypotenuse of tpx and tpy), and double pz (MCFlux::tpt, z-component of the momentum of the parent particle exiting the target) or alternatively you can pass it an MCFlux object from the SimulationBase package (from which it extracts that same information). GetBeamWeight takes as parameters the neutrino energy, integer for the detector location, and integer for the beam configuration (see NuBeamWeights/Conventions.h for enums).

Technical description

See references for physics motivations behind skzpReweight GetWeight functions.

skzpReweight Fluk

skzpReweight Beam

The mapkey structure stores the detector, the beam configuration, the neutrino type, and the beam reweight effect being applied (right now HornIDist, uncertainties in the current distribution of the beam-focusing horn and HornIMiscal, offset uncertainties in the current passes through the horn). BeamConfig() gets a 1-D histograms for each mapkey combination (see Conventions.h for enum list) with name as described by GetHname() for a given flag specified during the constructor. Each found with that name is expected to be a 1-D histogram with energy on the x-axis (any binning), and the reweighting (i.e. adjusted frequency relative to unweighted frequency) on the y-axis.

Further References