straxen.plugins.events package

Submodules

straxen.plugins.events.corrected_areas module

class straxen.plugins.events.corrected_areas.CorrectedAreas[source]

Bases: Plugin

Plugin which applies light collection efficiency maps and electron life time to the data.

Computes the cS1/cS2 for the main/alternative S1/S2 as well as the corrected life time. Note:

Please be aware that for both, the main and alternative S1, the area is corrected according to the xy-position of the main S2. There are now 3 components of cS2s: cs2_top, cS2_bottom and cs2. cs2_top and cs2_bottom are corrected by the corresponding maps, and cs2 is the sum of the two.

ab_region(x, y)[source]
avg_se_gain

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

cd_region(x, y)[source]
compute(events)[source]
cs2_bottom_top_ratio_correction

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

default_reconstruction_algorithm

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

depends_on: Tuple[str, ...] = ('event_basics', 'event_positions')
elife

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

provides: tuple = ('corrected_areas',)
region_circular

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

region_linear

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

rel_extraction_eff

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

rel_light_yield

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

s1_xyz_map

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

s2_map_names()[source]
s2_xy_map

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

se_gain

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

seg_ee_correction_preparation()[source]

Get single electron gain and extraction efficiency options.

takes_config = immutabledict({'elife': <straxen.url_config.URLConfig object>, 'default_reconstruction_algorithm': <straxen.url_config.URLConfig object>, 's1_xyz_map': <straxen.url_config.URLConfig object>, 's2_xy_map': <straxen.url_config.URLConfig object>, 'avg_se_gain': <straxen.url_config.URLConfig object>, 'se_gain': <straxen.url_config.URLConfig object>, 'rel_extraction_eff': <straxen.url_config.URLConfig object>, 'rel_light_yield': <straxen.url_config.URLConfig object>, 'region_linear': <straxen.url_config.URLConfig object>, 'region_circular': <straxen.url_config.URLConfig object>, 'cs2_bottom_top_ratio_correction': <straxen.url_config.URLConfig object>})

straxen.plugins.events.distinct_channels module

class straxen.plugins.events.distinct_channels.DistinctChannels[source]

Bases: LoopPlugin

Compute the number of contributing PMTs that contribute to the alt_s1 but not to the main S1.

compute_loop(event, peaks)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_basics', 'peaks')
deps: Dict
dtype: tuple | dtype | immutabledict | dict = [('alt_s1_distinct_channels', <class 'numpy.int32'>, 'Number of PMTs contributing to the secondary S1 that do not contribute to the main S1'), (('Start time since unix epoch [ns]', 'time'), <class 'numpy.int64'>), (('Exclusive end time since unix epoch [ns]', 'endtime'), <class 'numpy.int64'>)]
input_buffer: Dict[str, Chunk]
loop_over = 'events'
provides: tuple = ('distinct_channels',)
run_i: int
run_id: str

straxen.plugins.events.energy_estimates module

class straxen.plugins.events.energy_estimates.EnergyEstimates[source]

Bases: Plugin

Plugin which converts cS1 and cS2 into energies (from PE to KeVee).

compute(events)[source]
config: Dict
cs1_to_e(x)[source]
cs2_to_e(x)[source]
data_kind: str | immutabledict | dict
depends_on: tuple = 'corrected_areas'
deps: Dict
dtype: tuple | dtype | immutabledict | dict = [('e_light', <class 'numpy.float32'>, 'Energy in light signal [keVee]'), ('e_charge', <class 'numpy.float32'>, 'Energy in charge signal [keVee]'), ('e_ces', <class 'numpy.float32'>, 'Energy estimate [keVee]'), (('Start time since unix epoch [ns]', 'time'), <class 'numpy.int64'>), (('Exclusive end time since unix epoch [ns]', 'endtime'), <class 'numpy.int64'>)]
g1

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

g2

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

input_buffer: Dict[str, Chunk]
lxe_w

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('energy_estimates',)
run_i: int
run_id: str
save_when = 2
takes_config = immutabledict({'g1': <straxen.url_config.URLConfig object>, 'g2': <straxen.url_config.URLConfig object>, 'lxe_w': <straxen.url_config.URLConfig object>})

straxen.plugins.events.event_ambience module

class straxen.plugins.events.event_ambience.EventAmbience[source]

Bases: Plugin

