essreduce 25.7.0__tar.gz → 25.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {essreduce-25.7.0/src/essreduce.egg-info → essreduce-25.7.1}/PKG-INFO +1 -1
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/lut.py +4 -4
- {essreduce-25.7.0 → essreduce-25.7.1/src/essreduce.egg-info}/PKG-INFO +1 -1
- {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/SOURCES.txt +1 -0
- essreduce-25.7.1/tests/time_of_flight/lut_test.py +114 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.copier-answers.ess.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.copier-answers.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/ISSUE_TEMPLATE/high-level-requirement.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/dependabot.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/ci.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/docs.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/nightly_at_main.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/nightly_at_release.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/python-version-ci +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/release.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/test.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/unpinned.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/weekly_windows_macos.yml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.gitignore +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.pre-commit-config.yaml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/.python-version +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/CODE_OF_CONDUCT.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/CONTRIBUTING.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/LICENSE +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/MANIFEST.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/README.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/conda/meta.yaml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/anaconda-icon.js +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/favicon.svg +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/logo-dark.svg +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/logo.svg +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/_templates/class-template.rst +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/_templates/doc_version.html +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/_templates/module-template.rst +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/about/index.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/api-reference/index.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/conf.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/coding-conventions.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/dependency-management.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/getting-started.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/gui.ipynb +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/index.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/index.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/index.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/installation.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/reduction-workflow-guidelines.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/dream.ipynb +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/frame-unwrapping.ipynb +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/index.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/wfm.ipynb +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/widget.md +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/pyproject.toml +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/base.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/base.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/basetest.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/basetest.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/ci.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/ci.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/dev.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/dev.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/docs.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/docs.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/make_base.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/mypy.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/mypy.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/nightly.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/nightly.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/static.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/static.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/test.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/test.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/wheels.in +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/requirements/wheels.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/resources/logo.svg +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/setup.cfg +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/__init__.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/data.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/__init__.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/raw.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/roi.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/workflow.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/logging.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/__init__.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/_nexus_loader.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/json_generator.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/json_nexus.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/types.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/workflow.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/parameter.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/py.typed +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/scripts/grow_nexus.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/streaming.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/__init__.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/eto_to_tof.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/fakes.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/interpolator_numba.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/interpolator_scipy.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/resample.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/types.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/workflow.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/ui.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/uncertainty.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/__init__.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_base.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_binedges_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_bounds_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_config.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_filename_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_linspace_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_optional_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_spinner.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_string_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_switchable_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_vector_widget.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/workflow.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/dependency_links.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/entry_points.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/requires.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/top_level.txt +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/accumulators_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/live/raw_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/live/roi_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_generator_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/array_dataset.json +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/dataset.json +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/detector.json +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/entry.json +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/event_data.json +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/instrument.json +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/log.json +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/nexus_loader_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/workflow_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/package_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/scripts/test_grow_nexus.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/streaming_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/interpolator_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/resample_tests.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/unwrap_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/wfm_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/workflow_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/uncertainty_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tests/widget_test.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tools/shrink_nexus.py +0 -0
- {essreduce-25.7.0 → essreduce-25.7.1}/tox.ini +0 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
Utilities for computing time-of-flight lookup tables from neutron simulations.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
+
import math
|
|
7
8
|
from dataclasses import dataclass
|
|
8
9
|
from typing import NewType
|
|
9
10
|
|
|
@@ -330,12 +331,11 @@ def make_tof_lookup_table(
|
|
|
330
331
|
ndist = len(distance_bins) - 1
|
|
331
332
|
max_size = 2e7
|
|
332
333
|
total_size = ndist * len(simulation.time_of_arrival)
|
|
333
|
-
nchunks = total_size / max_size
|
|
334
|
-
chunk_size =
|
|
334
|
+
nchunks = math.ceil(total_size / max_size)
|
|
335
|
+
chunk_size = math.ceil(ndist / nchunks)
|
|
335
336
|
pieces = []
|
|
336
|
-
for i in range(
|
|
337
|
+
for i in range(nchunks):
|
|
337
338
|
dist_edges = distance_bins[i * chunk_size : (i + 1) * chunk_size + 1]
|
|
338
|
-
|
|
339
339
|
pieces.append(
|
|
340
340
|
_compute_mean_tof_in_distance_range(
|
|
341
341
|
simulation=simulation,
|
|
@@ -135,6 +135,7 @@ tests/nexus/json_nexus_examples/instrument.json
|
|
|
135
135
|
tests/nexus/json_nexus_examples/log.json
|
|
136
136
|
tests/scripts/test_grow_nexus.py
|
|
137
137
|
tests/time_of_flight/interpolator_test.py
|
|
138
|
+
tests/time_of_flight/lut_test.py
|
|
138
139
|
tests/time_of_flight/resample_tests.py
|
|
139
140
|
tests/time_of_flight/unwrap_test.py
|
|
140
141
|
tests/time_of_flight/wfm_test.py
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
# Copyright (c) 2025 Scipp contributors (https://github.com/scipp)
|
|
3
|
+
import pytest
|
|
4
|
+
import scipp as sc
|
|
5
|
+
|
|
6
|
+
from ess.reduce import time_of_flight
|
|
7
|
+
from ess.reduce.time_of_flight import TofLookupTableWorkflow
|
|
8
|
+
|
|
9
|
+
sl = pytest.importorskip("sciline")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def test_lut_workflow_computes_table():
|
|
13
|
+
wf = TofLookupTableWorkflow()
|
|
14
|
+
wf[time_of_flight.DiskChoppers] = {}
|
|
15
|
+
wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
|
|
16
|
+
wf[time_of_flight.NumberOfSimulatedNeutrons] = 100_000
|
|
17
|
+
wf[time_of_flight.SimulationSeed] = 60
|
|
18
|
+
wf[time_of_flight.PulseStride] = 1
|
|
19
|
+
|
|
20
|
+
lmin, lmax = sc.scalar(25.0, unit='m'), sc.scalar(35.0, unit='m')
|
|
21
|
+
dres = sc.scalar(0.1, unit='m')
|
|
22
|
+
tres = sc.scalar(333.0, unit='us')
|
|
23
|
+
|
|
24
|
+
wf[time_of_flight.LtotalRange] = lmin, lmax
|
|
25
|
+
wf[time_of_flight.DistanceResolution] = dres
|
|
26
|
+
wf[time_of_flight.TimeResolution] = tres
|
|
27
|
+
|
|
28
|
+
table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
|
|
29
|
+
|
|
30
|
+
assert table.coords['distance'].min() < lmin
|
|
31
|
+
assert table.coords['distance'].max() > lmax
|
|
32
|
+
assert table.coords['event_time_offset'].max() == sc.scalar(1 / 14, unit='s').to(
|
|
33
|
+
unit=table.coords['event_time_offset'].unit
|
|
34
|
+
)
|
|
35
|
+
assert sc.isclose(table.coords['distance_resolution'], dres)
|
|
36
|
+
# Note that the time resolution is not exactly preserved since we want the table to
|
|
37
|
+
# span exactly the frame period.
|
|
38
|
+
assert sc.isclose(table.coords['time_resolution'], tres, rtol=sc.scalar(0.01))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def test_lut_workflow_computes_table_in_chunks():
|
|
42
|
+
wf = TofLookupTableWorkflow()
|
|
43
|
+
wf[time_of_flight.DiskChoppers] = {}
|
|
44
|
+
wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
|
|
45
|
+
# Lots of neutrons activates chunking
|
|
46
|
+
wf[time_of_flight.NumberOfSimulatedNeutrons] = 1_000_000
|
|
47
|
+
wf[time_of_flight.SimulationSeed] = 61
|
|
48
|
+
wf[time_of_flight.PulseStride] = 1
|
|
49
|
+
|
|
50
|
+
lmin, lmax = sc.scalar(25.0, unit='m'), sc.scalar(35.0, unit='m')
|
|
51
|
+
dres = sc.scalar(0.1, unit='m')
|
|
52
|
+
tres = sc.scalar(250.0, unit='us')
|
|
53
|
+
|
|
54
|
+
wf[time_of_flight.LtotalRange] = lmin, lmax
|
|
55
|
+
wf[time_of_flight.DistanceResolution] = dres
|
|
56
|
+
wf[time_of_flight.TimeResolution] = tres
|
|
57
|
+
|
|
58
|
+
table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
|
|
59
|
+
|
|
60
|
+
assert table.coords['distance'].min() < lmin
|
|
61
|
+
assert table.coords['distance'].max() > lmax
|
|
62
|
+
assert table.coords['event_time_offset'].max() == sc.scalar(1 / 14, unit='s').to(
|
|
63
|
+
unit=table.coords['event_time_offset'].unit
|
|
64
|
+
)
|
|
65
|
+
assert sc.isclose(table.coords['distance_resolution'], dres)
|
|
66
|
+
# Note that the time resolution is not exactly preserved since we want the table to
|
|
67
|
+
# span exactly the frame period.
|
|
68
|
+
assert sc.isclose(table.coords['time_resolution'], tres, rtol=sc.scalar(0.01))
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def test_lut_workflow_pulse_skipping():
|
|
72
|
+
wf = TofLookupTableWorkflow()
|
|
73
|
+
wf[time_of_flight.DiskChoppers] = {}
|
|
74
|
+
wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
|
|
75
|
+
wf[time_of_flight.NumberOfSimulatedNeutrons] = 100_000
|
|
76
|
+
wf[time_of_flight.SimulationSeed] = 62
|
|
77
|
+
wf[time_of_flight.PulseStride] = 2
|
|
78
|
+
|
|
79
|
+
lmin, lmax = sc.scalar(55.0, unit='m'), sc.scalar(65.0, unit='m')
|
|
80
|
+
dres = sc.scalar(0.1, unit='m')
|
|
81
|
+
tres = sc.scalar(250.0, unit='us')
|
|
82
|
+
|
|
83
|
+
wf[time_of_flight.LtotalRange] = lmin, lmax
|
|
84
|
+
wf[time_of_flight.DistanceResolution] = dres
|
|
85
|
+
wf[time_of_flight.TimeResolution] = tres
|
|
86
|
+
|
|
87
|
+
table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
|
|
88
|
+
|
|
89
|
+
assert table.coords['event_time_offset'].max() == 2 * sc.scalar(
|
|
90
|
+
1 / 14, unit='s'
|
|
91
|
+
).to(unit=table.coords['event_time_offset'].unit)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def test_lut_workflow_non_exact_distance_range():
|
|
95
|
+
wf = TofLookupTableWorkflow()
|
|
96
|
+
wf[time_of_flight.DiskChoppers] = {}
|
|
97
|
+
wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
|
|
98
|
+
wf[time_of_flight.NumberOfSimulatedNeutrons] = 100_000
|
|
99
|
+
wf[time_of_flight.SimulationSeed] = 63
|
|
100
|
+
wf[time_of_flight.PulseStride] = 1
|
|
101
|
+
|
|
102
|
+
lmin, lmax = sc.scalar(25.0, unit='m'), sc.scalar(35.0, unit='m')
|
|
103
|
+
dres = sc.scalar(0.33, unit='m')
|
|
104
|
+
tres = sc.scalar(250.0, unit='us')
|
|
105
|
+
|
|
106
|
+
wf[time_of_flight.LtotalRange] = lmin, lmax
|
|
107
|
+
wf[time_of_flight.DistanceResolution] = dres
|
|
108
|
+
wf[time_of_flight.TimeResolution] = tres
|
|
109
|
+
|
|
110
|
+
table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
|
|
111
|
+
|
|
112
|
+
assert table.coords['distance'].min() < lmin
|
|
113
|
+
assert table.coords['distance'].max() > lmax
|
|
114
|
+
assert sc.isclose(table.coords['distance_resolution'], dres)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|