Straxen nT datastructure for high energy channels

This page is an autogenerated reference for all the plugins in straxen’s xenonnt_online context.

Colors indicate data kinds. To load tables with different data kinds, you currently need more than one get_df (or get_array) commands.

peak_basics_he

Description

Provided by plugin: PeakBasicsHighEnergy

Data kind: peaks_he

High energy channels: attenuated signals of the top PMT-array

Compute the basic peak-properties, thereby dropping structured arrays. NB: This plugin can therefore be loaded as a pandas DataFrame.

Columns provided

Field name Data type Comment
time int64 Start time of the peak (ns since unix epoch)
endtime int64 End time of the peak (ns since unix epoch)
center_time int64 Weighted center time of the peak (ns since unix epoch)
area float32 Peak integral in PE
n_hits int32 Number of hits contributing at least one sample to the peak
n_channels int16 Number of PMTs contributing to the peak
max_pmt int16 PMT number which contributes the most PE
max_pmt_area float32 Area of signal in the largest-contributing PMT (PE)
n_saturated_channels int16 Total number of saturated channels
range_50p_area float32 Width (in ns) of the central 50% area of the peak
range_90p_area float32 Width (in ns) of the central 90% area of the peak
area_fraction_top float32 Fraction of area seen by the top array (NaN for peaks with non-positive area)
length int32 Length of the peak waveform in samples
dt int16 Time resolution of the peak waveform in ns
rise_time float32 Time between 10% and 50% area quantiles [ns]
tight_coincidence int16 Number of PMTs with hits within tight range of mean
type int8 Classification of the peak(let)

Dependencies

%3 peak_basics_he peak_basics_he peaks_he peaks_he peak_basics_he->peaks_he peaklets_he peaklets_he peaks_he->peaklets_he peaklet_classification_he peaklet_classification_he peaks_he->peaklet_classification_he merged_s2s_he merged_s2s_he peaks_he->merged_s2s_he records_he records_he peaklets_he->records_he peaklet_classification_he->peaklets_he merged_s2s_he->peaklets_he merged_s2s_he->peaklet_classification_he raw_records_he raw_records_he records_he->raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
check_peak_sum_area_rtol NaN <OMITTED> Check if the sum area and the sum of area per channel are the same. If None, don't do the check. To perform the check, set to the desired rtol value used e.g. '1e-4' (see np.isclose).
n_top_pmts 253.0 253 Number of top PMTs

peaks_he

Description

Provided by plugin: PeaksHighEnergy

Data kind: peaks_he

High energy channels: attenuated signals of the top PMT-array

Merge peaklets and merged S2s such that we obtain our peaks (replacing all peaklets that were later re-merged as S2s). As this step is computationally trivial, never save this plugin.

Columns provided

Field name Data type Comment
time int64 Start time since unix epoch [ns]
length int32 Length of the interval in samples
dt int32 Width of one sample [ns]
channel int16 Channel/PMT number
type int8 Classification of the peak(let)
area float32 Integral across channels [PE]
area_per_channel ('<f4', (752,)) Integral per channel [PE]
n_hits int32 Number of hits contributing at least one sample to the peak
data ('<f4', (200,)) Waveform data in PE/sample (not PE/ns!)
width ('<f4', (11,)) Peak widths in range of central area fraction [ns]
area_decile_from_midpoint ('<f4', (11,)) Peak widths: time between nth and 5th area decile [ns]
saturated_channel ('i1', (752,)) Does the channel reach ADC saturation?
n_saturated_channels int16 Total number of saturated channels
tight_coincidence int16 Channel within tight range of mean
max_gap int32 Largest gap between hits inside peak [ns]
max_goodness_of_split float32 Maximum interior goodness of split

Dependencies

%3 peaks_he peaks_he peaklets_he peaklets_he peaks_he->peaklets_he peaklet_classification_he peaklet_classification_he peaks_he->peaklet_classification_he merged_s2s_he merged_s2s_he peaks_he->merged_s2s_he records_he records_he peaklets_he->records_he peaklet_classification_he->peaklets_he merged_s2s_he->peaklets_he merged_s2s_he->peaklet_classification_he raw_records_he raw_records_he records_he->raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
diagnose_sorting False <OMITTED> Enable runtime checks for sorting and disjointness
merge_without_s1 True <OMITTED> If true, S1s will be igored during the merging. It's now possible for a S1 to be inside a S2 post merging