Save Ambience of the main S1 and main S2 in the event.

References:
  • v0.0.4 reference: xenon:xenonnt:ac:prediction:shadow_ambience

compute(events, peaks)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_basics', 'peak_basics', 'peak_ambience')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
property origin_dtype
provides: tuple = ('event_ambience',)
run_i: int
run_id: str

straxen.plugins.events.event_area_per_channel module

class straxen.plugins.events.event_area_per_channel.EventAreaPerChannel[source]

Bases: Plugin

Simple plugin that provides area per channel for main and alternative S1/S2 in the event.

compressor = 'zstd'
compute(events, peaks)[source]
config: Dict
data_kind: str | immutabledict | dict = immutabledict({'event_area_per_channel': 'events', 'event_n_channel': 'events'})
depends_on: tuple = ('event_basics', 'peaks')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
n_top_pmts

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('event_area_per_channel', 'event_n_channel')
run_i: int
run_id: str
save_when = immutabledict({'event_area_per_channel': <SaveWhen.EXPLICIT: 1>, 'event_n_channel': <SaveWhen.ALWAYS: 3>})
takes_config = immutabledict({'n_top_pmts': <straxen.url_config.URLConfig object>})

straxen.plugins.events.event_basics module

class straxen.plugins.events.event_basics.EventBasics[source]

Bases: Plugin

Computes the basic properties of the main/alternative S1/S2 within an event.

The main S1 and alternative S1 are given by the largest two S1-Peaks within the event. The main S2 is given by the largest S2-Peak within the event, while alternative S2 is selected as the largest S2 other than main S2 in the time window [main S1 time, main S1 time + max drift time].

allow_posts2_s1s

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

compute(events, peaks)[source]
config: Dict
static copy_largest_peaks_into_event(result, largest_s_i, main_or_alt_index, result_fields, peak_fields)[source]

For one event, write all the peak_fields (e.g. “area”) of the peak (largest_s_i) into their associated field in the event (e.g. s1_area), main_or_alt_index differentiates between main (index 0) and alt (index 1)

data_kind: str | immutabledict | dict = 'events'
depends_on: tuple = ('events', 'peak_basics', 'peak_positions', 'peak_proximity')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
electron_drift_velocity

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

event_s1_min_coincidence

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

fill_events(result_buffer, events, split_peaks)[source]

Loop over the events and peaks within that event.

fill_result_i(event, peaks)[source]

For a single event with the result_buffer.

static find_main_alt_s2(largest_s1s, s2_idx, largest_s2s, drift_time_max)[source]

Require alt_s2 happens between main S1 and maximum drift time.

force_alt_s2_in_max_drift_time

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

force_main_before_alt

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

static get_largest_sx_peaks(peaks, s_i, s1_before_time=inf, s1_min_coincidence=0, number_of_peaks=2)[source]

Get the largest S1/S2.

For S1s allow a min coincidence and max time

infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
loop_over = 'events'
max_drift_length

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('event_basics',)
run_i: int
run_id: str
static set_event_properties(result, largest_s1s, largest_s2s, peaks)[source]

Get properties like drift time and area before main S2.

static set_nan_defaults(buffer)[source]

When constructing the dtype, take extra care to set values to np.Nan / -1 (for ints) as 0 might have a meaning.

static set_sx_index(res, s1_idx, s2_idx)[source]
setup()[source]

Hook if plugin wants to do something on initialization.

takes_config = immutabledict({'electron_drift_velocity': <straxen.url_config.URLConfig object>, 'allow_posts2_s1s': <straxen.url_config.URLConfig object>, 'force_main_before_alt': <straxen.url_config.URLConfig object>, 'force_alt_s2_in_max_drift_time': <straxen.url_config.URLConfig object>, 'event_s1_min_coincidence': <straxen.url_config.URLConfig object>, 'max_drift_length': <straxen.url_config.URLConfig object>})

straxen.plugins.events.event_info module

class straxen.plugins.events.event_info.EventInfo[source]

Bases: MergeOnlyPlugin

Plugin which merges the information of all event data_kinds into a single data_type.

compute(**kwargs)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_basics', 'event_positions', 'corrected_areas', 'energy_estimates')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
event_info_function

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

input_buffer: Dict[str, Chunk]
provides: tuple = ('event_info',)
run_i: int
run_id: str
save_when = 3
takes_config = immutabledict({'event_info_function': <straxen.url_config.URLConfig object>})

