Project

General

Profile

Dk2nu ntuples

Dk2nu is a flux ntuple format and associated library with methods for analyzing flux ntuples (e.g. for calculating location weights). Some documentation of Dk2nu is available at https://cdcvs.fnal.gov/redmine/projects/dk2nu/wiki. It is used by several Fermilab experiments (DUNE, NOvA, MINERvA,....).

The Dk2nu ntuple is essentially a list of neutrinos that are created by a beam simulation. Each neutrino is associated with a dk2nu object which contails detailed information about the neutrino kinematics and the kinematics of its hadron ancestors. See below for further details on the information contained in the dk2nu object and for examples on how to produce spectra of interest from a dk2nu ntuple.

Example plotting code

Some examples of how to plot quantities from a g4lbnf dk2nu ntuple are available in our repository. See for example:

A key feature to be aware of is that branches SHOULD ALWAYS BE PLOTTED USING THE IMPORTANCE WEIGHTS (dk2nu.decay.nimpwt). If you wish to plot a quantity (e.g. neutrino flux versus energy) at a detector location, you should also use location weights (dk2nu.decay.wgt[ 1 ] for the center of the near detector and dk2nu.decay.wgt[ 2 ] for the center of the far detector).

D2knu Branches

Dk2nu output files generally contain two ntuples -- a metadata ntuple and the neutrino ntuple.

  • dkmetaTree
    • dkmeta
      • job: Simulation job number
      • pots: number of protons on target simulated
      • beam0X: initial X position of the primary protons in cm
      • beam0Y: initial Y position of the primary protons in cm
      • beam0Z: initial Z position of the primary protons in cm
      • beamhwidth: beam horizontal radius (rms) in cm
      • beamvwidth: beam vertical radius (rms) in cm
      • beam dxdz: initial proton dx/dz
      • beam dydz: initial proton dy/dz
      • beamsim: Text string describing the simulation that generated the file
      • physics: Text string describing the version of geant and the physics list that generated the file
      • physcuts: Text string describing geant4 tracking cuts
      • tgtcfg: Text string describing target configuration; in g4lbnf, it holds the name of the macro that was used to generate the file
      • horncfg: Text string describing horn configuration; meant to hold information about the horn current; was not set correctly as of g4lbnf v3r5
      • dkvolcfg: Text string describing configuration of decay pipe (e.g. Helium)
      • location: Vectors with information about locations for which location weights were calculated; the first entry corresponds to random locations (ie no location weighting)
        • x: x position of locations (in cm)
        • y: y position of locations (in cm)
        • z: z position of locations (in cm)
        • name: text strings with location names
        • vintnames: names associated with vector of additional ints that can be added to ntuple
        • vdblnames:names associated with vector of additiona doubles that can be added to ntuple
  • dk2nutree
    • dk2nu: one entry corresponds to a neutrino decay
      • job: Simulation job number
      • potnum: Number of primary proton that generated the neutrino (number of protons simulated increments from zero at beginning of job to total number of protons simulated at end)
      • decay
        • norig: Neutrino origin; 1 = particle produced in target or baffle, 3 = muon decay, 3 = all others
        • ndecay: Decay code of decay that produced neutrino
        • ntype: GEANT particle code of neutrino
        • vx: x component of neutrino vertex position in cm
        • vy: y component of neutrino vertex position in cm
        • vz: z component of neutrino vertex position in cm
        • pdpx: x component of final momentum of neutrino parent in GeV
        • pdpy: y component of final momentum of neutrino parent in GeV
        • pdpz: z component of final momentum of neutrino parent in GeV
        • ppdxdz: px/pz of parent at parent production point
        • ppdydz: px/pz of parent at parent production point
        • pppz: pz of parent at parent production point in GeV
        • ppenergy: energy of parent at parent production point in GeV
        • ppmedium: empty branch
        • ptype: GEANT particle code of neutrino parent
        • muparpx: x component of neutrino grandparent momentum in GeV, if parent want a muon; -99999 if parent was not a muon
        • muparpy: y component of neutrino grandparent momentum in GeV, if parent want a muon; -99999 if parent was not a muon
        • muparpz: z component of neutrino grandparent momentum in GeV, if parent want a muon; -99999 if parent was not a muon
        • mupare: energy of neutrino grandparent momentum in GeV, if parent want a muon; -99999 if parent was not a muon
        • necm: neutrino energy in parent rest frame in GeV
        • nimpwt: Importance weight; SHOULD BE APPLIED ANY DISTRIBUTION YOU MAKE WITH THIS NTUPLE
      • nuray
        • px: A vector of x components of neutrino momentum in GeV, corresponding to each of the locations specified in the metadata ntuple
        • py: A vector of y components of neutrino momentum in GeV, corresponding to each of the locations specified in the metadata ntuple
        • pz: A vector of y components of neutrino momentum in GeV, corresponding to each of the locations specified in the metadata ntuple
        • e: A vector of neutrino energies in GeV, correpsonding to each of the locations specified in the metadata ntuple
        • wgt: A vector of weights that should be applied to produce spectra at the specific detector locations; information on the locations is in the metadata tuple
        • size: length of each of the above vector (= number of locations in metadata ntuple)
      • ancestor -- all of these are a vector with length = number of ancestors in the neutrinos ancestry tree
        • pdg: pdg code of ancestor
        • startx: x component of start position of ancestor in cm
        • starty: y component of start position of ancestor in cm
        • startz: z component of start position of ancestor in cm
        • startt: ??
        • startpx: x component of start momentum of ancestor in GeV
        • startpy: y component of start momentum of ancestor in GeV
        • startpz: z component of start momentum of ancestor in GeV
        • stoppx: x component of end momentum of ancestor in GeV
        • stoppy: y component of start momentum of ancestor in GeV
        • stoppz: z component of start momentum of ancestor in GeV
        • polx: not filled
        • poly: not filled
        • polz: not filled
        • pprodpx: ?
        • pprodpy: ?
        • pprodpz: ?
        • nucleus: pdg(?) code of nucleus on which the interaction happened -- not filled currently for LBNF
        • parIndex: index of parent in list of ancestors
        • proc: string describing processes that created each ancestor
        • ivol: string describing the volume in which the ancestor was created
        • imat: string describing material where particle was created (?)
      • ppvx: x component of neutrino parent production vertex in cm
      • ppvy: y component of neutrino parent production vertex in cm
      • ppvz: z component of neutrino parent production vertex in cm
      • tgtexit:
        • tvx: x position at which ancestor exited target in cm
        • tvy: y position at which ancestor exited target in cm
        • tvz: z position at which ancestor exited target in cm
        • tpx: x component of ancestor momentum in GeV at target exit
        • tpy: y component of ancestor momentum in GeV at target exit
        • tpz: z component of ancestor momentum in GeV at target exit
        • tptype: GEANT particle code of ancestor that exited target
        • tpgen: the generation number of the neutrino; beam protons have tgen=1; particle produced by p-C interactions have tgen=2 and so on
      • traj: Ancestry entries storied in a historical format -- use the ancestor vectors above
        • trkx:
        • trky:
        • trkz:
        • trkpx:
        • trkpy:
        • trkpz:
  • flagbits: Container for holding extra information desired by the user; not currently filled
  • vint: Container for holding extra information desired by the user; not currently filled
  • vdbl: Container for holding extra information desired by the user; not currently filled