merged_s2s_he

Description

Provided by plugin: MergedS2sHighEnergy

Data kind: merged_s2s_he

High energy channels: attenuated signals of the top PMT-array

Merge together peaklets if peak finding favours that they would form a single peak instead.

Columns provided

Field name Data type Comment
time int64 Start time since unix epoch [ns]
length int32 Length of the interval in samples
dt int32 Width of one sample [ns]
channel int16 Channel/PMT number
type int8 Classification of the peak(let)
area float32 Integral across channels [PE]
area_per_channel ('<f4', (752,)) Integral per channel [PE]
n_hits int32 Number of hits contributing at least one sample to the peak
data ('<f4', (200,)) Waveform data in PE/sample (not PE/ns!)
width ('<f4', (11,)) Peak widths in range of central area fraction [ns]
area_decile_from_midpoint ('<f4', (11,)) Peak widths: time between nth and 5th area decile [ns]
saturated_channel ('i1', (752,)) Does the channel reach ADC saturation?
n_saturated_channels int16 Total number of saturated channels
tight_coincidence int16 Channel within tight range of mean
max_gap int32 Largest gap between hits inside peak [ns]
max_goodness_of_split float32 Maximum interior goodness of split

Dependencies

%3 merged_s2s_he merged_s2s_he peaklets_he peaklets_he merged_s2s_he->peaklets_he peaklet_classification_he peaklet_classification_he merged_s2s_he->peaklet_classification_he records_he records_he peaklets_he->records_he peaklet_classification_he->peaklets_he raw_records_he raw_records_he records_he->raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
gain_model <OMITTED> cmt://to_pe_model?version=ONLINE&run_id=plugin.run_id PMT gain model. Specify as (str(model_config), str(version), nT-->boolean
merge_without_s1 True <OMITTED> If true, S1s will be igored during the merging. It's now possible for a S1 to be inside a S2 post merging
n_top_pmts <OMITTED> 253 Number of top TPC array PMTs
n_tpc_pmts <OMITTED> 494 Number of TPC PMTs
s2_merge_gap_thresholds ((1.7, 26500.0), (4.0, 2600.0), (5.0, 0.0)) <OMITTED> Points to define maximum separation between peaklets to allow merging [ns] depending on log10 area of the merged peak\nwhere the gap size of the first point is the maximum gap to allow mergingand the area of the last point is the maximum area to allow merging. The format is ((log10(area), max_gap), (..., ...), (..., ...))
s2_merge_max_duration 50000 <OMITTED> Do not merge peaklets at all if the result would be a peak longer than this [ns]
sum_waveform_top_array True <OMITTED> Digitize the sum waveform of the top array separately

peaklet_classification_he

Description

Provided by plugin: PeakletClassificationHighEnergy

Data kind: peaklets_he

High energy channels: attenuated signals of the top PMT-array Classify peaklets as unknown, S1, or S2.

Columns provided

Field name Data type Comment
time int64 Start time since unix epoch [ns]
length int32 Length of the interval in samples
dt int32 Width of one sample [ns]
channel int16 Channel/PMT number
type int8 Classification of the peak(let)

Dependencies

%3 peaklet_classification_he peaklet_classification_he peaklets_he peaklets_he peaklet_classification_he->peaklets_he records_he records_he peaklets_he->records_he raw_records_he raw_records_he records_he->raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
n_top_pmts 253 253 Number of top PMTs
s1_flatten_threshold_aft (0.6, 100) <OMITTED> Threshold for AFT, above which we use a flatted boundary for rise timeSpecified values: (AFT boundary, constant rise time).
s1_max_rise_time_post100 200 <OMITTED> Maximum S1 rise time for > 100 PE [ns]
s1_min_coincidence 2 <OMITTED> Minimum tight coincidence necessary to make an S1
s1_risetime_aft_parameters (-1, 2.6) <OMITTED> Slope and offset in exponential of emperical boundary in the rise time-AFT plot. Specified as (slope, offset)
s1_risetime_area_parameters (50, 80, 12) <OMITTED> norm, const, tau in the empirical boundary in the risetime-area plot
s2_min_pmts 4 <OMITTED> Minimum number of PMTs contributing to an S2