straxen.plugins.events.event_info_double module

class straxen.plugins.events.event_info_double.EventInfoDouble[source]

Bases: MergeOnlyPlugin

Alternate version of event_info for Kr and other double scatter.

analyses:
  • Uses a different naming convention: s1 -> s1_a, alt_s1 -> s1_b, and similarly for s2s;

  • Adds s1_b_distinct_channels, which can be tricky to compute (since it requires going back to peaks)

compute(events)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_info', 'distinct_channels')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
provides: tuple = ('event_info_double',)
static rename_field(orig_name)[source]
run_i: int
run_id: str
save_when = 1

straxen.plugins.events.event_pattern_fit module

class straxen.plugins.events.event_pattern_fit.EventPatternFit[source]

Bases: Plugin

Plugin that provides patter information for events.

compute(events)[source]
compute_s1_llhvalue(events, result)[source]
compute_s2_llhvalue(events, result)[source]
compute_s2_neural_llhvalue(events, result)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_area_per_channel', 'event_basics', 'event_positions')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
electron_drift_time_gate

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

electron_drift_velocity

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

gain_model

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
max_r_pattern_fit

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

mean_pe_per_photon

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

n_top_pmts

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

n_tpc_pmts

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('event_pattern_fit',)
run_i: int
run_id: str
s1_aft_map

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

s1_min_area_pattern_fit

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

s1_optical_map

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

property s2_map_custom_objects
s2_min_area_pattern_fit

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

s2_optical_map

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

s2_tf_model

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

setup()[source]

Hook if plugin wants to do something on initialization.

store_per_channel

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

takes_config = immutabledict({'s1_aft_map': <straxen.url_config.URLConfig object>, 'electron_drift_velocity': <straxen.url_config.URLConfig object>, 'electron_drift_time_gate': <straxen.url_config.URLConfig object>, 's1_optical_map': <straxen.url_config.URLConfig object>, 's2_optical_map': <straxen.url_config.URLConfig object>, 's2_tf_model': <straxen.url_config.URLConfig object>, 'mean_pe_per_photon': <straxen.url_config.URLConfig object>, 'gain_model': <straxen.url_config.URLConfig object>, 'n_tpc_pmts': <straxen.url_config.URLConfig object>, 'n_top_pmts': <straxen.url_config.URLConfig object>, 's1_min_area_pattern_fit': <straxen.url_config.URLConfig object>, 's2_min_area_pattern_fit': <straxen.url_config.URLConfig object>, 'store_per_channel': <straxen.url_config.URLConfig object>, 'max_r_pattern_fit': <straxen.url_config.URLConfig object>})

straxen.plugins.events.event_positions module

class straxen.plugins.events.event_positions.EventPositions[source]

Bases: Plugin

Computes the observed and corrected position for the main S1/S2 pairs in an event.

For XENONnT data, it returns the FDC corrected positions of the default_reconstruction_algorithm. In case the fdc_map is given as a file (not through CMT), then the coordinate system should be given as (x, y, z), not (x, y, drift_time).

compute(events)[source]
config: Dict
data_kind: str | immutabledict | dict
default_reconstruction_algorithm

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

depends_on: tuple = 'event_basics'
deps: Dict
dtype: tuple | dtype | immutabledict | dict
electron_drift_time_gate

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

electron_drift_velocity

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

fdc_map

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
provides: tuple = ('event_positions',)
run_i: int
run_id: str
setup()[source]

Hook if plugin wants to do something on initialization.

takes_config = immutabledict({'default_reconstruction_algorithm': <straxen.url_config.URLConfig object>, 'electron_drift_velocity': <straxen.url_config.URLConfig object>, 'electron_drift_time_gate': <straxen.url_config.URLConfig object>, 'fdc_map': <straxen.url_config.URLConfig object>, 'z_bias_map': <straxen.url_config.URLConfig object>})
z_bias_map

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

straxen.plugins.events.event_s1_positions_cnn module

class straxen.plugins.events.event_s1_positions_cnn.EventS1PositionCNN[source]

Bases: EventS1PositionBase

CNN for (x,y,z) position S1 reconstruction at event level.

