Straxen datastructure for high energy channels
This page is an autogenerated reference for all the plugins in straxen’s xenonnt context.
The figures presented are dependency diagrams, meaning that an arrow stemming from a node points to a node that the stem depends on (i.e. “A depends on B” is equivalent to “A —> B”).
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 since unix epoch [ns] |
| endtime | int64 | Exclusive end time since unix epoch [ns] |
| center_time | int64 | Weighted average center time of the peak [ns] |
| 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 |
| top_n_channels | int16 | Number of top 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 |
| length | int32 | Length of the peak waveform in samples |
| dt | int16 | Time resolution of the peak waveform in ns |
| median_time | float32 | Weighted relative median time of the peak [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) |
| merged | bool | Is merged from peaklets |
| max_diff | int32 | Largest time difference between apexes of hits inside peak [ns] |
| min_diff | int32 | Smallest time difference between apexes of hits inside peak [ns] |
| first_channel | int16 | First channel/PMT number inside peak (sorted by apexes of hits) |
| last_channel | int16 | Last channel/PMT number inside peak (sorted by apexes of hits) |
Dependencies
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_fraction_top | float32 | Fraction of area seen by the top array |
| 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!) |
| data_start | ('<f4', (200,)) | Waveform data in PE/sample (not PE/ns!), starting not downsampled samples |
| center_time | int64 | Weighted average center time of the peak [ns] |
| median_time | float32 | Weighted relative median time of the peak [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 |
| max_diff | int32 | Largest time difference between apexes of hits inside peak [ns] |
| min_diff | int32 | Smallest time difference between apexes of hits inside peak [ns] |
| first_channel | int16 | First channel/PMT number inside peak (sorted by apexes of hits) |
| last_channel | int16 | Last channel/PMT number inside peak (sorted by apexes of hits) |
| merged | bool | Peaklet is merging input or peak is merged from peaklets |
Dependencies
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_s0 | True | <OMITTED> | Merge S0s into merged S2s |
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.
Technically, the S2 merging algorithm merges S2 peaklets into S2 peaks. By introducing more information about the waveform and (x, y) distribution of potential groups of peaklets, the algorithm removes PI and DE population from S2 peaks.
Note: Types FAR_XYPOS_S2_TYPE (20) and WIDE_XYPOS_S2_TYPE (22) are still S2s, but they do not participate in the event building.
The algorithm merges S2 peaklets when they are close in (t, x, y). But if a group of peaklets is dense in time but sparse in (x, y), the following steps are conducted:
Merge these peaklets that are dense in (x, y).
- Assign the peaklets that are dense in time but not dense in (x, y) by type 20,
they are usually PI or DE.
- If the sum of nearby type 20 is large compared to the merged peak,
assign the merged peak as type 22, because it is usually PI.
Reference: xenon:xenonnt:analysis:s2_merging_time_position xenon:xenonnt:analysis:sr2_peak_types
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_fraction_top | float32 | Fraction of area seen by the top array |
| 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!) |
| data_start | ('<f4', (200,)) | Waveform data in PE/sample (not PE/ns!), starting not downsampled samples |
| center_time | int64 | Weighted average center time of the peak [ns] |
| median_time | float32 | Weighted relative median time of the peak [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 |
| max_diff | int32 | Largest time difference between apexes of hits inside peak [ns] |
| min_diff | int32 | Smallest time difference between apexes of hits inside peak [ns] |
| first_channel | int16 | First channel/PMT number inside peak (sorted by apexes of hits) |
| last_channel | int16 | Last channel/PMT number inside peak (sorted by apexes of hits) |
Dependencies
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 |
|---|---|---|---|
| default_reconstruction_algorithm | cnf | <OMITTED> | default reconstruction algorithm that provides (x,y) |
| disable_progress_bar | True | <OMITTED> | Whether to disable the progress bar |
| gain_model | <OMITTED> | list-to-array://xedocs://pmt_area_to_pes?as_list=True&sort=pmt&detector=tpc&run_id=plugin.run_id&version=ONLINE&attr=value | PMT gain model. Specify as (str(model_config), str(version), nT-->boolean |
| maxexp | 10 | <OMITTED> | Maximum exponent for the posterior to keep numerical stability |
| merge_lone_hits | True | <OMITTED> | Merge lone hits into merged S2s |
| merge_s0 | True | <OMITTED> | Merge S0s into merged S2s |
| merged_s2s_get_window_size_factor | 5 | <OMITTED> | Factor of the window size for the merged_s2s plugin |
| n_top_pmts | <OMITTED> | 253 | Number of top TPC array PMTs |
| n_tpc_pmts | <OMITTED> | 494 | Number of TPC PMTs |
| normal_max_sigma | 7 | <OMITTED> | Maximum sigma for the normal distribution CDF panel |
| normal_n_bins | 501 | <OMITTED> | Number of bins for the normal distribution CDF panel |
| p_value_prioritized | False | <OMITTED> | Whether to prioritize p-value over area when testing the proposal |
| poisson_max_mu | 25 | <OMITTED> | When to switch from Poisson to normal distribution |
| poisson_survival_ratio | 0.0001 | <OMITTED> | Survival ratio for Poisson distribution. The PMF smaller than this will be ignored. |
| rm_sparse_xy | True | <OMITTED> | Remove peaklets that are too far away in (x, y) |
| rough_max_sigma | 20000.0 | <OMITTED> | Maximum sigma for the merged peaks |
| rough_min_sigma | 100.0 | <OMITTED> | Minimum sigma for the merged peaks |
| rough_mu_bins | 10 | <OMITTED> | Number of bins for mu of merged peaks |
| rough_seg | 30 | <OMITTED> | Rough single electron gain [PE/e] |
| rough_sigma_bins | 10 | <OMITTED> | Number of bins for sigma of merged peaks |
| s2_merge_dr_thresholds | ((1.51, 14.0), (1.84, 18.3), (2.18, 19.7), (2.51, 12.4), (2.84, 5.75)) | <OMITTED> | Points to define maximum weighted mean deviation of the peaklets from the main cluster [cm]\nThe format is ((log10(area_top), dr), (..., ...), (..., ...)) |
| s2_merge_gap_thresholds | ((1.84, 28400.0), (2.18, 24000.0), (2.51, 19600.0), (2.84, 18000.0), (3.18, 16800.0), (3.51, 18600.0), (3.84, 19800.0), (4.18, 16600.0), (4.51, 12100.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 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] |
| s2_merge_p_thresholds | ((4.18, 0.000989), (4.51, 0.00715), (4.84, 0.16)) | <OMITTED> | Points to define minimum p-value of merging proposal depending on log10 area of the merged peak\nThe format is ((log10(area), p-value), (..., ...), (..., ...)) |
| s2_merge_unmerged_thresholds | (1, 49.5, 0.01) | <OMITTED> | Max (number, fraction of unmerged, total area of unmerged) of type 20 peaklets inside a peak. The number of type 20 peaklets should not be larger than the number threshold. The area of type 20 peaklets should not be larger than the both area thresholds. The fraction threshold is important when S2 is large, while the total area threshold is important when S2 is small. |
| sigma_seg | 6.5 | <OMITTED> | Standard deviation of the single electron gain [PE/e] |
| use_bayesian_merging | True | <OMITTED> | Use Bayesian merging |
| use_uncertainty_weights | True | <OMITTED> | Use uncertainty from probabilistic posrec to derive weights |
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
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 |
|---|---|---|---|
| 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:
Hit finding
Peak finding
Peak splitting using the natural breaks algorithm
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_fraction_top | float32 | Fraction of area seen by the top array |
| 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!) |
| data_start | ('<f4', (200,)) | Waveform data in PE/sample (not PE/ns!), starting not downsampled samples |
| center_time | int64 | Weighted average center time of the peak [ns] |
| median_time | float32 | Weighted relative median time of the peak [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 |
| max_diff | int32 | Largest time difference between apexes of hits inside peak [ns] |
| min_diff | int32 | Smallest time difference between apexes of hits inside peak [ns] |
| first_channel | int16 | First channel/PMT number inside peak (sorted by apexes of hits) |
| last_channel | int16 | Last channel/PMT number inside peak (sorted by apexes of hits) |
Dependencies
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> | list-to-array://xedocs://pmt_area_to_pes?as_list=True&sort=pmt&detector=tpc&run_id=plugin.run_id&version=ONLINE&attr=value | PMT gain model. Specify as URL or explicit value |
| he_channel_offset | 500 | <OMITTED> | Minimum channel number of the he channels |
| hit_min_amplitude | list-to-ar...ion=ONLINE | <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.py |
| hit_min_amplitude_he | list-to-ar...ion=ONLINE | <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.py |
| 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 |
| store_data_start | True | <OMITTED> | Save the start time of the waveform with minimum dt |
| store_data_top | True | <OMITTED> | Save 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:
Flip, baseline, and integrate the waveform
Apply software HE veto after high-energy peaks.
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
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 | list-to-ar...ion=ONLINE | <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.py |
| hit_min_amplitude_he | list-to-ar...ion=ONLINE | <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.py |
| 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:
Flip, baseline, and integrate the waveform
Apply software HE veto after high-energy peaks.
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
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 | list-to-ar...ion=ONLINE | <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.py |
| hit_min_amplitude_he | list-to-ar...ion=ONLINE | <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.py |
| 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
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. |