peaklets_he

Description

Provided by plugin: PeakletsHighEnergy

Data kind: peaklets_he

High energy channels: attenuated signals of the top PMT-array

Split records into:
  • peaklets

  • lone_hits

Peaklets are very aggressively split peaks such that we are able to find S1-S2s even if they are close to each other. (S2) Peaks that are split into too many peaklets will be merged later on.

To get Peaklets from records apply/do:
  1. Hit finding

  2. Peak finding

  3. Peak splitting using the natural breaks algorithm

  4. Compute the digital sum waveform

Lone hits are all hits which are outside of any peak. The area of lone_hits includes the left and right hit extension, except the extension overlaps with any peaks or other hits.

Columns provided

Field name Data type Comment
time int64 Start time since unix epoch [ns]
length int32 Length of the interval in samples
dt int32 Width of one sample [ns]
channel int16 Channel/PMT number
type int8 Classification of the peak(let)
area float32 Integral across channels [PE]
area_per_channel ('<f4', (752,)) Integral per channel [PE]
n_hits int32 Number of hits contributing at least one sample to the peak
data ('<f4', (200,)) Waveform data in PE/sample (not PE/ns!)
width ('<f4', (11,)) Peak widths in range of central area fraction [ns]
area_decile_from_midpoint ('<f4', (11,)) Peak widths: time between nth and 5th area decile [ns]
saturated_channel ('i1', (752,)) Does the channel reach ADC saturation?
n_saturated_channels int16 Total number of saturated channels
tight_coincidence int16 Channel within tight range of mean
max_gap int32 Largest gap between hits inside peak [ns]
max_goodness_of_split float32 Maximum interior goodness of split

Dependencies

%3 peaklets_he peaklets_he records_he records_he peaklets_he->records_he raw_records_he raw_records_he records_he->raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
channel_map <OMITTED> (tpc, he, aqmon, aqmon_nv, tpc_blank, mv, aux_mv, mv_blank, nveto, nveto_blank) immutabledict mapping subdetector to (min, max) channel number.
diagnose_sorting False <OMITTED> Enable runtime checks for sorting and disjointness
gain_model <OMITTED> cmt://to_pe_model?version=ONLINE&run_id=plugin.run_id PMT gain model. Specify as URL or explicit value
he_channel_offset 500 <OMITTED> Minimum channel number of the he channels
hit_min_amplitude cmt://hit_...gin.run_id <OMITTED> Minimum hit amplitude in ADC counts above baseline. Specify as a tuple of length n_tpc_pmts, or a number,or a string like "pmt_commissioning_initial" which means callinghitfinder_thresholds.pyor a tuple like (correction=str, version=str, nT=boolean),which means we are using cmt.
hit_min_amplitude_he cmt://hit_...gin.run_id <OMITTED> Minimum hit amplitude in ADC counts above baseline. Specify as a tuple of length n_tpc_pmts, or a number,or a string like "pmt_commissioning_initial" which means callinghitfinder_thresholds.pyor a tuple like (correction=str, version=str, nT=boolean),which means we are using cmt.
le_to_he_amplification 20 <OMITTED> Difference in amplification between low energy and high energy channels
n_he_pmts 752 <OMITTED> Maximum channel of the he channels
n_top_pmts <OMITTED> 253 Number of top TPC array PMTs
n_tpc_pmts <OMITTED> 494 Number of TPC PMTs
peak_left_extension 30 <OMITTED> Include this many ns left of hits in peaks
peak_min_pmts 2 <OMITTED> Minimum number of contributing PMTs needed to define a peak
peak_min_pmts_he 2 <OMITTED> Minimum number of contributing PMTs needed to define a peak
peak_right_extension 200 <OMITTED> Include this many ns right of hits in peaks
peak_split_filter_wing_width 70 <OMITTED> Wing width of moving average filter for low-split natural breaks
peak_split_gof_threshold (None, ((0.5, 1.0), (6.0, 0.4)), ((2.5, 1.0), (5.625, 0.4))) <OMITTED> Natural breaks goodness of fit/split threshold to split a peak. Specify as tuples of (log10(area), threshold).
peak_split_iterations 20 <OMITTED> Maximum number of recursive peak splits to do.
peak_split_min_area 40.0 <OMITTED> Minimum area to evaluate natural breaks criterion. Smaller peaks are not split.
peaklet_gap_threshold 700 <OMITTED> No hits for this many ns triggers a new peak
peaklet_max_duration 10000000 <OMITTED> Maximum duration [ns] of a peaklet
saturation_correction_on True <OMITTED> On off switch for saturation correction
saturation_correction_on_he False <OMITTED> On off switch for saturation correction for High Energy channels
saturation_min_reference_length 20 <OMITTED> Minimum number of reference sample used to correct saturated samples
saturation_reference_length 100 <OMITTED> Maximum number of reference sample used to correct saturated samples
sum_waveform_top_array True <OMITTED> Digitize the sum waveform of the top array separately
tight_coincidence_window_left 50 <OMITTED> Time range left of peak center to call a hit a tight coincidence (ns)
tight_coincidence_window_right 50 <OMITTED> Time range right of peak center to call a hit a tight coincidence (ns)

