Source code for amstrax.common

import inspect
import io
import os
import tarfile

import numpy as np
import strax
import straxen

export, __all__ = strax.exporter()
__all__ += ['amstrax_dir', 'to_pe']

amstrax_dir = os.path.dirname(os.path.abspath(
    inspect.getfile(inspect.currentframe())))

# Current values 
n_tpc_pmts = 8
to_pe = 1


def open_test_data(file_name
                   ):
    """Downloads amstrax test data to strax_test_data in the current directory"""
    with open(file_name, mode='rb') as f:
        result = f.read()
    f = io.BytesIO(result)
    tf = tarfile.open(fileobj=f)
    tf.extractall()


first_sr1_run = '1'

cache_dict = dict()


# Placeholder for resource management system in the future?
[docs]@export def get_resource(x, fmt='text'): return straxen.get_resource(x, fmt=fmt)
[docs]@export def get_elife(run_id): """Return electron lifetime for run_id in ns""" return 642e3
[docs]@export def select_channels(arr, channel_list): """Select only the values in arr that have arr['channel'] in channel_list """ sel = np.sum([arr['channel'] == channel for channel in channel_list], axis=0) > 0 return arr[sel]