algorithm: str | None = 's1_cnn'
provides: tuple = ('event_s1_positions_cnn',)
takes_config = immutabledict({'min_s1_area_s1_posrec': <straxen.url_config.URLConfig object>, 'n_top_pmts': <straxen.url_config.URLConfig object>, 'tf_event_model_s1_cnn': <straxen.url_config.URLConfig object>})
tf_event_model_s1_cnn

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

straxen.plugins.events.event_s2_positions_cnn module

class straxen.plugins.events.event_s2_positions_cnn.EventS2PositionCNN[source]

Bases: EventS2PositionBase

CNN for position S2 reconstruction at event level.

algorithm: str | None = 'cnn'
provides: tuple = ('event_s2_positions_cnn',)
takes_config = immutabledict({'min_reconstruction_area': <straxen.url_config.URLConfig object>, 'n_top_pmts': <straxen.url_config.URLConfig object>, 'tf_event_model_cnn': <straxen.url_config.URLConfig object>})
tf_event_model_cnn

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

straxen.plugins.events.event_s2_positions_gcn module

class straxen.plugins.events.event_s2_positions_gcn.EventS2PositionGCN[source]

Bases: EventS2PositionBase

GCN net for position S2 reconstruction at event level.

algorithm: str | None = 'gcn'
provides: tuple = ('event_s2_positions_gcn',)
takes_config = immutabledict({'min_reconstruction_area': <straxen.url_config.URLConfig object>, 'n_top_pmts': <straxen.url_config.URLConfig object>, 'tf_event_model_gcn': <straxen.url_config.URLConfig object>})
tf_event_model_gcn

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

straxen.plugins.events.event_s2_positions_mlp module

class straxen.plugins.events.event_s2_positions_mlp.EventS2PositionMLP[source]

Bases: EventS2PositionBase

MLP neural net for S2 position reconstruction at event level.

algorithm: str | None = 'mlp'
provides: tuple = ('event_s2_positions_mlp',)
takes_config = immutabledict({'min_reconstruction_area': <straxen.url_config.URLConfig object>, 'n_top_pmts': <straxen.url_config.URLConfig object>, 'tf_event_model_mlp': <straxen.url_config.URLConfig object>})
tf_event_model_mlp

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

straxen.plugins.events.event_shadow module

class straxen.plugins.events.event_shadow.EventShadow[source]

Bases: Plugin

This plugin can calculate shadow for main S1 and main S2 in events. It also gives the position information of the previous peaks.

References:
  • v0.1.4 reference: xenon:xenonnt:ac:prediction:shadow_ambience

compute(events, peaks)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_basics', 'peak_basics', 'peak_shadow')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
provides: tuple = ('event_shadow',)
run_i: int
run_id: str

straxen.plugins.events.event_top_bottom_params module

class straxen.plugins.events.event_top_bottom_params.EventTopBottomParams[source]

Bases: Plugin

Pluging that computes timing characteristics of top and bottom waveforms based on waveforms stored at event level for main/alt S1/S2.

compute(events)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_info', 'event_waveform')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
provides: tuple = ('event_top_bottom_params',)
run_i: int
run_id: str

straxen.plugins.events.event_w_bayes_class module

class straxen.plugins.events.event_w_bayes_class.EventwBayesClass[source]

Bases: Plugin

Append at event level the posterior probability for an S1, S2, alt_S1 and alt_S2.

compute(peaks, events)[source]
config: Dict
data_kind: str | immutabledict | dict = 'events'
depends_on: tuple = ('peak_classification_bayes', 'event_basics')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
provides: tuple = ('event_w_bayes_class',)
run_i: int
run_id: str

straxen.plugins.events.event_waveform module

class straxen.plugins.events.event_waveform.EventWaveform[source]

Bases: Plugin

Simple plugin that provides total (data) and top (data_top) waveforms for main and alternative S1/S2 in the event.

compressor = 'zstd'
compute(events, peaks)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_basics', 'peaks')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
n_top_pmts

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('event_waveform',)
run_i: int
run_id: str
save_when = 1
takes_config = immutabledict({'n_top_pmts': <straxen.url_config.URLConfig object>})

straxen.plugins.events.events module

class straxen.plugins.events.events.Events[source]

Bases: OverlapWindowPlugin

Plugin which defines an “event” in our TPC.

An event is defined by peak(s) in fixed range of time around a peak which satisfies certain conditions:

  1. The triggering peak must have a certain area.

  2. The triggering peak must have less than “trigger_max_competing” peaks. (A competing peak must have a certain area fraction of the triggering peak and must be in a window close to the main peak)

