Source code for straxen.plugins.hitlets_mv.hitlets_mv

import numpy as np
import strax
import straxen
from straxen.plugins.hitlets_nv.hitlets_nv import nVETOHitlets
from straxen.plugins.defaults import MV_PREAMBLE, MV_HIT_DEFAULTS

export, __all__ = strax.exporter()


[docs]@export class muVETOHitlets(nVETOHitlets): __doc__ = MV_PREAMBLE + (nVETOHitlets.__doc__ or "") __version__ = "0.0.2" depends_on = "records_mv" provides = "hitlets_mv" data_kind = "hitlets_mv" child_plugin = True dtype = strax.hitlet_dtype() save_outside_hits_mv = straxen.URLConfig( default=MV_HIT_DEFAULTS["save_outside_hits_mv"], track=True, infer_type=False, child_option=True, parent_option_name="save_outside_hits_nv", help="Save (left, right) samples besides hits; cut the rest", ) hit_min_amplitude_mv = straxen.URLConfig( infer_type=False, default=MV_HIT_DEFAULTS["hit_min_amplitude_mv"], track=True, help=( "Minimum hit amplitude in ADC counts above baseline. " "Specify as a tuple of length n_mveto_pmts, or a number, " 'or a string like "pmt_commissioning_initial" which means calling ' "hitfinder_thresholds.py, " "or a tuple like (correction=str, version=str, nT=boolean)," "which means we are using cmt." ), ) min_split_mv = straxen.URLConfig( default=100, track=True, infer_type=False, child_option=True, parent_option_name="min_split_nv", help=( "Minimum height difference pe/sample between local minimum and maximum, " "that a pulse get split." ), ) min_split_ratio_mv = straxen.URLConfig( default=0, track=True, infer_type=False, child_option=True, parent_option_name="min_split_ratio_nv", help=( "Min ratio between local maximum and minimum to split pulse (zero to switch this off)." ), ) entropy_template_mv = straxen.URLConfig( default="flat", track=True, infer_type=False, child_option=True, parent_option_name="entropy_template_nv", help=( 'Template data is compared with in conditional entropy. Can be either "flat" or a ' "template array." ), ) entropy_square_data_mv = straxen.URLConfig( default=False, track=True, infer_type=False, child_option=True, parent_option_name="entropy_square_data_nv", help=( "Parameter which decides if data is first squared before normalized and compared to " "the template." ), ) gain_model_mv = straxen.URLConfig( default="cmt://to_pe_model_mv?version=ONLINE&run_id=plugin.run_id", infer_type=False, child_option=True, parent_option_name="gain_model_nv", help="PMT gain model. Specify as (model_type, model_config)", )
[docs] def setup(self): self.channel_range = self.channel_map["mv"] self.n_channel = (self.channel_range[1] - self.channel_range[0]) + 1 to_pe = self.gain_model_mv # Create to_pe array of size max channel: self.to_pe = np.zeros(self.channel_range[1] + 1, dtype=np.float32) self.to_pe[self.channel_range[0] :] = to_pe[:] self.hit_thresholds = self.hit_min_amplitude_mv
[docs] def compute(self, records_mv, start, end): return super().compute(records_mv, start, end)