Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/ess/dream/io/cif.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
CIFAuthors,
EmptyCanSubtractedIntensityTof,
IntensityTof,
Measurement,
ReducedEmptyCanSubtractedTofCIF,
ReducedTofCIF,
ReducerSoftware,
Expand All @@ -26,6 +27,7 @@ def prepare_reduced_tof_cif(
authors: CIFAuthors,
beamline: Beamline[SampleRun],
source: Source[SampleRun],
measurement: Measurement[SampleRun],
reducers: ReducerSoftware,
calibration: OutputCalibrationData,
) -> ReducedTofCIF:
Expand Down Expand Up @@ -61,6 +63,7 @@ def prepare_reduced_tof_cif(
authors=authors,
beamline=beamline,
source=source,
measurement=measurement,
reducers=reducers,
calibration=calibration,
)
Expand All @@ -72,6 +75,7 @@ def prepare_reduced_empty_can_subtracted_tof_cif(
authors: CIFAuthors,
beamline: Beamline[SampleRun],
source: Source[SampleRun],
measurement: Measurement[SampleRun],
reducers: ReducerSoftware,
calibration: OutputCalibrationData,
) -> ReducedEmptyCanSubtractedTofCIF:
Expand Down Expand Up @@ -107,6 +111,7 @@ def prepare_reduced_empty_can_subtracted_tof_cif(
authors=authors,
beamline=beamline,
source=source,
measurement=measurement,
reducers=reducers,
calibration=calibration,
)
Expand All @@ -118,12 +123,14 @@ def _prepare_reduced_tof_cif_impl(
authors: CIFAuthors,
beamline: Beamline[SampleRun],
source: Source[SampleRun],
measurement: Measurement[SampleRun],
reducers: ReducerSoftware,
calibration: OutputCalibrationData,
) -> ReducedTofCIF:
to_save = _prepare_data(da)
return ReducedTofCIF(
cif.CIF('reduced_tof')
.with_measurement(measurement)
.with_reducers(*(reducer.compact_repr for reducer in reducers))
.with_authors(*authors)
.with_beamline(beamline, source)
Expand Down
5 changes: 5 additions & 0 deletions src/ess/dream/workflows.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
EmptyCanRun,
KeepEvents,
LookupTableRelativeErrorThreshold,
Measurement,
PixelMaskFilename,
Position,
ReducerSoftware,
Expand Down Expand Up @@ -211,6 +212,10 @@ def DreamGeant4Workflow(*, run_norm: RunNormalization, **kwargs) -> sciline.Pipe
AccumulatedProtonCharge[EmptyCanRun]: charge,
CaveMonitorPosition: sc.vector([0.0, 0.0, -4220.0], unit='mm'),
LookupTableRelativeErrorThreshold: 0.02,
# The GEANT4 files do not encode measurement information
Measurement[SampleRun]: Measurement[SampleRun](title=None),
Measurement[VanadiumRun]: Measurement[VanadiumRun](title=None),
Measurement[EmptyCanRun]: Measurement[EmptyCanRun](title=None),
}
for key, value in additional_parameters.items():
wf[key] = value
Expand Down
3 changes: 3 additions & 0 deletions src/ess/powder/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,9 @@ class RawDataAndMetadata(sciline.Scope[RunType, sc.DataGroup], sc.DataGroup):
Beamline = reduce_t.Beamline
"""Beamline metadata."""

Measurement = reduce_t.Measurement
"""Measurement metadata."""

ReducerSoftware = NewType('ReducerSoftware', list[Software])
"""Pieces of software used to reduce the data."""

Expand Down
9 changes: 8 additions & 1 deletion tests/dream/io/cif_test.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2023 Scipp contributors (https://github.com/scipp)

import datetime
import io

import pytest
Expand All @@ -14,6 +14,7 @@
Beamline,
CIFAuthors,
IntensityTof,
Measurement,
ReducerSoftware,
Software,
)
Expand Down Expand Up @@ -60,6 +61,10 @@ def test_save_reduced_tof(ioftof: IntensityTof, cal: OutputCalibrationData) -> N
site="ESS",
),
source=ESS_SOURCE,
measurement=Measurement(
title="Test measurement",
start_time=datetime.datetime(2026, 1, 2, 14, 58, 2, tzinfo=datetime.UTC),
),
reducers=ReducerSoftware(
[
Software.from_package_metadata('ess.diffraction'),
Expand All @@ -78,6 +83,8 @@ def test_save_reduced_tof(ioftof: IntensityTof, cal: OutputCalibrationData) -> N
assert f"ess.dream {__version__}" in result
assert f"ess.powder {__version__}" in result
assert '_diffrn_source.beamline DREAM' in result
assert "_sc_meas.title 'Test measurement'" in result
assert "_pd_meas.datetime_initiated 2026-01-02T14:58:02" in result
assert 'ZERO 0 0.2' in result
assert 'DIFC 1 1.2' in result
assert 'DIFA 2 -1.4' in result
Expand Down
Loading