Note:

The time range which defines an event gets chopped at the chunk boundaries. This happens at invalid boundaries of the

compute(peaks, start, end)[source]
config: Dict
data_kind: str | immutabledict | dict = 'events'
depends_on: tuple = ('peak_basics', 'peak_proximity')
deps: Dict
diagnose_overlapping

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

dtype: tuple | dtype | immutabledict | dict = [('event_number', <class 'numpy.int64'>, 'Event number in this dataset'), ('time', <class 'numpy.int64'>, 'Event start time in ns since the unix epoch'), ('endtime', <class 'numpy.int64'>, 'Event end time in ns since the unix epoch')]
electron_drift_velocity

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

event_s1_min_coincidence

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

events_seen = 0
exclude_s1_as_triggering_peaks

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

get_window_size()[source]

Return the required window size in nanoseconds.

input_buffer: Dict[str, Chunk]
left_event_extension

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

max_drift_length

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('events',)
right_event_extension

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

run_i: int
run_id: str
s1_min_coincidence

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

save_when = 1
setup()[source]

Hook if plugin wants to do something on initialization.

takes_config = immutabledict({'electron_drift_velocity': <straxen.url_config.URLConfig object>, 'trigger_min_area': <straxen.url_config.URLConfig object>, 'trigger_max_competing': <straxen.url_config.URLConfig object>, 'left_event_extension': <straxen.url_config.URLConfig object>, 'right_event_extension': <straxen.url_config.URLConfig object>, 'max_drift_length': <straxen.url_config.URLConfig object>, 'exclude_s1_as_triggering_peaks': <straxen.url_config.URLConfig object>, 'event_s1_min_coincidence': <straxen.url_config.URLConfig object>, 's1_min_coincidence': <straxen.url_config.URLConfig object>, 'diagnose_overlapping': <straxen.url_config.URLConfig object>})
trigger_max_competing

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

trigger_min_area

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

straxen.plugins.events.local_minimum_info module

class straxen.plugins.events.local_minimum_info.LocalMinimumInfo[source]

Bases: LoopPlugin

Looks for the main S2 peak in an event, finds the local minimum (if there is one), and looks to compute some figures of merit such as the max goodness of split, width of the valley, and height of the valley.

compressor = 'zstd'
compute_loop(event, peaks)[source]

This finds the maxima and minima for the main S2 peak and calculates its info such as the number of local maxima, the depth of the deepest local minimum over the maximum height of the peak (s2_valley_height_ratio), and the width of the local minimum valley at 90% of the valley height.

Parameters:
  • event – The event

  • peaks – The peaks belonging to the event, only the main S2 peak is considered, if there is none, this plugin returns none

Returns:

Returns a dictionary containing all of the fields above for each main S2 peak as well as the timing information.

config: Dict
data_kind: str | immutabledict | dict = 'events'
depends_on: tuple = ('event_basics', 'peaks')
deps: Dict
divide_90p_width_localmin

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

dtype: tuple | dtype | immutabledict | dict = [(('Start time since unix epoch [ns]', 'time'), <class 'numpy.int64'>), (('Exclusive end time since unix epoch [ns]', 'endtime'), <class 'numpy.int64'>), (('Maximum Goodness of Split', 's2_max_gos'), <class 'numpy.float32'>), (('Number of local maxima of the smoothed peak', 's2_num_loc_max'), <class 'numpy.int16'>), (('Full gap at p% of the valley height of the deepest valley [ns],by default p = 90', 's2_valley_gap'), <class 'numpy.float32'>), (('Valley depth over max height of the deepest valley', 's2_valley_height_ratio'), <class 'numpy.float32'>)]
input_buffer: Dict[str, Chunk]
parallel: str | bool = 'process'
percent_valley_height

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

percentage_threshold_localmin

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('event_local_min_info',)
run_i: int
run_id: str
smoothing_power_localmin

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

takes_config = immutabledict({'divide_90p_width_localmin': <straxen.url_config.URLConfig object>, 'smoothing_power_localmin': <straxen.url_config.URLConfig object>, 'percentage_threshold_localmin': <straxen.url_config.URLConfig object>, 'percent_valley_height': <straxen.url_config.URLConfig object>})