records_he

Description

Provided by plugin: PulseProcessingHighEnergy

Data kind: records_he

High energy channels: attenuated signals of the top PMT-array

Split raw_records into:
  • (tpc) records

  • aqmon_records

  • pulse_counts

For TPC records, apply basic processing:
  1. Flip, baseline, and integrate the waveform

  2. Apply software HE veto after high-energy peaks.

  3. Find hits, apply linear filter, and zero outside hits.

pulse_counts holds some average information for the individual PMT channels for each chunk of raw_records. This includes e.g. number of recorded pulses, lone_pulses (pulses which do not overlap with any other pulse), or mean values of baseline and baseline rms channel.

Columns provided

Field name Data type Comment
time int64 Start time since unix epoch [ns]
length int32 Length of the interval in samples
dt int16 Width of one sample [ns]
channel int16 Channel/PMT number
pulse_length int32 Length of pulse to which the record belongs (without zero-padding)
record_i int16 Fragment number in the pulse
area int32 Integral in ADC counts x samples
reduction_level uint8 Level of data reduction applied (strax.ReductionLevel enum)
baseline float32 Baseline in ADC counts. data = int(baseline) - data_orig
baseline_rms float32 Baseline RMS in ADC counts. data = baseline - data_orig
amplitude_bit_shift int16 Multiply data by 2**(this number). Baseline is unaffected.
data ('<i2', (110,)) Waveform data in raw counts above integer part of baseline

Dependencies

