Source code for ess.isissans.data

# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2024 Scipp contributors (https://github.com/scipp)
from ess.sans.data import Registry
from ess.sans.types import (
    BackgroundRun,
    DirectBeamFilename,
    EmptyBeamRun,
    Filename,
    PixelMaskFilename,
    SampleRun,
)

from .io import CalibrationFilename

_sans2d_registry = Registry(
    instrument='sans2d',
    files={
        # Direct beam file (efficiency of detectors as a function of wavelength)
        'DIRECT_SANS2D_REAR_34327_4m_8mm_16Feb16.dat.h5': 'md5:43f4188301d709aa49df0631d03a67cb',  # noqa: E501
        # Empty beam run (no sample and no sample holder/can)
        'SANS2D00063091.nxs.h5': 'md5:ec7f78d51a4abc643bbe1965b7a876b9',
        # Sample run (sample and sample holder/can)
        'SANS2D00063114.nxs.h5': 'md5:d0701afe88c09e6a714b31ecfbd79c0c',
        # Background run (no sample, sample holder/can only)
        'SANS2D00063159.nxs.h5': 'md5:8d740b29d8965c8d9ca4f20f1e68ec15',
        # Solid angles of the SANS2D detector pixels computed by Mantid (for tests)
        'SANS2D00063091.SolidAngle_from_mantid.h5': 'md5:d57b82db377cb1aea0beac7202713861',  # noqa: E501
    },
    version='1',
)


[docs] def sans2d_solid_angle_reference() -> str: """Solid angles of the SANS2D detector pixels computed by Mantid (for tests)""" return _sans2d_registry.get_path('SANS2D00063091.SolidAngle_from_mantid.h5')
_zoom_registry = Registry( instrument='zoom', files={ # Sample run (sample and sample holder/can) with applied 192tubeCalibration_11-02-2019_r5_10lines.nxs # noqa: E501 'ZOOM00034786.nxs.h5.zip': 'md5:e1c53bf826dd87545df1b3629f424762', # Empty beam run (no sample and no sample holder/can) - Scipp-hdf5 format 'ZOOM00034787.nxs.h5': 'md5:27e563d4e57621518658307acbbc3413', # Calibration file, Mantid processed NeXus '192tubeCalibration_11-02-2019_r5_10lines.nxs': 'md5:ca1e0e3c387903be445d0dfd0a784ed6', # noqa: E501 # Direct beam file (efficiency of detectors as a function of wavelength) 'Direct_Zoom_4m_8mm_100522.txt.h5': 'md5:bbe813580676a9ad170934ffb7c99617', # Moderator file (used for computing Q-resolution) 'ModeratorStdDev_TS2_SANS_LETexptl_07Aug2015.txt': 'md5:5fc389340d453b9095a5dfcc33608dae', # noqa: E501 # ISIS user file configuring the data reduction 'USER_ZOOM_Cabral_4m_TJump_233G_8x8mm_Small_BEAMSTOP_v1_M5.toml': 'md5:4423ecb7d924c79711aba5b0a30a23e7', # noqa: E501 # 7 pixel mask files for the ZOOM00034786.nxs run 'andru_test.xml': 'md5:c59e0c4a80640a387df7beca4857e66f', 'left_beg_18_2.xml': 'md5:5b24a8954d4d8a291f59f5392cd61681', 'right_beg_18_2.xml': 'md5:fae95a5056e5f5ba4996c8dff83ec109', 'small_bs_232.xml': 'md5:6d67dea9208193c9f0753ffcbb50ed83', 'small_BS_31032023.xml': 'md5:3c644e8c75105809ab521773f9c0c85b', 'tube_1120_bottom.xml': 'md5:fe577bf73c16bf5ac909516fa67360e9', 'tubes_beg_18_2.xml': 'md5:2debde8d82c383cc3d592ea000552300', }, version='2', )
[docs] def sans2d_tutorial_direct_beam() -> DirectBeamFilename: return DirectBeamFilename( _sans2d_registry.get_path('DIRECT_SANS2D_REAR_34327_4m_8mm_16Feb16.dat.h5') )
[docs] def sans2d_tutorial_sample_run() -> Filename[SampleRun]: return Filename[SampleRun](_sans2d_registry.get_path('SANS2D00063114.nxs.h5'))
[docs] def sans2d_tutorial_background_run() -> Filename[BackgroundRun]: return Filename[BackgroundRun](_sans2d_registry.get_path('SANS2D00063159.nxs.h5'))
[docs] def sans2d_tutorial_empty_beam_run() -> Filename[EmptyBeamRun]: return Filename[EmptyBeamRun](_sans2d_registry.get_path('SANS2D00063091.nxs.h5'))
[docs] def zoom_tutorial_direct_beam() -> DirectBeamFilename: return DirectBeamFilename( _zoom_registry.get_path('Direct_Zoom_4m_8mm_100522.txt.h5') )
[docs] def zoom_tutorial_calibration() -> Filename[CalibrationFilename]: return Filename[CalibrationFilename]( _zoom_registry.get_path('192tubeCalibration_11-02-2019_r5_10lines.nxs') )
[docs] def zoom_tutorial_sample_run() -> Filename[SampleRun]: return _zoom_registry.get_path('ZOOM00034786.nxs.h5.zip', unzip=True)[0]
[docs] def zoom_tutorial_empty_beam_run() -> Filename[EmptyBeamRun]: return Filename[EmptyBeamRun](_zoom_registry.get_path('ZOOM00034787.nxs.h5'))
[docs] def zoom_tutorial_mask_filenames() -> list[PixelMaskFilename]: return [ PixelMaskFilename(_zoom_registry.get_path('andru_test.xml')), PixelMaskFilename(_zoom_registry.get_path('left_beg_18_2.xml')), PixelMaskFilename(_zoom_registry.get_path('right_beg_18_2.xml')), PixelMaskFilename(_zoom_registry.get_path('small_bs_232.xml')), PixelMaskFilename(_zoom_registry.get_path('small_BS_31032023.xml')), PixelMaskFilename(_zoom_registry.get_path('tube_1120_bottom.xml')), PixelMaskFilename(_zoom_registry.get_path('tubes_beg_18_2.xml')), ]