reboost.daq package¶
Submodules¶
reboost.daq.core module¶
- reboost.daq.core._run_daq_non_sparse_impl(evt, chids, tau_preamp, noise_threshold, baseline_slope_threshold, trigger_threshold, waveform_length, trigger_position)¶
Numba-accelerated implementation of
run_daq_non_sparse().
- reboost.daq.core.run_daq_non_sparse(evt, n_sim_events, source_activity, *, tau_preamp=500, noise_threshold=5, baseline_slope_threshold=0.01, trigger_threshold=25, waveform_length=100, trigger_position=50)¶
Run the DAQ in non-sparse mode.
Pipe simulated HPGe events through the DAQ system in non-sparse mode. Return a table where each row represents an event that was actually recorded by the DAQ. for each event and each channel, determine the characteristics of the waveform.
Warning
This code assumes that the simulated events are time-independent.
The returned Awkward array (the table) has the following fields:
evtid(int): event ID in the simulation.timestamp(float): timestamp of the event.has_trigger(array of bools): this waveform triggered the DAQ.has_pre_pulse(array of bools): the waveform has a signal below trigger_threshold in the first part of the waveform, before the trigger position.has_post_pulse(array of bools): the waveform has a signal in the second part of the waveform, after the trigger position.has_slope(array of bools): waveform has decaying tail of earlier signals, that came before this waveform.
The table sits in a tuple, together with a list of the channel identifiers, with the same order as in the data array.
- Parameters:
evt (Array) – simulated events.
source_activity (float) – source activity in Bq.
n_sim_events (int) – total number of simulated events.
tau_preamp (float) –
pre-amplification RC constant in microseconds. the signal model is an exponential:
\[f(t) = E_i * e^{((t - t_i) / \tau)}\]where \(E_i\) is the energy of the signal and \(t_i\) is the time it occurred.
noise_threshold (float) – threshold (in keV) for a signal to be “visible” above noise. In LEGEND-200, the “energy” of forced trigger events is gauss-distributed around 0.5 keV with a standard deviation of about 0.5 keV.
baseline_slope_threshold (float) – threshold (in keV/us) on the baseline slope to be tagged as not flat. in LEGEND-200, the slope of waveforms in force-triggered events is gauss-distributed around 0 with a standard deviation of about 2 keV/ms.
trigger_threshold (float) – amplitude (in keV) needed for the DAQ to trigger on a signal.
waveform_length (float) – length of the waveform in microseconds stored on disk.
trigger_position (float) – location (offset) in microseconds of the triggered signal in the waveform.
reboost.daq.utils module¶
- reboost.daq.utils.print_random_crash_msg(rng)¶