Skip to content

Comments

LArPix periodic reset#295

Merged
jaafar-chakrani merged 5 commits intodevelopfrom
feature/periodic_reset
Nov 5, 2025
Merged

LArPix periodic reset#295
jaafar-chakrani merged 5 commits intodevelopfrom
feature/periodic_reset

Conversation

@jaafar-chakrani
Copy link
Member

@jaafar-chakrani jaafar-chakrani commented Oct 17, 2025

Motivation

This PR implements the periodic reset feature in LArPix. In detector operations, LArPix typically operates with a periodic reset to drain away slowly-accumulating charge on the front end due to e.g. leakage currents. In the past, this reset has been set to a period of ~400 microseconds, which means that it wasn't particularly important to simulate (as a drift window is ~200 microseconds). However, to mitigate far field effects, a significantly faster periodic reset has been used in more recent LArPix operations, with O(10 microsecond) periods, making it more important to take into account.

Implementation

  • The periodic reset cycles can be set from the detector properties YAML configuration file.
  • The phase of the periodic reset on a given pixel is chosen randomly.
  • Everytime the time tick ic reaches the periodic reset in fee.get_adc_values, true_q and q_sum are set to 0 and to the reset noise respectively, and the backtracking current_fractions is updated accordingly.
  • Temporary: added qs and true_qs arrays to record the changes to the charge at each time tick and save arrays of interest in an .npz file for debugging purposes. To be removed once this is validated.

Validation

So far, I ran a couple events with 25.6 and 10000.0 microseconds to compare the changes to the waveforms.

  • Example 1: The periodic reset noise is reflected in the regular steps every 256 time tick. It also leads to the removal of a hit as it suppresses the long rising edge of the signal.
image image
  • Example 2: This time, the periodic reset induces an additional early hit due to the positive charge injection.
image image

Further validation is still needed:

  • Look a the impact on the collected charge for shower events.
  • Compare the hit level distributions with and without the updates.
  • Compare waveforms with no periodic reset at all.
  • Confirm that the backtracking information is still okay for downstream analyses.

Remaining code updates

  • Add an option to disable the periodic reset (e.g. when periodic_reset_cycles < 0)
  • Remove the extra arrays used for debugging

@jaafar-chakrani
Copy link
Member Author

Added option to completely ignore the periodic reset if it's set < 0 and used that as the default. Below is a comparison with and without the periodic reset:
image image

Also, a comparison of the hit-level distributions (in linear and log y-axis scale):
image

@jaafar-chakrani jaafar-chakrani marked this pull request as ready for review November 5, 2025 21:41
@jaafar-chakrani jaafar-chakrani merged commit 37b5968 into develop Nov 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant