DUNE / larnd-sim

Simulation framework for a pixelated Liquid Argon TPC
Apache License 2.0
10 stars 27 forks source link

Neutron energy should not contribute to ionization #154

Open DanielMDouglas opened 1 year ago

DanielMDouglas commented 1 year ago

edep-sim passes neutrons with non-zero dE which are then passed to quenching. This dE is entirely non-ionizing, which can be seen by accessing the TG4HitSegment's GetSecondaryDeposit method (this is set in edep-sim here). There is currently no way to distinguish non-ionizing deposits becuase this information is not passed forward by dumpTree.py.

DanielMDouglas commented 1 year ago

Secondly, there is ambiguity about the light and charge production from the total and non-ionizing energy deposits. Should the difference in these two (nominally, the "ionizing" energy) also contribute to the excitation that produces light through the non-ionization channel?

DanielMDouglas commented 1 year ago

I propose to record the secondary energy deposit from edep-sim in the dumpTree.py stage, and use the difference in these two to calculate the ionizing energy. This ionizing energy is then used to calculate recombination factor and charge yield, while the total energy is still used to calculate light yield. This effectively masks out energy depositions from neutrons, leaving dE's from other particles unchanged.

DanielMDouglas commented 1 year ago

These changes are implemented in https://github.com/DUNE/larnd-sim/pull/155

YifanC commented 1 year ago

Thank you Dan for looking into this. The commit is based on the assumption that for most particles total energy is the same as the ionising energy from the edepsim output, except for neutron, which have the total energy as the non-ionising energy (occasionally electrons can have non-zero non-ionising energy as well). Therefore, it prevent neutrons to produce charge but will allow it to produce scintillation light.

Conceptually, we agree that work function is to be applied to the total energy instead of the ionising energy. Given the edepsim/Geant4 output, the change in code may improve the corner cases.

Meanwhile, I want to point out a few open questions before we take actions for the next steps:

  1. What are the definition of total energy, ionising energy, non-ionising energy from edepsim/Geant4?
  2. The understanding of above is based on our observation with neutron, photons, electrons, etc. with limited energy range. What would be the impact in large?
  3. The work function of light (W_PH) is not really applicable for neutral particles like neutrons.
  4. What's the impact of incorrect neutron signals to the analyses?
  5. What about other neutral particles?
  6. Do we have nuclei entering this scene?
YifanC commented 1 year ago
  1. Observed non-zero secondary energy for the following particles: pi+, pi-, mu+, proton, lamda, deuteron, neutron, kaon0_long, kaon0_short. This may not be a complete list. For neutral particle, the total energy is equivalent to the secondary energy. For the others, their total energy is greater than the secondary energy.
  2. Observed Kaon0_long and Kaon_short also produce segments with non-zero dE. For those kaons, the total energy and the secondary energy have the same values.
  3. Segments of nuclei can deposit energies. It might be fine to use the same model for nuclei.
DanielMDouglas commented 1 year ago

To add to this issue, there is a clear difference in the way that the secondary energy is defined depending upon whether edep-sim is using the NEST or Doke-Birks ionization model. The NEST model seems to define the primary deposit as "total energy" and the secondary as "non-ionizing energy", while the Doke-Birks implementation gives the primary as "total energy" and the secondary as something that looks like "total energy + non-ionizing energy". This is likely a bug in the implementation of the Doke-Birks model. The discussion above and the proposed code change assumes the NEST-like definition.

sam-fogarty commented 1 year ago

Also here are some questions to think about:

  1. Where do these segments occur spatially? e.g. are the neutron segments along the trajectory of the neutron, or just at the interaction point(s)?
  2. How many segments per neutron or per gamma, etc?
sam-fogarty commented 1 year ago

Here are some plots showcasing instances of neutron trajectories and neutron segments in a MiniRun4 spill file. All neutron segments on their own produce charge (from TotalEnergyDeposit) below typical charge thresholds (~5-6 ke-), adjusting for recombination with the Birks model. So unless they occur close enough together to produce a single hit, they won't produce hits. (Well in real data, the threshold is not fixed and could be low enough on some channels to produce a hit.)

neutron_segment_charge_deposit neutron_trajectory_and_segments_50-instances

sam-fogarty commented 1 year ago

Also, only ~2.7% of the neutron segments contribute to hits. Most of the contributions are <5%, just a handful in one miniRun4 file that have >20%. neutron_fractional_contribution_to_hits