This package defines basic data objects for use in simulations. Each object is described below and the headings of the sections are links to the header files for the objects.


This is the primary object to collect the particles produced by event generators like GENIE, CRY, etc. It contains a list of MCParticle objects, as well as a MCNeutrino object. There are data members to indicate if the MCNeutrino information is filled and to indicate the origin of the particles, ie beam neutrino, atmospheric neutrino, cosmic ray, single particle, etc.

The track ID values stored in the list of MCParticle objects should not be confused with the track ID values produced by Geant4. They are separate and one cannot take the track ID from one of the MCParticle objects stored in the MCTruth and try to equate that to energy depositions in the detector. The reason is that Geant4 produces its own track IDs which are determined at run time and they cannot be preset for the particles it is going to track.


This object keeps track of flux information from neutrino beam simulations. It has data products that allow for reweighting of events based on parent particle information. Its data members reflect the information kept in NuMI beam flux ntuples.


This object keeps track of the relevant information for a particle that is to be tracked through the simulation. It has data members for position and momentum along a particle's trajectory as well as the mother and daughter information.


The object keeps track of the information for the primary neutrino causing an interaction in the detector. It provides access to MCParticle objects describing the neutrino and any outgoing leptons. It also stores the interaction kinematic information. The header file defines enumerated types that describe different interaction codes from GENIE, Nuance, etc.


This object provides access to the the position and momentum information at each step along a particle's trajectory as determined by the Geant4 simulation.