%3 records_he records_he raw_records_he raw_records_he records_he->raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
allow_sloppy_chunking False <OMITTED> Use a default baseline for incorrectly chunked fragments. This is a kludge for improperly converted XENON1T data.
baseline_samples 40 <OMITTED> Number of samples to use at the start of the pulse to determine the baseline
channel_map <OMITTED> (tpc, he, aqmon, aqmon_nv, tpc_blank, mv, aux_mv, mv_blank, nveto, nveto_blank) immutabledict mapping subdetector to (min, max) channel number.
check_raw_record_overlaps True <OMITTED> Crash if any of the pulses in raw_records overlap with others in the same channel
daq_chunk_duration 5000000000 <OMITTED> Duration of regular chunks in ns
daq_compressor lz4 <OMITTED> Algorithm used for (de)compressing the live data
daq_input_dir <OMITTED> <OMITTED> Directory where readers put data
daq_overlap_chunk_duration 500000000 <OMITTED> Duration of intermediate/overlap chunks in ns
hev_gain_model None <OMITTED> PMT gain model used in the software high-energy veto.
hit_min_amplitude cmt://hit_...gin.run_id <OMITTED> Minimum hit amplitude in ADC counts above baseline. Specify as a tuple of length n_tpc_pmts, or a number,or a string like "pmt_commissioning_initial" which means callinghitfinder_thresholds.pyor a tuple like (correction=str, version=str, nT=boolean),which means we are using cmt.
hit_min_amplitude_he cmt://hit_...gin.run_id <OMITTED> Minimum hit amplitude in ADC counts above baseline. Specify as a tuple of length n_tpc_pmts, or a number,or a string like "pmt_commissioning_initial" which means callinghitfinder_thresholds.pyor a tuple like (correction=str, version=str, nT=boolean),which means we are using cmt.
max_digitizer_sampling_time 10 <OMITTED> Highest interval time of the digitizer sampling times(s) used.
max_veto_value None <OMITTED> Optionally pass a HE peak that exceeds this absolute area. (if performing a hard veto, can keep a few statistics.)
n_he_pmts 752 <OMITTED> Maximum channel of the he channels
n_tpc_pmts <OMITTED> 494 Number of TPC PMTs
pmt_pulse_filter None <OMITTED> Linear filter to apply to pulses, will be normalized.
readout_threads <OMITTED> <OMITTED> Dictionary of the readout threads where the keys specify the reader and value the number of threads
record_length 110 <OMITTED> Number of samples per raw_record
record_length 110 <OMITTED> Number of samples per raw_record
run_start_time 0 <OMITTED> time of start run (s since unix epoch)
safe_break_in_pulses 1000 <OMITTED> Time (ns) between pulses indicating a safe break in the datastream -- gaps of this size cannot be interior to peaklets.
save_outside_hits (3, 20) <OMITTED> Save (left, right) samples besides hits; cut the rest
tail_veto_duration 3000000 <OMITTED> Time in ns to veto after large peaks
tail_veto_pass_extend 3 <OMITTED> Extend pass veto by this many samples (tail_veto_resolution!)
tail_veto_pass_fraction 0.05 <OMITTED> Pass veto if maximum amplitude above max * fraction
tail_veto_resolution 1000 <OMITTED> Time resolution in ns for pass-veto waveform summation
tail_veto_threshold 0 <OMITTED> Minimum peakarea in PE to trigger tail veto.Set to None, 0 or False to disable veto.

pulse_counts_he

Description

Provided by plugin: PulseProcessingHighEnergy

Data kind: pulse_counts_he

High energy channels: attenuated signals of the top PMT-array

Split raw_records into:
  • (tpc) records

  • aqmon_records

  • pulse_counts

For TPC records, apply basic processing:
  1. Flip, baseline, and integrate the waveform

  2. Apply software HE veto after high-energy peaks.

  3. Find hits, apply linear filter, and zero outside hits.

pulse_counts holds some average information for the individual PMT channels for each chunk of raw_records. This includes e.g. number of recorded pulses, lone_pulses (pulses which do not overlap with any other pulse), or mean values of baseline and baseline rms channel.

Columns provided

Field name Data type Comment
time int64 Start time of the chunk
endtime int64 End time of the chunk
pulse_count ('<i8', (752,)) Number of pulses
lone_pulse_count ('<i8', (752,)) Number of lone pulses
pulse_area ('<i8', (752,)) Integral of all pulses in ADC_count x samples
lone_pulse_area ('<i8', (752,)) Integral of lone pulses in ADC_count x samples
baseline_mean ('<i2', (752,)) Average baseline
baseline_rms_mean ('<f4', (752,)) Average baseline rms

Dependencies

