Data products are classes which can be saved into the art ROOT output file. But, more importantly, they are the means by which a module can learn the result of other modules. In this sense, data products are a communication protocol between modules. A module which understand this protocol gains access to the complete set of LArSoft results. This does not have to be limited to art modules: any program which understands this protocol can in principle gain the same wide access. A module with this knowledge and, in addition, the ability to use LArSoft service providers, gains an access equivalent to any “native” module.
Currently, most of the data products are defined in the larsoftobj UPS products (larcoreobj, lardataobj, larsimobj, and nutools‘s nusimdata).
LArSoft provides a collection of essential data products, organized in simulation, detector output, reconstruction and analysis data. Users can define their own additional data products to complement the information, but these become part of the protocol only when accepted in LArSoft. In addition, it is possible to express connections between data products through associations.
We provide here a list of the most relevant and commonly used data products; almost all of them are stored in collections (for example, sim::SimChannels, raw::RawDigit and recob::Wire are all stored in C++ vectors, with each element describing an individual TPC readout channel).
Simulation
Particle generation:
- simb::MCTruth
- the interaction generated by event generators like GENIE, Corsika, etc.; usually, one for each generator
- simb::MCFlux
- the flux of particles toward the detector (neutrinos from the beam, cosmic rays, etc.); usually, one for every simb::MCTruth
- simb::MCParticle
- a single generated particle, either by an event generator (GENIE, Corsika, …) or by the detector simulation (GEANT4)
Detector simulation:
- sim::SimChannel
- the electrons deposited on one TPC readout channel, as function of time, and connected to the generated particle which produced them
- sim::SimPhotons
- the photons reaching one optical detector readout channel
- sim::SimPhotonsLite
- the count of photons reaching one optical detector readout channel as function of time
Particles as observed in the detector, useful to characterize the efficiency of reconstruction algorithms:
- sim::MCHit
- charge from a single particle seen by a TPC readout channel
- sim::MCTrack
- the observable energy deposit coming from a single particle
- sim::MCShower
- the observable energy deposit coming from a electromagnetic shower of particles
Detector output
These data products originate either from simulation or from the actual output from the detectors, and are the merging point between simulation and real data.
Beam status:
- raw::BeamInfo
- beam status data
- sumdata::POTSummary
- Protons On Target information (stored once per run)
Detector readout:
- raw::RawDigit
- digitized signal on a TPC readout channel as function of time
- raw::OpDetWaveform
- digitized signal on a optical detector channel as function of time
- raw::AuxDetDigit
- digitized signal on a channel from an auxiliary detector as function of time
Triggering:
- raw::Trigger
- a single trigger
- raw::ExternalTrigger
- a single trigger from a source external to the TPC
Reconstruction
Single channel reconstruction (1-D)
- recob::Wire
- calibrated signal from a TPC readout channel (the name is misleading!)
- recob::Hit
- signal from a single charge cluster on a TPC channel
- recob::OpHit
- single from a scintillation event on a optical detector readout channel
Planar reconstruction (channels lying on the same plane and same TPC, 2-D)
- recob::Cluster
- projection of a particle energy deposit on a single view, as a set of geometrically related hits
- recob::EndPoint2D
- point on a TPC view pinning an extreme of a cluster
Physics object reconstruction (3-D; can span multiple TPC volumes)
- recob::SpacePoint
- point reconstructed in the cryostat volume
- recob::Vertex
- point representing an interesting physics reaction (e.g., decay, creation, emission of a δ ray)
- reco::Cluster3D
- cluster of geometrically related, reconstructed space points
- recob::Track
- a particle manifesting with a track-like trajectory (e.g. from muons, protons, etc.)
- recob::Shower
- a particle manifesting as a cascade of daugghter particles (e.g. from electrons and photons)
- recob::PCAxis
- 3-D axis as extracted by a principal component analysis
- recob::Seed
- a short 3-D segment, useful to start tracking
- recob::OpFlash
- a scintillation flash reconstructed with the optical detector data
Global reconstruction:
- recob::PFParticle
- a reconstructed particle as member of a hierarchy describing the evolution in time of a physics event (particle flow)
- recob::Event
- identification of a single physics event (as opposed to the readout/art event)
Analysis
These data products describe the results of data analysis. Some of them are still borderline with reconstruction:
- anab::Calorimetry
- energy of a reconstructed physics object
- anab::FlashMatch
- connection between a light flash and a physics event in the TPC
- anab::T0
- the time an interaction happened in the detector (commonly called t0)
- anab::CosmicTag
- hypothesis on the nature of a physics object as a cosmic ray
- anab::MVAPIDResult
- particle identification output from a multivariate analysis
- anab::ParticleID
- particle identification hypothesis