Skip to content

Truth_Info

jdkio edited this page May 1, 2024 · 3 revisions

Truth_Info is one of three ttrees contained in the tmsreco.root files. As the name suggests, it contains the "true" information about an event. That is, information without reconstruction effects. Because of this, branches on it should not be used for certain reconstruction-level plots. The only exception for now is that we can use it to get information about LAr tracks because we don't have LAr reconstruction for now. So, for example, when matching from LAr to TMS, use the true LAr end position. To make it more authentic, we can add some random variation to the LAr track endpoints to simulate the effects of reconstruction, but don't worry about that for now.

The Truth_Info branches are all defined here. Currently, there is a one-to-one correspondence of the entries with ttrees reco_tree and line_candidates. That is, if you are on entry 123 of reco_tree, then the corresponding truth info is stored on entry 123 of Truth_Info. It's unclear if this will always be the case.

Information about specific branches

Note that PDG (Particle Data Group) is always a number defines the particle. Muon is 13, anti-muon is -13. See full list here.

Branches about the incoming neutrino

All this truth info assumes a single event per spill. In the case of overlay (where there are multiple events per spill), values are either default or not filled correctly.

  • Interaction - The genie reaction string, which tells you about the interaction. [CC] = Charged current, [NC] = Neutral current, QES = quasi-eleastic, res = resonant, dis = Deep inelastic scattering.
  • IsCC - Whether the event was a charged current interaction or not
  • NeutrinoPDG - 12 = electron neutrino, 14 = muon neutrino
  • NeutrinoP4 - a 4-vector containing the neutrino momentum (Px, Py, Pz) and the energy in element 3.
  • NeutrinoX4 - a 4-vector containing the neutrino position (xyz) and time in element 3.

Branches about the outgoing lepton

  • LeptonPDG, LeptonP4, LeptonX4 - Same as neutrino but for the lepton. Only defined if the lepton deposited any energy inside the TMS. In the case of pileup (multiple events in the same slice), the lepton that deposited the most visible energy is stored. If you need particle info regardless, see PDG branch instead.
  • MuonP4, Muon_Vertex, Muon_Death, Muon_TrueKE, Muon_TrueTrackLength - Information about the muon of an event (not defined if there was no muon, and ambiguous if the event is from a pileup sample). P4 is starting momentum, Vertex is starting location 4-vector, Death is ending location 4-vector, and TrueKE is true starting kinetic energy.
  • Muon_TrueTrackLength is the true track length in areal density (density * distance) where each true track segment is added up individually.

Branches about the other particles

  • nTrueParticles - The number of true particles saved in the genie record
  • VertexID - The vertex id of the particle (ie pointing to the interaction number in the case of overlay/pileup)
  • Parent - Points to the index of the parent particle (or -1 in the case of primary particles)
  • TrackId - The track number of the particle
  • PDG - The PDG number of this partlce
  • TrueVisibleEnergy - True visible energy deposited in the TMS by this particle
  • BirthMomentum, DeathMomentum - True birth/death momentum 4-vector. Only birth-energy is stored correctly.
  • BirthPosition - True position of birth or death of this particle

Position/Momentum information at "key points"

We also save the position and momentum of particles at key points inside LAr and TMS. If a particle doesn't enter/exit any key points, the values are set to a default value. See slide 4 of this talk for more information and a diagram.

The key points are related to entering/exiting the LAr (MomentumLArStart, PositionLArStart, MomentumLArEnd, PositionLArEnd), entering/exiting the TMS (MomentumTMSStart, PositionTMSStart, MomentumTMSEnd, PositionTMSEnd), TMS-thin plane section, and TMS's first two planes. See the branch definitions for exact naming. This are defined as entering or exiting boxes of specific size as defined in the TMS_consts file. In addition, we also save the position/momentum of particles crossing specific points in Z. Specifically, the end of the LAr and the start/end of the TMS. These are defined here

Branches saving truth information about reconstructed tracks

A reconstructed track can be made up of energy that comes from several particles. So we define the primary particle of a track as the particle that deposited the most true visible energy that is contained in the reconstructed hits of a track. The secondary particle is the second-most contributing particle. In principle, we could save additional levels, but in most cases only the primary and secondary particles are needed.

Other than RecoTrackN, all branches are vectors of size RecoTrackN. Position and momentum branches are each 4-vectors, though I don't think the energy element of the 4-momentum is stored correctly.

  • RecoTrackN - The number of reconstructed tracks
  • RecoTrackTrueVisibleEnergy - The total true visible energy present in this reco track
  • RecoTrackPrimaryParticleIndex - The index of the primary particle pointing to the PDG branch. So PDG[RecoTrackPrimaryParticleIndex] points to the PDG of the primary particle. If -999999 or so, then it's from a particle created in the geant4 simulation instead of a true genie generator particle. Currently we don't save information about the geant4 particles, though we plan to in the future.
  • RecoTrackPrimaryParticleTrueVisibleEnergy - The true visible energy of the primary particle
  • RecoTrackSecondaryParticleIndex, RecoTrackSecondaryParticleTrueVisibleEnergy - Same as primary but for the secondary particle.
  • RecoTrackPrimaryParticleTrueMomentumTrackStart, RecoTrackPrimaryParticleTrueMomentumTrackEnd - The true momentum at the start/end of the reco track of the primary particle. Where start/end are measured by the point that minimizes the distance in z between the reco start/end and the true start/end.
  • RecoTrackPrimaryParticleTruePositionTrackStart, RecoTrackPrimaryParticleTruePositionTrackEnd - The true position 4-vector at the start/end of the reco track of the primary particle. Where start/end are measured by the point with the closest Z position

Branches about true visible energy in interactions

These branches are used to tune the time slicer. When slicing events, we care about two parts. First, how much energy of a single interaction is contained within the slice. Second, how much energy of other interactions is contained with the slice. We want to maximize the first and minimize the second. So these branches store information about that in terms of true energy. The vertex that deposited the most energy of the slice is the primary vertex.

  • VertexIdOfMostEnergyInEvent - The vertex id of the event that deposited the most energy
  • TotalVisibleEnergyFromVertex - The total true visible energy from the primary vertex in all slices
  • VisibleEnergyFromVVerticesInSlice, VisibleEnergyFromUVerticesInSlice - The visible energy from all vertice in slice when added together
  • VertexVisibleEnergyFractionInSlice - The fraction of visible energy of the primary vertex inside the slice. A lower number means much of the vertex's energy is not contained in this slice
  • PrimaryVertexVisibleEnergyFraction - The fraction of visible enregy of the primary vertex compared to others. A lower number means other vertices are contributing to the event, meaning there's more pileup