%3 pulse_counts_he pulse_counts_he raw_records_he raw_records_he pulse_counts_he->raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
allow_sloppy_chunking False <OMITTED> Use a default baseline for incorrectly chunked fragments. This is a kludge for improperly converted XENON1T data.
baseline_samples 40 <OMITTED> Number of samples to use at the start of the pulse to determine the baseline
check_raw_record_overlaps True <OMITTED> Crash if any of the pulses in raw_records overlap with others in the same channel
hev_gain_model None <OMITTED> PMT gain model used in the software high-energy veto.
hit_min_amplitude cmt://hit_...gin.run_id <OMITTED> Minimum hit amplitude in ADC counts above baseline. Specify as a tuple of length n_tpc_pmts, or a number,or a string like "pmt_commissioning_initial" which means callinghitfinder_thresholds.pyor a tuple like (correction=str, version=str, nT=boolean),which means we are using cmt.
hit_min_amplitude_he cmt://hit_...gin.run_id <OMITTED> Minimum hit amplitude in ADC counts above baseline. Specify as a tuple of length n_tpc_pmts, or a number,or a string like "pmt_commissioning_initial" which means callinghitfinder_thresholds.pyor a tuple like (correction=str, version=str, nT=boolean),which means we are using cmt.
max_veto_value None <OMITTED> Optionally pass a HE peak that exceeds this absolute area. (if performing a hard veto, can keep a few statistics.)
n_he_pmts 752 <OMITTED> Maximum channel of the he channels
n_tpc_pmts <OMITTED> 494 Number of TPC PMTs
pmt_pulse_filter None <OMITTED> Linear filter to apply to pulses, will be normalized.
record_length 110 <OMITTED> Number of samples per raw_record
save_outside_hits (3, 20) <OMITTED> Save (left, right) samples besides hits; cut the rest
tail_veto_duration 3000000 <OMITTED> Time in ns to veto after large peaks
tail_veto_pass_extend 3 <OMITTED> Extend pass veto by this many samples (tail_veto_resolution!)
tail_veto_pass_fraction 0.05 <OMITTED> Pass veto if maximum amplitude above max * fraction
tail_veto_resolution 1000 <OMITTED> Time resolution in ns for pass-veto waveform summation
tail_veto_threshold 0 <OMITTED> Minimum peakarea in PE to trigger tail veto.Set to None, 0 or False to disable veto.

raw_records_he

Description

Provided by plugin: DAQReader

Data kind: raw_records_he

Read the XENONnT DAQ-live_data from redax and split it to the appropriate raw_record data-types based on the channel-map.

Does nothing whatsoever to the live_data; not even baselining.

Provides:
  • raw_records: (tpc)raw_records.

  • raw_records_he: raw_records for the high energy boards digitizing the top PMT-array at lower amplification.

  • raw_records_nv: neutron veto raw_records; only stored temporary as the software coincidence trigger not applied yet.

  • raw_records_mv: muon veto raw_records.

  • raw_records_aqmon: raw_records for the acquisition monitor (_nv for neutron veto).

Columns provided

Field name Data type Comment
time int64 Start time since unix epoch [ns]
length int32 Length of the interval in samples
dt int16 Width of one sample [ns]
channel int16 Channel/PMT number
pulse_length int32 Length of pulse to which the record belongs (without zero-padding)
record_i int16 Fragment number in the pulse
baseline int16 Baseline determined by the digitizer (if this is supported)
data ('<i2', (110,)) Waveform data in raw ADC counts

Dependencies

%3 raw_records_he raw_records_he

Configuration options

These are all options that affect this data type. This also includes options taken by dependencies of this datatype, because changing any of those options affect this data indirectly.

option default current help
channel_map <OMITTED> (tpc, he, aqmon, aqmon_nv, tpc_blank, mv, aux_mv, mv_blank, nveto, nveto_blank) immutabledict mapping subdetector to (min, max) channel number.
daq_chunk_duration 5000000000 <OMITTED> Duration of regular chunks in ns
daq_compressor lz4 <OMITTED> Algorithm used for (de)compressing the live data
daq_input_dir <OMITTED> <OMITTED> Directory where readers put data
daq_overlap_chunk_duration 500000000 <OMITTED> Duration of intermediate/overlap chunks in ns
max_digitizer_sampling_time 10 <OMITTED> Highest interval time of the digitizer sampling times(s) used.
readout_threads <OMITTED> <OMITTED> Dictionary of the readout threads where the keys specify the reader and value the number of threads
record_length 110 <OMITTED> Number of samples per raw_record
run_start_time 0 <OMITTED> time of start run (s since unix epoch)
safe_break_in_pulses 1000 <OMITTED> Time (ns) between pulses indicating a safe break in the datastream -- gaps of this size cannot be interior to peaklets.