- Table of contents
- Access and Maintenance
- Setting Up and Running FluxReader
- Building Scripts
- FluxReader Classes
Welcome to the FluxReader Wiki page!
FluxReader is a framework designed to make distributions from Dk2Nu flux files. It is written in C++ in conjunction with the ROOT Data Analysis Framework.
Users of FluxReader should join the mailing list to receive notifications of updates. See instructions here.
The cross section target for the Minerva and SciBooNE are currently set to CH2, which is not the best representation of reality.
The NOvA ND size is extremely outdated, Minerva, MiniBooNE, MicroBooNE and SciBooNE have no size information, and all of the values could probably stand to be updated.
In a nutshell, FluxReader reads Dk2Nu flux files and outputs a set of spectra. For a given set of spectra, each spectrum in the set will plot the same variable(s). However, each spectrum will make the distribution for a specific neutrino flavor, parent species, applied cross section, and detector location. The user can configure almost everything, including (but not necessarily limited to): what flavors, parents, cross sections, detectors, binning, labels, variables, and weights to use to create output spectra.
To create its output, FluxReader reprojects each entry in the flux files, or neutrino ray, to the particular detector using a function within Dk2Nu itself that also calculates the new energy and importance weight. The projection is generally done to the same point on the detector, typically the center of the front face. For straight flux distributions, or when no cross section is applied, the weights of each neutrino ray are summed to output a flux, and the units are scaled to be neutrinos per square cm.
For event rate distibutions, or when cross sections are applied, all necessary cross section splines are generated from a root file created by the genie_xsec product. Splines are created for each neutrino flavor, target nucleus, and interaction current. The new energy from each reprojected neutrino ray is given to the appropriate spline, and the cross section for the given energy is returned. The event rate is calculated as flux*cross section*number of targets, where number of targets is calculated based on standard molar mass and an estimate that each detector is a single material. The result for each neutrino ray is summed to output an event rate, and the units are scaled to be events per kton.
The neutrino fluxes and event rates are not scaled to any POT value; however, FluxReader stores the number of POT used to generate its distributions. The POT value is stored in a histogram called TotalPOT with a single bin set to the number of POT. This means that the user can easily scale to the desired POT by the simple ratio 'user defined scale'/TotalPOT->GetBinContent(1).
These pages contain basic information on the various classes used in the FluxReader framework. Each page will discuss some general details on how the classes work, how to create (construct) each class as appropriate, and how to use their public member functions. It will NOT discuss protected and private members, or friendship. Even amongst the publicly accessible functions, many are of limited use to the user. Typically, the most important functions are detailed first, followed by functions that are mainly helpful for the user for debugging purposes.
Generally, the user should gain familiarity with building scripts using the above sections, and consult these pages when trying to start performing more difficult tasks. Furthermore, the FluxReader Demo scripts demonstrate much of the following information, so the user should consult those as well.
The FluxReader Wiki is located here.
FluxReader comes with many Demo scripts. See the file attached below, FluxReader_Tutorial.zip, for a recorded version of a live demo. Download and unzip the file, then double click index.htm to start the playback on a web browser.
The FluxReader technical note is linked below. This document is written at a level for developers and is wholly unnecessary for the general user. You will not be made a developer just because you read it anyway!