Table of Contents
Name | Direction | Type | Default | Description |
---|---|---|---|---|
Filename | Input | string | Mandatory | The name of the Event NeXus file to read, including its full or relative path. The file name is typically of the form INST_####_event.nxs (N.B. case sensitive if running on Linux). Allowed extensions: [‘_event.nxs’, ‘.nxs.h5’, ‘.nxs’] |
OutputWorkspace | Output | Workspace | Mandatory | The name of the output EventWorkspace or WorkspaceGroup in which to load the EventNexus file. |
MaxChunkSize | Input | number | Optional | Get chunking strategy for chunks with this number of Gbytes. File will not be loaded if this option is set. |
CompressTOFTolerance | Input | number | 0.01 | |
FilterByTofMin | Input | number | Optional | Optional: To exclude events that do not fall within a range of times-of-flight. This is the minimum accepted value in microseconds. Keep blank to load all events. |
FilterByTofMax | Input | number | Optional | Optional: To exclude events that do not fall within a range of times-of-flight. This is the maximum accepted value in microseconds. Keep blank to load all events. |
FilterByTimeStart | Input | number | Optional | Optional: To only include events after the provided start time, in seconds (relative to the start of the run). |
FilterByTimeStop | Input | number | Optional | Optional: To only include events before the provided stop time, in seconds (relative to the start of the run). |
NXentryName | Input | string | Optional: Name of the NXentry to load if it’s not the default. | |
LoadMonitors | Input | boolean | False | Load the monitors from the file (optional, default False). |
MonitorsAsEvents | Input | boolean | False | If present, load the monitors as events. ‘’‘WARNING:’‘’ WILL SIGNIFICANTLY INCREASE MEMORY USAGE (optional, default False). |
FilterMonByTofMin | Input | number | Optional | Optional: To exclude events from monitors that do not fall within a range of times-of-flight. This is the minimum accepted value in microseconds. |
FilterMonByTofMax | Input | number | Optional | Optional: To exclude events from monitors that do not fall within a range of times-of-flight. This is the maximum accepted value in microseconds. |
FilterMonByTimeStart | Input | number | Optional | Optional: To only include events from monitors after the provided start time, in seconds (relative to the start of the run). |
FilterMonByTimeStop | Input | number | Optional | Optional: To only include events from monitors before the provided stop time, in seconds (relative to the start of the run). |
FilterBadPulses | Input | number | 95 |
This is a workflow algorithm that loads an event nexus file in chunks and compresses the resulting chunks before summing them. It uses the algorithms:
Example - LoadEventAndCompress
The files needed for this example are not present in our standard usage data download due to their size. They can however be downloaded using these links: PG3_9830_event.nxs.
PG3_9830_event = LoadEventAndCompress(Filename='PG3_9830_event.nxs',
MaxChunkSize=1.)
Example - Usage with MPI
Create a python driver script called test_mpi.py
from mantid.simpleapi import *
import mantid
if AlgorithmFactory.exists('GatherWorkspaces'):
HAVE_MPI = True
from mpi4py import MPI
mpiRank = MPI.COMM_WORLD.Get_rank()
mpiSize = MPI.COMM_WORLD.Get_size()
else:
HAVE_MPI = False
mpiRank = 0 # simplify if clauses
mpiSize = 1 # simplify if clauses
wksp = LoadEventAndCompress(Filename="PG3_2538_event.nxs")
print "Rank = ", mpiRank, "Number of Events = ", wksp.getNumberEvents()
if mpiRank == 0:
reduce = AlignAndFocusPowder(InputWorkspace=wksp, CalFileName='PG3_calibrate_d2538_2014_05_13.cal', Params='0.5,0.01,2')
SaveNexus(reduce,Filename=str(mpiSize)+"tasks.nxs")
And run it using the following commands
$ module load mpi/openmpi-x86_64
$ export LD_PRELOAD=/usr/lib64/openmpi/lib/libmpi.so
$ mpirun -np 8 mantidpython test_mpi.py
to run without mpi is simply
$ mantidpython test_mpi.py
Categories: Algorithms | Workflow\DataHandling