straxen.plugins.events.multi_scatter module

class straxen.plugins.events.multi_scatter.EventInfoMS[source]

Bases: Plugin

Plugin to collect multiple-scatter event observables.

compute(events, peaks)[source]
config: Dict
cs1_to_e(x)[source]
cs2_to_e(x)[source]
data_kind: str | immutabledict | dict
depends_on: tuple = ('event_info', 'peak_basics', 'peak_per_event', 'peak_corrections', 'peak_positions')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
electron_drift_velocity

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

g1

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

g2

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
lxe_w

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

max_drift_length

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

ms_window_fac

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

provides: tuple = ('event_ms_naive',)
run_i: int
run_id: str
save_when = 2
setup()[source]

Hook if plugin wants to do something on initialization.

takes_config = immutabledict({'g1': <straxen.url_config.URLConfig object>, 'g2': <straxen.url_config.URLConfig object>, 'lxe_w': <straxen.url_config.URLConfig object>, 'electron_drift_velocity': <straxen.url_config.URLConfig object>, 'max_drift_length': <straxen.url_config.URLConfig object>, 'ms_window_fac': <straxen.url_config.URLConfig object>})

straxen.plugins.events.s2_recon_pos_diff module

class straxen.plugins.events.s2_recon_pos_diff.S2ReconPosDiff[source]

Bases: Plugin

Plugin that provides position reconstruction difference for S2s in events, see note:

https://xe1t-wiki.lngs.infn.it/doku.php?id=xenon:shengchao:sr0:reconstruction_quality

cal_avg_and_std(values, axis=1)[source]
compute(events)[source]
compute_pos_diff(events, result)[source]
config: Dict
data_kind: str | immutabledict | dict
depends_on: tuple = 'event_basics'
deps: Dict
dtype: tuple | dtype | immutabledict | dict
eval_recon(data, name_x_list, name_y_list)[source]

This function reads the name list based on s2/alt_s2 and all recon algorithm registered Each row consists the reconstructed x/y and their average and standard deviation is calculated.

infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
parallel: str | bool = True
provides: tuple = ('s2_recon_pos_diff',)
recon_alg_included

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

run_i: int
run_id: str
save_when = 1
takes_config = immutabledict({'recon_alg_included': <straxen.url_config.URLConfig object>})

straxen.plugins.events.veto_proximity module

class straxen.plugins.events.veto_proximity.VetoProximity[source]

Bases: OverlapWindowPlugin

Find the closest next/previous veto start w.r.t.

the event time or when a busy happens during an event.

compute(events, veto_intervals)[source]
config: Dict
data_kind: str | immutabledict | dict = 'events'
depends_on: tuple = ('event_basics', 'veto_intervals')
deps: Dict
dtype: tuple | dtype | immutabledict | dict
event_window_fields

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

static get_overlapping_window_time(vetos_during_event, selected_intervals, event_window, result_buffer)[source]

Computes total time each event overlaps with the corresponding veto.

get_window_size()[source]

Return the required window size in nanoseconds.

infer_dtype()[source]

Return dtype of computed data; used only if no dtype attribute defined.

input_buffer: Dict[str, Chunk]
provides: tuple = ('veto_proximity',)
run_i: int
run_id: str
set_result_for_veto(result_buffer: ndarray, event_window: ndarray, veto_intervals: ndarray, veto_name: str) None[source]

Fill the result buffer inplace. Goal is to find vetos with <veto_name> that are either during, before or after the current event_window.

Parameters:
  • result_buffer – The buffer to fill inplace

  • event_window – start/stop boundaries of the event to consider. Should be an array with [‘time’] and [‘endtime’] which can be based on event start/end times or S1/S2 times

  • veto_intervals – veto intervals datatype

  • veto_name – The name of the veto to fill the result buffer for

Returns:

Nothing, results are filled in place

takes_config = immutabledict({'event_window_fields': <straxen.url_config.URLConfig object>, 'veto_proximity_window': <straxen.url_config.URLConfig object>, 'time_no_aqmon_veto_found': <straxen.url_config.URLConfig object>})
time_no_aqmon_veto_found

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

veto_names = ['busy', 'busy_he', 'hev', 'straxen_deadtime']
veto_proximity_window

Dispatch on URL protocol.

unrecognized protocol returns identity inspired by dasks Dispatch and fsspec fs protocols.

Module contents