Skip to content

Commit 3415c96

Browse files
Merge pull request #178 from scipp/nexus-workflow
Add Nexus workflow
2 parents 79b5954 + 8233682 commit 3415c96

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/ess/dream/workflow.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
)
1919
from ess.powder.types import (
2020
AccumulatedProtonCharge,
21+
CaveMonitor,
2122
CaveMonitorPosition, # Should this be a DREAM-only parameter?
2223
EmptyCanRun,
2324
KeepEvents,
@@ -32,7 +33,9 @@
3233
WavelengthMask,
3334
)
3435
from ess.reduce import time_of_flight
36+
from ess.reduce.nexus.types import NeXusName
3537
from ess.reduce.parameter import parameter_mappers
38+
from ess.reduce.time_of_flight import GenericTofWorkflow
3639
from ess.reduce.workflow import register_workflow
3740

3841
from .beamline import InstrumentConfiguration
@@ -105,6 +108,33 @@ def _collect_reducer_software() -> ReducerSoftware:
105108
)
106109

107110

111+
def DreamPowderWorkflow(*, run_norm: RunNormalization) -> sciline.Pipeline:
112+
"""
113+
Dream powder workflow with default parameters.
114+
115+
Parameters
116+
----------
117+
run_norm:
118+
Select how to normalize each run (sample, vanadium, etc.).
119+
120+
Returns
121+
-------
122+
:
123+
A workflow object for DREAM.
124+
"""
125+
wf = GenericTofWorkflow(run_types=[SampleRun], monitor_types=[CaveMonitor])
126+
for provider in itertools.chain(powder_providers, _dream_providers):
127+
wf.insert(provider)
128+
wf[NeXusName[CaveMonitor]] = "monitor_cave"
129+
insert_run_normalization(wf, run_norm)
130+
for key, value in itertools.chain(
131+
default_parameters().items(), time_of_flight.default_parameters().items()
132+
):
133+
wf[key] = value
134+
wf.typical_outputs = typical_outputs
135+
return wf
136+
137+
108138
def DreamGeant4Workflow(*, run_norm: RunNormalization) -> sciline.Pipeline:
109139
"""
110140
Workflow with default parameters for the Dream Geant4 simulation.

0 commit comments

Comments
 (0)